TL; 博士
作為在 Azure DevOpsARM Template Deployment任務中運行的 ARM 腳本的一部分,以下行作業正常,但從 PowerShell 運行時,它無法提取訂閱和資源組。
"serverFarmId": "[concat('/subscriptions/', subscription(), '/resourcegroups/', resourceGroup(), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]"
如何設定訂閱和資源組變數,以便 ARM 函式可以提取值?
PS 沒關系如果我必須先獲取它們然后手動設定它們以供腳本使用,只要我可以為 DevOps 和 PowerShell 使用相同的腳本。
這是模板的資源部分,同樣,當從管道部署時,它會從任務引數中設定的任何內容中提取訂閱和資源組。
"resources": [
{
"apiVersion": "2018-11-01",
"name": "[parameters('name')]",
"type": "Microsoft.Web/sites",
"location": "[resourceGroup().location]",
"tags": {},
"dependsOn": [
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]"
],
"properties": {
"name": "[parameters('name')]",
"siteConfig": {
"metadata": [
{
"name": "CURRENT_STACK",
"value": "[parameters('currentStack')]"
}
]
},
"serverFarmId": "[concat('/subscriptions/', subscription(), '/resourcegroups/', resourceGroup(), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"clientAffinityEnabled": true
}
},
{
"apiVersion": "2018-11-01",
"name": "[parameters('hostingPlanName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[resourceGroup().location]",
"kind": "",
"tags": {},
"dependsOn": [],
"properties": {
"name": "[parameters('hostingPlanName')]"
},
"sku": {
"Tier": "[parameters('sku')]",
"Name": "[parameters('skuCode')]"
}
}
]
uj5u.com熱心網友回復:
subscription()并根據您的背景關系resourceGroup()回傳物件。您應該考慮查詢屬性,而不是 :subscription().subscriptionId并resourceGroup().name考慮如何構建您的 ID。我不確定為什么它可以在您的 ARM 模板中使用。
作為旁注,您可以使用此處resourceId([subscriptionId], [resourceGroupName], resourceType, resourceName1, [resourceName2], ...)解釋的函式,在后臺它的執行與您所做的相同(concat)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/355189.html
