Как настроить проверку утверждения конвейера Azure для развертывания в приложениях-функциях Azure?

У нас есть два конвейера для развертывания в наших приложениях-функциях Azure. Один для разработки и один для продукта. Тот, который предназначен для разработчиков, срабатывает автоматически и не требует какого-либо одобрения. Но вариант для Prod запускается вручную и требует проверки утверждения. Оба конвейера используют одно и то же сервисное соединение. Не знаю, как мне настроить проверку одобрения, потому что когда я захожу в «Среду», я могу добавить в качестве ресурса только «Kubernetes» и «Виртуальные машины».

trigger: 
  branches:
    include:
      - master
  paths:
    include:
      - function-app/**

resources:
  repositories:
    - repository: aomdevops
      type: git
      name: AOM-Core/AOM-Devops

variables:
  - name: postmanEnv
    value: "postman/telco_local.postman_environment.json"

pool:
  vmImage: ubuntu-latest

stages:
  - stage: Deploy
    jobs:
      - job: DeployExtractInfo
        displayName: "Deploy Extract Info"
        steps:
          - template: templates/funcapp-deployment.yaml
            parameters:
              faName: 'funcapp-xxxxxxxxx'
              resourceGroup: 'xxxxxxxxxxxxxxxx'
              azureSvcConn: 'aom-azure'
              funcAppFolder: 'function-app/xxxxxxxxxxx/'
              funcAppName: 'exInfo'

      - job: DeployErrorHandling
        displayName: "Deploy Error Handling"
        steps:
          - template: templates/funcapp-deployment.yaml
            parameters:
              faName: 'xxxxxxxxxxxxxxxxxxxxxx'
              resourceGroup: 'xxxxxxxxxxxxxxxxx'
              azureSvcConn: 'aom-azure'
              funcAppFolder: 'function-app/xxxxxxxxxx/'
              funcAppName: 'errHandling'

Этот вопрос похож на: Как добавить шаг ручного вмешательства в yaml Azure Pipelines. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему.

akseli 04.07.2024 03:23
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Среды , которые я использовал в качестве цели развертывания в задании типа deployment. См. « определение jobs.deployment » и « определение jobs.deployment.environment».

jobs:
- deployment: deploy
  environment: environmentName.resourceName
  . . .

В настоящее время в Средах поддерживаются только типы ресурсов (resourceType) и virtualMachine. Приложение-функция Azure не поддерживается.

В вашем случае вы можете использовать задачу ManualValidation@0 , чтобы настроить ручные утверждения в вашем конвейере YAML, как показано ниже.

# azure-pipelines.yml

stages:
- stage: Deploy
  jobs:
  - job: approval
    displayName: 'Wait for Approval'
    pool: server
    timeoutInMinutes: 4320
    steps:
    - task: ManualValidation@0
      timeoutInMinutes: 1440
      inputs:
        notifyUsers: |
          [email protected]
          [email protected]
        instructions: 'Please validate and approve this deployment.'
        onTimeout: 'reject'
  
  - job: DeployExtractInfo
    displayName: 'Deploy Extract Info'
    dependsOn: approval
    . . .

  - job: DeployErrorHandling
    displayName: 'Deploy Error Handling'
    dependsOn: approval
    . . .

При использовании этого метода при запуске этапа Kubernetes сначала запускается задание Deploy, ожидающее одобрения указанных пользователей. После одобрения он начнет выполнять последующие задания approval и DeployExtractInfo.


Спасибо @Bright Ran, сам конвейер по-вашему работает нормально, но по какой-то причине он не отправляет электронное письмо утверждающим лицам, чтобы уведомить их. должен ли я настроить для этого какие-либо другие вещи?

P.T 04.07.2024 07:21

@P.T, добавлены ли пользователи в организацию Azure DevOps и проект, в котором работает конвейер? Также проверьте правильность адресов электронной почты.

Bright Ran-MSFT 04.07.2024 07:40

Ран, да, я добавил себя для проверки, но не получил никакого письма

P.T 04.07.2024 07:58

@P.T, проверьте список «Нежелательной почты» в своем почтовом ящике, чтобы увидеть, есть ли там уведомление.

Bright Ran-MSFT 04.07.2024 08:08

Ран, да, оно было там. Спасибо :)

P.T 05.07.2024 03:13

Другие вопросы по теме

Как получить доступ к строке подключения с помощью Python
Как полностью остановить локальный запуск функции Azure? Функция Azure [Python V2] продолжает предыдущее выполнение при перезапуске отладчика [VS Code]?
Код ошибки MSB4062 в проекте функции Azure в VS для запуска API Microsoft Graph с функциями Azure
Получение исключения «Невозможно динамически создать экземпляр типа Microsoft.Azure.Functions.Worker.Http.HttpRequestData». в функции Azure
Приложению функции Azure Python не удается импортировать пакеты при развертывании через Azure DevOps
Azure Blob: как автоматизировать преобразование архивного хранилища Azure в холодный/горячий уровень, отправить ссылку для загрузки, как только она станет доступна, и повторно заархивировать через 72 часа?
Код ошибки CS:0021 в проекте функции Azure в VS для запуска API Microsoft Graph с функциями Azure
Функция Azure работает локально, но не в Azure
Функции Azure: задание не найдено (Python)
Вход FastAPI в маршруты в функциях Azure