共用方式為


利用 XPath 公開角色組態設定以做為環境變數

這很重要

截至 2024 年 9 月 1 日,所有客戶的雲端服務 (傳統) 均已淘汰。 從 2024 年 10 月開始,Microsoft 將停止並關閉任何現有的執行中部署,且資料將會永久遺失。 新部署應該使用 Azure Resource Manager 型的新部署模型 Azure 雲端服務 (延伸支援)

在雲端服務工作角色或 Web 角色服務定義檔中,您可以公開執行階段組態值作為環境變數。 支援下列 XPath 值 (其會對應至 API 值)。

這些 XPath 值也可以透過 Microsoft.WindowsAzure.ServiceRuntime 程式庫來取得。

在模擬器中執行的應用程式

表示應用程式正在模擬器中執行。

類型 範例
XPath xpath="/RoleEnvironment/Deployment/@emulated"
程式碼 var x = RoleEnvironment.IsEmulated;

部署識別碼

擷取執行個體的部署 ID。

類型 範例
XPath xpath="/RoleEnvironment/Deployment/@id"
程式碼 var deploymentId = RoleEnvironment.DeploymentId;

角色標識碼

擷取執行個體目前的角色識別碼。

類型 範例
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 值),以建立啟動任務。

<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 封裝。

為角色啟用 遠端桌面