当然不要忘记,官网才是最好的老师:docs.microsoft.com/zh-cn/dotnet/core/
沙盒学习指南: 免费环境docs.microsoft.com/zh-cn/learn/browse
posted @ 2020 初久的私房菜 推荐出品

在Azure DevOps Release中增加审批和检查

 

正文

在Azure DevOps Release中增加审批和检查

在Azure DevOps中,发布管道(Release Pipelines)是自动化部署过程中不可或缺的一部分。通过在发布流程中增加审批和检查,我们可以确保部署的安全性和合规性,同时提供更细粒度的控制。本文将介绍如何在Azure DevOps的发布过程中增加审批和检查,并提供YAML脚本代码示例。

理解审批和检查

在Azure DevOps中,审批(Approvals)和检查(Checks)是两种机制,用于在自动化部署流程中增加手动干预和自动化验证。

审批允许团队成员在部署到特定环境前手动确认或拒绝部署。
检查则可以是自动的,用于验证是否满足特定条件,如时间窗口、代码质量、依赖项等。

增加审批

在Azure DevOps的发布管道中增加审批,可以通过图形界面操作,也可以通过YAML脚本来定义。以下是使用YAML定义审批的示例:

# azure-pipelines.yml

trigger: none

stages:
- stage: Deploy
  displayName: 'Deployment with Approval'
  jobs:
  - job: DeployJob
    displayName: 'Deploy to Production'
    pool:
      vmImage: 'ubuntu-latest'
    steps:
    - checkout: none
    - task: ManualIntervention@8
      displayName: 'Awaiting Manual Approval'

增加检查

检查可以在环境级别配置,也可以通过YAML脚本来定义。以下是使用YAML定义检查的示例:

# azure-pipelines.yml

resources:
  environments:
  - name: 'Production'
    resourceType: 'virtualMachine'
    checks:
    - approval:
        timeout: '24h' # Timeout period
        instructions: 'Please review and approve this deployment'

stages:
- stage: Deploy
  displayName: 'Deployment Stage'
  jobs:
  - job: DeployJob
    displayName: 'Deploy to Production'
    environment: 'Production'
    steps:
    - checkout: none
    - script: echo 'Deployment script execution...'
      displayName: 'Execute Deployment Script'

调用Azure函数/REST API检查

除了内置的检查,Azure DevOps还支持调用外部Azure函数或REST API进行更复杂的检查。以下是定义调用Azure函数检查的示例:

# azure-pipelines.yml

steps:
- task: AzureFunction@1
  displayName: 'Invoke Azure Function Check'
  inputs:
    azureSubscription: 'Your_Azure_Subscription'
    Function: 'Your_Azure_Function_Name'
    # Other input parameters

完整YAML

# azure-pipelines.yml

trigger: none # 禁用自动触发,示例中仅手动触发

resources:
  environments:
  - name: 'Production'
    resourceType: 'virtualMachine'
    # 定义环境级别的审批检查
   审批:
      timeout: '1h' # 设置审批的超时时间为1小时
      instructions: 'Please review and approve the deployment to Production.'

stages:
- stage: Build
  displayName: 'Build Stage'
  jobs:
  - job: BuildJob
    displayName: 'Build Application'
    pool:
      vmImage: 'windows-latest'
    steps:
    - script: echo 'Building the application...'
      displayName: 'Build Script'

- stage: Deploy
  displayName: 'Deployment Stage'
  dependsOn: Build # 此部署阶段依赖于构建阶段
  jobs:
  - deployment: DeployToProd
    displayName: 'Deploy to Production'
    environment: 'Production'
    strategy:
      runOnce:
        deploy:
          steps:
          - checkout: none # 不需要源代码

          # 手动审批步骤
          - task: ManualIntervention@8
            displayName: 'Manual Approval for Production Deployment'
            inputs:
              instructions: 'Approve to deploy to Production environment.'

          # 调用Azure函数检查步骤
          - task: AzureFunction@1
            displayName: 'Invoke Azure Function for Pre-Deployment Check'
            inputs:
              azureSubscription: 'Your_Azure_Subscription' # 你的Azure订阅
              Function: 'Your_Azure_Function_For_Check' # 你的Azure函数,用于执行部署前检查
              functionParameters: '-CodeVersion $(Build.BuildNumber)' # 传递参数给Azure函数

          # 部署脚本步骤
          - script: echo 'Deploying to Production...'
            displayName: 'Deployment Script'

          # 发布后的操作,例如通知
          - task: AzureFunction@1
            displayName: 'Post-Deployment Notification'
            inputs:
              azureSubscription: 'Your_Azure_Subscription'
              Function: 'Your_Azure_Function_For_Notification' # 你的Azure函数,用于发布后通知
              functionParameters: '-DD'

结合使用审批和检查

在实际部署中,审批和检查往往结合使用,以确保部署流程既符合自动化需求,又满足手动干预和验证的要求。通过YAML脚本,我们可以灵活地定义这些流程,实现复杂的部署策略。

总结

通过在Azure DevOps的发布管道中增加审批和检查,我们能够实现更安全、更可控的部署流程。YAML脚本的使用提供了一种灵活、声明式的方法来定义这些流程。结合Azure DevOps的强大功能,我们可以构建出满足各种业务需求的CI/CD流程。

posted @   初久的私房菜  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
作者:初久的私房菜
好好学习,天天向上
返回顶部小火箭
好友榜:
如果愿意,把你的博客地址放这里
张弛:https://blog.zhangchi.fun/
点击右上角即可分享
微信分享提示