我在Team Services中有一個簡單的生成設置。構建只需從Team Services託管的Git倉庫中下載源代碼,然後執行Powershell腳本。TFS Team Services在構建定義中使用來自變量組的Azure KeyVault機密
Powershell腳本接收4個參數;
-SiteName "$(AppServiceName)" -AzureRMTenantID "$(AzureRMTenantID)" -AzureRMUN "$(AzureRMUN)" -AzureRMPW "$(AzureRMPW)"
當構建排隊時手動輸入AppServiceName。
3個AzureRM *參數應該來自我鏈接到構建定義的變量組;
的變量組AzureDevOps被配置爲從鑰匙天青保管箱鏈路祕密作爲變量;
基礎上的一切,我已經能夠找到關於這種模式,現在看來似乎應該只是工作。
作爲臨時健全性檢查,我在我的powershell腳本中輸出變量,以便我可以確認它們是否正確傳遞。
到目前爲止,我還沒有能夠正確打印任何AzureRM *變量的值,這導致我認爲他們是不是按預期方式通過。
Generating script.
Formatted command: . 'd:\a\1\s\AppServices\Create Canned App Service Application.ps1' -SiteName "Testers" -AzureRMTenantID "" -AzureRMUN "" -AzureRMPW ""
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -File "d:\a\_temp\23b9a27a-4b6d-4232-8e24-150173e08915.ps1"
Working Set of Variables:
SiteName: Testers
ResourceGroup: Applications
ASE Name: appservices-ase
Location: East US
Additional Variables:
AzureRMTenantID:
我不希望在這裏的日誌命令中打印變量;
Formatted command: . 'd:\a\1\s\AppServices\Create Canned App Service Application.ps1' -SiteName "Testers" -AzureRMTenantID "" -AzureRMUN "" -AzureRMPW ""
但我希望他們能印在我的腳本中,我明確地寫出來;
Write-Host "Working Set of Variables:`nSiteName: "$SiteName"`r`nResourceGroup: "$RG"`r`nASE Name: "$ASEName"`r`nLocation: "$Location
Write-Host "Additional Variables:`nAzureRMTenantID: "$AzureRMTenantID"`r`n"$AzureRMUN"`r`n"$AzureRMPW
如果我在本地運行PS腳本,則值按預期打印;
PS C:\ashley\scm\AzureAutomation\AppServices> & '.\Create Canned App Service Application.ps1' -SiteName "tester" -AzureRMTenantID 12345 -AzureRMUN user -AzureRMPW 1234
Working Set of Variables:
SiteName: tester
ResourceGroup: Applications
ASE Name: appservices-ase
Location: East US
Additional Variables:
AzureRMTenantID: 12345
user
1234
有誰知道如何使這項工作?我想知道是否該問題與KeyVault權限有關,因爲請求來自Team Services中內置的「託管的2017」代理隊列。
有趣的是,我沒有在我所有的dorking中得到任何類似的錯誤。如果我,我可能不會結束髮布這個問題。這個錯誤顯示在門戶網站或其他地方? – Sage
@Sage我認爲我們最近開始顯示錯誤,並且這些更改可能還沒有到達您的帳戶。您可以像starain-MSFT –
Hi @Harshil指出的那樣添加KeyVault任務,鏈接到構建定義時仍然沒有錯誤消息。不過不用擔心,我理解KeyVault支持的變量組在構建定義中不起作用。這是我們能夠在我們的環境中解決的問題。 我正在尋找重用Jenkins的PS腳本以在發佈管理中執行相同的工作。最後,我選擇評論AzureRMLogin流程(需要這些變量),並使用內置於Azure Task的Powershell來完成這項工作。 – Sage