首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 云计算 >

Azure:环境变量跟预定义环境变量

2012-08-21 
Azure:环境变量和预定义环境变量在Azure的definition文件里,我们可以定义一些环境变量,这里是个例子:Work

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_0RoleRoot – Azure role代码的根目录, 可以在%RoleRoot%\AppRoot路径下找到放在代码中的文件
RdRoleRoot – 内容和RoleRoot一样RoleDeploymentID * – Host service的当前deployment的id,和RdRoleId的前面一部分是一致的,比如:eaaa6a386255466dada9dd158c5d4008RoleInstanceID * – 当前instance的id,比如:WebTest_IN_0RoleName * – 当前role的名字比如: WebTest__WaRuntimeAgent__ – 运行在系统中的Azure安装的agent的id(Azure在所有instance中都会安装agent来收集一些信息)WA_CONTAINER_SID – Azure容器id


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


热点排行