簡體   English   中英

在 Azure 中實際部署之前獲取 Azure 部署模板中定義的資源列表 PowerShell

[英]Get a list of resources defined in an Azure deployment template prior to actual deployment in Azure PowerShell

在 Azure CLI 中,我可以使用az deployment sub validate獲取訂閱級部署模板中所有資源的詳細信息 output:

{
  "error": null,
  "id": "/subscriptions/.../providers/Microsoft.Resources/deployments/main",
  "location": "westeurope",
  "name": "main",
  "properties": {
    ...
    "validatedResources": [
      {
        "id": "/subscriptions/.../resourceGroups/my-rg"
      },
      {
        "id": "/subscriptions/.../resourceGroups/my-rg/providers/Microsoft.Resources/deployments/logAnalyticsWorkspace",
        "resourceGroup": "my-rg"
      },
      {
        "id": "/subscriptions/.../resourceGroups/my-rg/providers/Microsoft.Resources/deployments/identity",
        "resourceGroup": "my-rg"
      },
      ...
    ]
  },
  "type": "Microsoft.Resources/deployments"
}

az deployment sub validate等效的 Azure PowerShell 是Test-AzSubscriptionDeployment ,但它僅返回錯誤(如果有),不返回資源 ID 列表。

如何使用 Azure PowerShell 為模板定義的資源獲取類似的資源 ID 列表?

這兩個操作對 Azure 進行相同的 API 調用並得到相同的響應,但如您所見,Powershell 僅返回錯誤,而不返回實際的 API 響應內容。

您可以通過手動撥打 API 來解決,但有點麻煩。

$Template = Get-Content -Path template.json | ConvertFrom-Json
$payload = @{location="westus2"; properties=@{template = $Template; mode="Incremental"}} | ConvertTo-Json -Depth 20
$results = Invoke-AzRestMethod -Path "/subscriptions/$subid/providers/Microsoft.Resources/deployments/test/validate?api-version=2021-04-01" -Method POST -Payload $payload
($results.Content | ConvertFrom-Json).properties.validatedResources

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM