簡體   English   中英

在ARM模板之間共享變量或常量

[英]Sharing variables, or constants, between ARM templates

我在考慮定義API版本號,好像我一直在所有鏈接模板中引用的某個模板中重復一樣,但是似乎我在這樣做時遇到了麻煩,而且我不確定是否應該這樣做,更不用說如何去做吧。

例如,int azuredeploy-shared.json我可以做類似的事情

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "variables": {
    "apiVersion": {
        "resources": { "deployments": "2015-01-01" }
    }
  }
}

然后在azuredeploy.json我可以像這樣使用它

resources": [
{
    "name": "someResource",
    "type": "Microsoft.Resources/deployments",
    "apiVersion": "[variables('apiVersion').resources.deployments]",

第一個絆腳石是需要一個resources部分。 這讓我想知道我引用的是錯誤的架構還是應該完全引用一個架構 如果我創建了一些我認為是虛擬資源的東西,並且提供了這個想法,那么azuredeploy.json應該如何引用該文件?

我可以做類似"[concat(parameters('_artifactsLocation'), '/ProjectName/Templates/azuredeploy-shared-json', parameters('_artifactsLocationSasToken'))]"但我不知道該在哪里,如何以及應該使用仍在工作。 因此,工作指針對此表示贊賞。 我確實看到了如何在模板之間傳遞變量-ARM json ,但是不幸的是我不明白它應該如何工作,也沒有理解鏈接的Azure示例。

好的,我想您可以使用部署輸出來執行此操作……似乎有一個更簡單的解決方案,但據我對您的情況的了解,我想不出這么多。

1)部署包含所有常量的模板,並將這些常量設置為該部署的輸出

2)在要訪問它們的模板部署中,使用引用功能,例如

reference('/subscriptions/{GUID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}','2015-01-01').outputs.{nameOfConstant}.value]"

只需使用相同的部署名稱再次部署步驟1,以更新常量。 那是你追求的嗎?

暫無
暫無

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

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