У меня есть конвейер Azure, который создает основной проект asp-net и создает из него образ докера и передает его в реестр контейнеров Azure.
Этот конвейер сделан из файла azure-pipelines.acr.yml
.Каждая операция git push, которую я выполняю в своей ветке Deployments, превращается в новую сборку в мой конвейер.
До тех пор, пока здесь у меня нет конвейера CI, чтобы интегрировать каждое новое изменение в основной ветке в мой конвейер.
Но после завершения каждой сборки мне нужно запустить новый экземпляр этого образа, помещенный в мой реестр контейнеров, и развернуть его как новую службу приложений, причем весь этот процесс выполняется вручную из служб портала Azure.
Я читал, и мне нужно выполнить непрерывное развертывание с использованием моего конвейера Azure.В моем azure-pipelines.acr.yml
у меня есть рабочий процесс конвейера CI со следующими шагами:
pool:
vmImage: 'ubuntu-16.04' # other options: 'macOS-10.13', 'vs2017-win2016'
variables:
buildConfiguration: 'Release'
imageName: 'zcrm365:$(Build.BuildId)'
dockerId: 'zcrm365' # This is my registry name access key
dockerPassword: 'my password' # Password access key
# I should create an environment variables to dockerId and dockerPassword
steps:
# Build a docker image
- script: |
docker build -t $(dockerId)/$(imageName) -f ZAccountSyncService/Dockerfile . # add options to this command to meet your needs
docker build -t $(dockerId).azurecr.io/$(imageName) -f ZAccountSyncService/Dockerfile .
docker login -u $(dockerId) -p $(dockerPassword) $(dockerId).azurecr.io
docker images
docker push $(dockerId).azurecr.io/$(imageName)
##### DEPLOY A WEB APP ########
- script: dotnet publish --output $(Build.ArtifactStagingDirectory)
# Publish the output of our build to Azure Pipelines
- task: PublishBuildArtifacts@1
- task: DotNetCoreCLI@2
inputs:
command: publish
# our repository seems has no web project
publishWebProjects: False
# We should specify your .csproj in project(s) option.
projects: ""
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
# CREATING AN Azure App Service Deploy task
- task: AzureRmWebAppDeployment@3
inputs:
# Is this my ID Subscription?
azureSubscription: '4e65758d-dbf5-456f-bb55-6b92273772dd'
WebAppName: 'zcrm-365'
Package: $(System.ArtifactsDirectory)/**/*.zip
И в моем конвейере сборки я получаю эту ошибку вывода:
Job Job: Step input azureSubscription references service connection ID SUBSCRIPTION which could not be found. The service connection does not exist or has not been authorized for use. For authorization details, refer to https://aka.ms/yamlauthz.
Я пытаюсь этот процесс и у меня активна подписка Azure, но я не могу настроить соединение с ней.
Как настроить подключение к службе для подключения к Azure Resource Manager и возможноbe create my app service?
Идея состоит в том, чтобы сделать этот шаг, чтобы перейти к созданию моего конвейера выпуска с процессом CI, который я выполняю.