[英]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.