[英]Python script in Azure Devops Pipeline cannot use a value from library if it's a secret
我有一個 Azure Devops Pipeline 設置。 它通過 yaml 獲得了一些秘密
variables
- group: GROUP_WITH_SECRET
然后在管道的后半部分,我運行了一個 python 腳本,該腳本通過
my_pat = os.environ["my_secret"]
然后將其用於 Microsoft ( msrest
) 提供的庫中,如下所示:
BasicAuthentication("", my_pat)
如果有問題的變量在 ADO 庫中設置為普通,則腳本可以正常工作。 如果我將其更改為機密,則連接失敗。 如果我將它設置回純文本,它會再次起作用。
問題是,我怎樣才能讓它與秘密一起工作? 我已經嘗試將值打印出來,但由於它是一個秘密,它不會向我顯示除The user 'aaaaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa' is not authorized to access this resource
之外的實際值
要在 Azure 管道中使用秘密變量,您需要在代理作業中顯式地指定 map 秘密變量。
根據我的測試,Python 腳本任務沒有 map 秘密變量的環境字段。
因此,您可以將 PowerShell 任務中的環境變量添加到 map 秘密變量中。 您可以將其設置為下一個任務的管道變量。
這是一個例子:
- powershell: |
echo "##vso[task.setvariable variable=myPass]$env:myPass"
displayName: 'PowerShell Script'
env:
myPass: $(myPass)
然后您可以在接下來的任務中使用該變量。
有關更多詳細信息,您可以參考此文檔: Secret Variable
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.