Azure Pipelines YAML - ошибка при использовании группы переменных для ввода AzureSubscription «Развернуть веб-приложение» - PullRequest
2 голосов
/ 29 марта 2020

Я определил группы переменных для своих различных сред с переменной board.subscription, которая задает Azure Подключение службы, которое будет использоваться при развертывании WebApp.

Эти группы переменных упоминаются для заданий развертывания:

name: $(Date:yyyyMMdd)-$(Rev:r)

trigger:
  - master
  - dev
  - feature/*
  - bug/*

stages:
  - stage: build
...
  - stage: deploy_test
    displayName: deploy to TEST
    dependsOn: build
    variables:
      - group: 'Test-Deployment'
    jobs:
      - template: azure-pipelines/deploy.yml
        parameters:
          environment: TEST

  - stage: deploy_prod
    displayName: deploy to PROD
    dependsOn: deploy_test
    variables:
      - group: 'Production-Deployment'
    jobs:
      - template: azure-pipelines/deploy.yml
        parameters:
          environment: PROD

, а затем переменная используется в файле deploy.yml:

parameters:
  environment: ''
  agentImage: 'ubuntu-latest'

jobs:
  - deployment: ${{ parameters.environment }}
    displayName: deploy to ${{ parameters.environment }}
    environment: ${{ parameters.environment }}
    pool:
      vmImage: ${{ parameters.agentImage }}
    strategy:
      runOnce:
        deploy:
          steps:
            - download: current
              artifact: drop
            - task: AzureWebApp@1
              inputs:
                azureSubscription: '$(board.subscription)'
                appName: '$(board.functionapp)'

Однако при постановке в очередь конвейерное выражение, кажется, вычисляется до заполнения переменной, что приводит к этому ошибка:

There was a resource authorization issue: "The pipeline is not valid. Job TEST: Step input azureSubscription references service connection $(board.subscription) which could not be found.

Когда я использую буквальное значение для azureSubscription, оно работает нормально.

Вопрос: Может ли эта оценка быть отложена или есть другой способ? за то, что в файле YAML нет жестко запрограммированного имени подключения службы?

1 Ответ

0 голосов
/ 30 марта 2020

Я протестировал с группой переменных и получил ту же ошибку, что и вы:

enter image description here

Если подписка определена только для переменной в yaml, а затем указанный в задаче AzureWebApp, конвейер не получит эту ошибку.

variables:
  azureSubscription: connectionName
  # -group : test1

stages:
...
    - task: AzureWebApp@1
      displayName: 'Azure Web App Deploy: 1123'
      inputs:
        azureSubscription: '$(azureSubscription)'
        appType: webApp
        appName: xxx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...