通过azure管道单阶段将包部署到多个webapp服务



我在azure中有100多个webapp服务。我想用一个管道yml文件通过azure管道在100个web应用程序中部署包。但我找不到这样的文件。我有一份微软文档,他们更喜欢增加管道步骤。如果我有100个webapps服务,那么每次部署都必须添加100个步骤。这不是一种有效的方法,而且很耗时。我只想像这一步。

- task: AzureWebApp@1
displayName: 'Azure Web App Deploy'
inputs:
azureSubscription: '$(Parameters.connectedServiceName)'
appType: webApp
ResourceGroupName: $(group)
appName: 'JustGoTestAgain, justgotesttwo, webapp123, webapp555, webapp777 and so on ........'
package: '$(build.artifactstagingdirectory)/**/*.zip'

此yaml文件显示错误。我找不到任何必要的扩展来修复它。我也找不到与此问题有关的任何azure powershell部署命令。如何获得解决方案?

您将无法这样做。但是,您可以使用Azure Cli任务:

- task: AzureCLI@2
displayName: Azure CLI
inputs:
azureSubscription: '$(Parameters.connectedServiceName)'
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
$apps= @('JustGoTestAgain, justgotesttwo, webapp123, webapp555, webapp777 and so on ........')
foreach ($app in $apps) {
az webapp deployment source config-zip -g $(group) -n $app --src '$(build.artifactstagingdirectory)/SOME_FOLDER/Artifact.zip'
}

这里你有更多关于部署本身的细节

另一种方法是,如果一个任务失败,则可以继续执行多个任务:

parameters:
- name: apps
type: object
default:
- JustGoTestAgain
- justgotesttwo
- and so on
steps:
- ${{ each app in parameters.apps}}:
- task: AzureWebApp@1
displayName: 'Azure Web App Deploy ${{ app }}'
continueOnError: true
inputs:
azureSubscription: '$(Parameters.connectedServiceName)'
appType: webApp
ResourceGroupName: $(group)
appName: ${{ app }}
package: '$(build.artifactstagingdirectory)/**/*.zip'

这是太空的问题。现在很好。除此之外,connectedServiceName只有一个问题

作业作业:步骤输入azureSubscription引用了找不到的服务连接$(Parameters.connectedServiceName(。服务连接不存在或未被授权使用。有关授权的详细信息,请参阅https://aka.ms/yamlauthz.作业作业:步骤输入azureSubscription引用了找不到的服务连接$(Parameters.connectedServiceName(。服务连接不存在或未被授权使用。有关授权的详细信息,请参阅https://aka.ms/yamlauthz.作业作业:步骤输入azureSubscription引用了找不到的服务连接$(Parameters.connectedServiceName(。服务连接不存在或未被授权使用。有关授权的详细信息,请参阅https://aka.ms/yamlauthz.

我在这里跳过了它,因为您的解决方案中已经有了它。

最新更新