使用基于 YAML 的 Azure DevOps Pipeline,如何以无法通过修改 YAML 来规避的方式获得批准才能将应用程序服务(Web 应用程序)部署到生产等环境?
我知道在管道/环境下您可以创建一个环境并设置批准和检查。然后,您可以在 YAML 管道中拥有一个与该环境关联的阶段。我担心的是,YAML 管道可能会更改为不再与该环境关联(例如,将其更改为不需要批准的 DEV 环境),但仍然引用 Production Azure 资源(WebAppName 属性),从而绕过赞同。限制访问的另一件事似乎是服务连接,但似乎您需要授予管道使用服务连接的权限,而这并不能真正作为每个部署正在进行的审批流程的一部分。
- stage: PROD
displayName: PROD
jobs:
- job: Release_Prod
displayName: Release to PROD
pool:
vmImage: 'Windows-2019'
- deployment:
displayName: 'PROD Deployment'
environment: 'Web App - PROD'
strategy:
runOnce:
deploy:
steps:
- task: DownloadBuildArtifacts@1
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'Production'
appType: 'webApp'
WebAppName: 'my-production-web-app'
package: '$(System.ArtifactsDirectory)/**/*.zip'
我知道怎么做了。您根本不使用环境。相反,您可以在服务连接本身上设置批准。