利用 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
擷取執行個體的部署 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 值的環境變數來建立啟動工作。
<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 封裝。
為角色啟用 遠端桌面 。