簡體   English   中英

如何在 Azure 管道 yaml 中的參數中傳遞環境變量?

[英]How to pass environment variables in parameters in Azure pipelines yaml?

在 Azure 中,我計算訂閱以在新訂閱中部署資源,我需要在下一個模板中傳遞其訂閱 ID 以在其上部署資源。

所以在stage2中獲得訂閱ID后,我們把它作為環境變量放在powershell腳本中,然后我們想把它發送到stage3(兩個stage都使用不同的池),stage3在分離的模板spoke1.yaml作為參數。

實際上在 stage2 最后我可以打印它的值,但是我不能將這個值作為參數傳遞,我們該怎么做呢?

這是代碼,在模板中我無法獲取值。

 - stage: 'Stage2'
    dependsOn: STAGE1
    jobs:
      - job: Deploy
        displayName: Prepare subscription
        steps:
            - template: '../tasks/create_service_connection.yaml'
              parameters:
                  CIName: ${{ parameters.CIName }}
                  projectName: ${{ parameters.projectName }}
            - powershell: Write-Host "##vso[task.setvariable variable=subscriptionidoutput;isOutput=true]$(subscriptionId)"
            - powershell: Write-Host "This subscription ID I want to pass " $(subscriptionId) (This actually works)
  - template: spoke1.yaml
    parameters:
          ServiceConnectionName: "Myserviceconnection"
          CIName: ${{ parameters.CIName }}
          projectName: ${{ parameters.projectName }}
          subscriptionId: What do I need to put here?

這是我嘗試使用此參數的模板部分

 - template: '../tasks/create_storage_account_for_tfstate.yaml'
   parameters:
     subscriptionId: ${{ parameters.subscriptionId }}

模板從階段級別開始,然后是作業和任務,它使用另一個池。

該參數聲明在模板的頂部,僅在subscriptionID 中出現問題,其他參數工作正常,值為空。

我這樣做的方式是直接在模板中訪問變量。

在您的情況下,您可以像這樣訪問它:

$(subscriptionidoutput)

它應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM