5

board.subscriptionWebApp のデプロイで使用する Azure サービス接続を指定する変数を使用して、さまざまな環境の変数グループを定義しました。

これらの変数グループは、展開ジョブで参照されます。

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 ファイルにハードコーディングしないための別の方法はありますか?

4

1 に答える 1