![](/img/trans.png)
[英]Unable to pass on Env variables to powershell script (not inline) in azure pipelines 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.