Azure中的预定义环境变量

在Azure的definition文件里,我们可以定义一些环境变量,这里是个例子:

<WorkerRole name="MyWorker">
<Startup>
<Task taskType="background" commandLine="my.cmd"

executionContext="limited">
<Environment>
<Variable name="MY_ENV" value="my_value" />
</Environment>
</Task>
</Startup>
<Runtime>
<Environment>
<Variable name="MY_SECOND_ENV" value="my_value2" />
</Environment>
</Runtime>

</WorkerRole>

Azure的lifecycle提供了类似于servlet的start和rutnime概念,在definition里的环境变量定义是分开的,也就是说startup里的环境变量在runtime里是看不到的,反之亦然。所以如果要开发的是java程序,要确保java程序能拿到环境变量,要先确定你的java程序是在什么时候启动的。Azure的eclipse插件创建的工程里,java程序都是在startup的时候启动的,那这样的话环境变量就要定义在Startup里了。


但是这种方式我们能定义自己的环境变量,但是还是拿不到Azure的运行信息(比如当前运行的instance的编号等待)。 Azure有提供一些API用来获取Azure运行相关信息的,但是,最简单的可能还是去获取环境变量了(如果你只要这些信息的话)。

Azure默认提供了以下的一些环境变量,这些环境变量在Startup和Runtime里都有,所有标有星号(*)的变量都在Azure portal里可以看到:

  • @AccountUsername *– Azure远程桌面登陆的时候的用户名,在CSCFG文件中可配置
  • @AccountEncryptedPassword *– 加密后的远程桌面密码,使用Host Service里的SSL证书加密,在CSCFG文件中可配置
  • @AccountExpiration *– 远程桌面用户过期时间,在CSCFG文件中可配置
  • @ConnectionString – diagnostics 使用的为了连接Azure Storage使用的Connection String,在CSCFG文件中可配置.
  • DiagnosticStore – diagnostics 使用的为了连接Azure Storage使用的Storage account,在CSCFG文件中可配置.
  • RdRoleId – Role instance 的唯一id,例子:eaaa6a386255466dada9dd158c5d4008.WebTest_IN_0
  • RoleRoot– Azure role代码的根目录, 可以在%RoleRoot%\AppRoot路径下找到放在代码中的文件
  • RdRoleRoot – 内容和RoleRoot一样
  • RoleDeploymentID * – Host service的当前deployment的id,和RdRoleId的前面一部分是一致的,比如:eaaa6a386255466dada9dd158c5d4008
  • RoleInstanceID * – 当前instance的id,比如:WebTest_IN_0
  • RoleName * – 当前role的名字比如: WebTest
  • __WaRuntimeAgent__ – 运行在系统中的Azure安装的agent的id(Azure在所有instance中都会安装agent来收集一些信息)
  • WA_CONTAINER_SID – Azure容器id


关键字:Azure, 环境变量,获取Instance信息


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值