簡體   English   中英

Azure DevOps Yaml:從變量 Azure KeyVault 任務中獲取秘密變量

[英]Azure DevOps Yaml: Gaining secret variable out of Azure KeyVault Task from Variable

我正試圖從我的 KeyVault 中獲取一個秘密。 變量名是secretVar。

像這樣獲取秘密: $(secretVar) 工作正常,但是我想從這樣的變量中檢索它:

在此處輸入圖像描述

我不斷收到找不到命令,我不知道為什么這不應該工作。

所以我要提取的秘密名稱在 bash 變量中。 對於這個問題,我已經簡化了問題,但在我的實際用例中,我有一個 bash for 循環,它遍歷秘密名稱,在 for 循環中,我想從具有相應秘密名稱的 KeyVault 中提取適當的值,如下所示:

for secretname in secrets; do
  echo $($secretname) # This should contain the value of the secret but gives command not found
done

如果有人知道會發生什么,非常感謝任何幫助。

提前致謝!

查看您正在使用的語法。

variable=secretVar

您正在使用文字值secretVar創建環境變量

然后您嘗試使用$($variable)執行變量$variable的值。 因此它嘗試運行命令secretVar ,該命令顯然不存在,並且您會收到一條錯誤消息。

您正在尋找的語法是

variable=$(secretVar)

就像您在腳本中的第一個echo命令中使用的一樣。

如果您不想將變量值作為命令運行,則語法為$variable ,而不是$($variable)

$variable是 Bash 環境變量的語法。

$(variable)是引用 Azure DevOps 變量的語法。

首先, script關鍵字是命令行任務的快捷方式。 該任務在 Windows 和 Bash 上使用 cmd.exe 運行腳本。 您需要注意您正在使用的代理。

如果要在腳本中設置變量,可以使用 task.setvariable 日志命令。 例如:

- script: |
    echo $(secretvar)
    echo "##vso[task.setvariable variable=variable]$(secretvar)"
- script: |
    echo $(variable)

您可以在本文檔中找到更詳細的信息。

暫無
暫無

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

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