使用 XPath 将角色配置设置公共为环境变量

重要

从 2024 年 9 月 1 日开始,已弃用所有客户的云服务(经典版)。 从 2024 年 10 月开始,Microsoft 将停止并关闭任何正在运行的现有部署,数据将永久性丢失。 新部署应使用基于 Azure 资源管理器的新型部署模型 Azure 云服务(外延支持)

在云服务辅助角色或 Web 角色服务定义文件中,可以将运行时配置值公开为环境变量。 支持以下 XPath 值(分别对应于 API 值)。

Microsoft.WindowsAzure.ServiceRuntime 库中也提供了这些 XPath 值。

应用在模拟器中运行

指示应用正在模拟器中运行。

类型 示例
XPath xpath="/RoleEnvironment/Deployment/@emulated"
代码 var x = RoleEnvironment.IsEmulated;

部署 ID

检索实例的部署 ID。

类型 示例
XPath xpath="/RoleEnvironment/Deployment/@id"
代码 var deploymentId = RoleEnvironment.DeploymentId;

角色 ID

检索实例的当前角色 ID。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/@id"
代码 var id = RoleEnvironment.CurrentRoleInstance.Id;

更新域

检索实例的更新域。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/@updateDomain"
代码 var ud = RoleEnvironment.CurrentRoleInstance.UpdateDomain;

容错域

检索实例的容错域。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/@faultDomain"
代码 var fd = RoleEnvironment.CurrentRoleInstance.FaultDomain;

角色名称

检索实例的角色名称。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/@roleName"
代码 var rname = RoleEnvironment.CurrentRoleInstance.Role.Name;

配置设置

检索指定配置设置的值。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='Setting1']/@value"
代码 var setting = RoleEnvironment.GetConfigurationSettingValue("Setting1");

本地存储路径

检索实例的本地存储路径。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/LocalResources/LocalResource[@name='LocalStore1']/@path"
代码 var localResourcePath = RoleEnvironment.GetLocalResource("LocalStore1").RootPath;

本地存储大小

检索实例的本地存储大小。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/LocalResources/LocalResource[@name='LocalStore1']/@sizeInMB"
代码 var localResourceSizeInMB = RoleEnvironment.GetLocalResource("LocalStore1").MaximumSizeInMegabytes;

终结点协议

检索实例的终结点协议。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Endpoint1']/@protocol"
代码 var prot = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint1"].Protocol;

终结点 IP

获取指定终结点的 IP 地址。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Endpoint1']/@address"
代码 var address = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint.Address

终结点端口

检索实例的终结点端口。

类型 示例
XPath xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Endpoint1']/@port"
代码 var port = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint1"].IPEndpoint.Port;

示例

下面是使用名为 TestIsEmulated、设置为 @emulated xpath value 的环境变量创建启动任务的辅助角色示例。

<WorkerRole name="Role1">
    <ConfigurationSettings>
      <Setting name="Setting1" />
    </ConfigurationSettings>
    <LocalResources>
      <LocalStorage name="LocalStore1" sizeInMB="1024"/>
    </LocalResources>
    <Endpoints>
      <InternalEndpoint name="Endpoint1" protocol="tcp" />
    </Endpoints>
    <Startup>
      <Task commandLine="example.cmd inputParm">
        <Environment>
          <Variable name="TestConstant" value="Constant"/>
          <Variable name="TestEmptyValue" value=""/>
          <Variable name="TestIsEmulated">
            <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated"/>
          </Variable>
          ...
        </Environment>
      </Task>
    </Startup>
    <Runtime>
      <Environment>
        <Variable name="TestConstant" value="Constant"/>
        <Variable name="TestEmptyValue" value=""/>
        <Variable name="TestIsEmulated">
          <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated"/>
        </Variable>
        ...
      </Environment>
    </Runtime>
    ...
</WorkerRole>

后续步骤

了解有关 ServiceConfiguration.cscfg 文件的详细信息。

创建 ServicePackage.cspkg 包。

为角色启用远程桌面