簡體   English   中英

Azure Devops Pipeline 中的 Python 腳本不能使用庫中的值,如果它是一個秘密

[英]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.

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