簡體   English   中英

TFS \\ Team Services,在構建定義中使用變量組中的Azure KeyVault機密

[英]TFS\Team Services, Using Azure KeyVault secrets from a Variable Group in a Build Definition

我在Team Services中有一個簡單的構建設置。 該構建僅從Team Services托管的Git存儲庫下載源代碼,然后執行Powershell腳本。

Powershell腳本接收4個參數。

-SiteName "$(AppServiceName)" -AzureRMTenantID "$(AzureRMTenantID)" -AzureRMUN "$(AzureRMUN)" -AzureRMPW "$(AzureRMPW)"

在構建隊列中手動輸入AppServiceName。

3個AzureRM *參數應該來自我鏈接到構建定義的變量組;

構建作業中的變量配置 變量組AzureDevOps配置為將Azure Key Vault的機密鏈接為變量;

庫中配置的變量組

根據我能夠找到的有關此模式的所有信息,似乎它應該可以工作。

作為臨時檢查,我將在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: 

我不希望變量在此處的log命令中顯示;

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”代理隊列。

首先,您無法打印出秘​​密變量的值,可以將數據發送到服務(例如Web API)以在構建/發布期間獲取實際數據。

其次,Key Vault機密變量用於發布,它將在發布期間添加Azure Key Vault任務。 將Azure Key保管庫中的機密鏈接為變量

如果在構建中使用,則將獲得空值。 您可以將Key Vault Task添加到構建定義中,然后可以在以下任務中使用相關變量。 (不需要在構建定義中鏈接到該變量組)

目前,Key Vault支持僅與版本定義一起使用。 您可以創建一個Release Definition並將Git Repo鏈接為工件,並可以實現相同的目標。

將Azure Keyvault VG鏈接到BD時收到此錯誤。 在此處輸入圖片說明

暫無
暫無

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

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