У нас есть два конвейера для развертывания в наших приложениях-функциях 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'
Среды , которые я использовал в качестве цели развертывания в задании типа 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, добавлены ли пользователи в организацию Azure DevOps и проект, в котором работает конвейер? Также проверьте правильность адресов электронной почты.
Ран, да, я добавил себя для проверки, но не получил никакого письма
@P.T, проверьте список «Нежелательной почты» в своем почтовом ящике, чтобы увидеть, есть ли там уведомление.
Ран, да, оно было там. Спасибо :)
Этот вопрос похож на: Как добавить шаг ручного вмешательства в yaml Azure Pipelines. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему.