【发布时间】:2019-11-04 17:34:22
【问题描述】:
我的 repo 为两种不同的环境提供了不同的 arm 模板(azure deploy json 文件)。每个环境都有自己的服务总线命名空间。我想为 arm 模板中的每个环境生成相同的主题列表。
我想在他们的透视臂模板中保留服务总线命名空间名称,但我不确定这样做是否正确。
主题列表将在 parameters.json 文件中。我想为两个环境/模板使用相同的参数文件。我也不确定这是否可能。从this article开始,使用同一个参数文件可能不可行。
我使用this site 作为参考来创建主题循环。
这是一个 armtemplate.json 文件的示例:
...
"parameters": {
"serviceBusNamespaceName": {
"type": "string",
"defaultValue": "serviceBusName1",
"metadata": {
"description": "Name of the Service Bus namespace"
}
},
"serviceBusTopics": {
"type": "array",
"metadata": {
"description": "List of topics"
}
},
...
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('serviceBusNamespaceName')]",
"type": "Microsoft.ServiceBus/namespaces",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard"
},
"properties": {}
},
{
"apiVersion": "2017-04-01",
"name": "[concat(parameters('serviceBusNamespaceName'), '/', parameters('serviceBusTopics')[copyIndex()])]",
"type": "Microsoft.ServiceBus/namespaces/topics",
"location": "[resourceGroup().location]",
"copy": {
"name": "topicLoop",
"count": "[length(parameters('serviceBusTopics'))]"
},
"properties": {},
"dependsOn": [
"[concat('Microsoft.ServiceBus/namespaces/', parameters('serviceBusNamespaceName'))]"
]
},
....
这里是parameters.json文件:
"parameters": {
"serviceBusTopics": {
"value": [
"topic1",
"topic2"
]
}
}
我已将 Azure Pipelines 配置为构建和部署 Azure 资源。当我导航到 Azure 门户并检查每个服务总线时,我希望看到创建的主题。但是,这对我不起作用。
我可以为不同的模板/环境使用相同的参数文件吗? 在语法上,我有什么错误吗?
【问题讨论】:
标签: azure-devops azure-resource-manager servicebus arm-template azure-servicebus-topics