gpt4 book ai didi

azure - ARM模板: output instances resources name with Copy

转载 作者:行者123 更新时间:2023-12-03 00:38:18 25 4
gpt4 key购买 nike

寻找有关如何输出应用程序服务实例名称的一些反馈。我与 CopyIndex 一起工作,但我不明白我该怎么做。

首先是我的参数。请注意,我使用数组作为参数位置。

"parameters": {
"location": {
"type": "array",
"metadata": {
"description": "array of region"
},
"allowedValues": [
"centralus",
"eastus"
]
}

然后我实例化我的 AppServices 并迭代我的不同位置

{ // App Services
"type": "Microsoft.Web/sites",
"name": "[concat(variables('appServiceName'), parameters('location')[copyIndex()])]",
"apiVersion": "2018-11-01",
"copy": {
"name": "Copy website",
"count": "[length(parameters('location'))]"
},
"location": "[parameters('location')[copyIndex()]]",
"tags": {
"cost": "[parameters('Stage')]"
}
....


它运行良好,现在我想输出应用程序服务实例名称:

 "outputs": {
"websitesname": {
"type": "array",
"copy": {
"count": "[length(parameters('location'))]",
"input":{
"id": "here i struggle :("
}
}
}
}

我真的不知道如何获取实例名称?首先,我尝试返回变量的值,但失败了。其次,我尝试返回引用的值,但再次失败。

有什么想法吗?

更新 1我应用了 Stringfellow 提供的建议,得到的结果与您的屏幕截图相同。 enter image description here

我可以使用 $deploymentResult.Outputs.keyVaultName.Value 检索 KeyVault 名称

但是对于 appServicename 我没有运气。我尝试了 $deploymentResult.Outputs.websitesname.Value 然后尝试分离该值,但失败了。我也尝试过转换为 json。我相信它存在一种聪明的方式。根据我的示例,我如何检索值 AppService-Prod-centralus 和 AppService-Prod-eastus ?

最佳答案

您可以使用复制运算符构造一个新变量并在其中定义资源命名。然后使用新数组复制资源并构造您需要的输出,或者直接输出新数组。

{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "array"
}
},
"variables": {
"appServiceName": "prefix",
"copy": [
{
"name": "webSiteNames",
"count": "[length(parameters('location'))]",
"input": {
"name": "[concat(variables('appServiceName'), parameters('location')[copyIndex('webSiteNames')])]",
"location": "[parameters('location')[copyIndex('webSiteNames')]]"
}
}
]
},
"resources": [
{ // App Services
"type": "Microsoft.Web/sites",
"name": "[variables('webSiteNames')[copyIndex()].name]",
"apiVersion": "2018-11-01",
"copy": {
"name": "Copy website",
"count": "[length(parameters('location'))]"
},
"location": "[variables('webSiteNames')[copyIndex()].location]",
...
}
],
"outputs": {
"websitesname": {
"type": "array",
"copy": {
"count": "[length(variables('webSiteNames'))]",
"input": {
"id": "[variables('webSiteNames')[copyIndex()].name]"
}
}
},
"webSiteName": {
"type": "array",
"value": "[variables('webSiteNames')]"
}
}
}

输出看起来像这样。 enter image description here

关于azure - ARM模板: output instances resources name with Copy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64772943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com