【发布时间】:2021-08-29 14:34:54
【问题描述】:
我一直在尝试使用 Azure 逻辑应用程序,并想找到一种方法来编写部署过程,以便我可以设置一个包含机密和所有好东西的 CI/CD 管道。
所以我开始使用 yml 文件,该文件具有多种部署同一个逻辑应用程序的方法。
- 在regular job 中的一个步骤中将输入参数的值硬编码到连接服务、订阅、资源组等任务中。
- 在Deployment job 内做同样的事情。
- 使用管道变量提取这些值并重复为 1 和 2。
- 再次使用 1 和 2,但这次使用标记为机密的管道变量 以此类推。
但是,每次我在部署作业中运行 AzureResourceManagerTemplateDeployment@3 时,都找不到 ARM 模板文件。
- 为什么部署作业无法使用未作为部署作业运行时有效的模式找到 ARM 模板?
- 部署作业是否无权访问构建目录?
- 如何帮助部署作业找到文件?我应该给它一个指向模板文件的链接而不是一个模式吗?
每次我搜索AzureResourceManagerTemplateDeployment 任务文档时,我都会看到AzureResourceGroupDeployment 任务的文档页面,这非常相似但又不一样
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting
当我即将发布这个问题时,我在网上进行了更多搜索,发现original docs of the AzureResourceManagerTemplateDeployment 指出如果文件是存储库的一部分,则必须使用系统的帮助指定 ARM 模板的路径变量。
csmFile: "$(Build.Repository.LocalPath)/**/LogicApp.json"
csmParametersFile: "$(Build.Repository.LocalPath)/**/LogicApp.parameters.json"
我可以确认这也不起作用。
我可能会错过什么?
stages:
- stage: 'HardcodedJobStage'
displayName: 'HardcodedJobStage'
jobs:
- job: 'HardcodedJob'
displayName: HardcodedJob
pool:
vmImage: ubuntu-latest
workspace:
clean: all
steps:
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
ConnectedServiceName: 'Subscription (e6d1dg8c-bcd6-4713-b2f1-c9a0375d687d)'
subscriptionName: 'e6d1dg8c-bcd6-4713-b2f1-c9a0375d687d'
action: 'Create Or Update Resource Group'
resourceGroupName: 'AzureLogicApp'
location: 'UK South'
templateLocation: 'Linked artifact'
csmFile: '**/LogicApp.json'
csmParametersFile: '**/LogicApp.parameters.json'
deploymentMode: 'Incremental'
- stage: 'HardCodedDeployJobStage'
displayName: 'HardCodedDeployJobStage'
jobs:
- deployment: 'HardCodedDeployJob'
displayName: HardCodedDeployJob
pool:
vmImage: ubuntu-latest
workspace:
clean: all
environment: development
strategy:
runOnce:
deploy:
steps:
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
ConnectedServiceName: 'Subscription (e6d1dg8c-bcd6-4713-b2f1-c9a0375d687d)'
subscriptionName: 'e6d1dg8c-bcd6-4713-b2f1-c9a0375d687d'
action: 'Create Or Update Resource Group'
resourceGroupName: 'AzureLogicApp'
location: 'UK South'
templateLocation: 'Linked artifact'
csmFile: '**/LogicApp.json'
csmParametersFile: '**/LogicApp.parameters.json'
deploymentMode: 'Incremental'
【问题讨论】:
标签: azure azure-devops azure-pipelines-yaml azure-pipelines-tasks