Powershell - считывает значение переменной среды и задает значение в файле Yaml - PullRequest
0 голосов
/ 05 апреля 2020

В сеансе Powershell я пытаюсь прочитать значение переменной среды VAULT_TOKEN, чтобы установить значение для ключа (X-Vault-Token), а затем сохранить выходные данные в файл yaml. Переменная среды VAULT_TOKEN имеет допустимое значение, но я не могу получить это значение для X-Vault-Token: $(env:VAULT_TOKEN).

 # Create a YAML Document 
$RawYaml = @'
integration_name: com.monitor.sql
variables:
  Content:
    vault:
      http:
        url: https://vault.service.consul/v1/xyz/mssqlnr
        headers:
          X-Vault-Token: $(env:VAULT_TOKEN)
 '@

$RawYaml | out-File C:\Users\Public\Downloads\config.yaml  

Я ссылался на ссылку (https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cpowershell&viewFallbackFrom=vsts#set -in-script ) и пробовал разные варианты безуспешно. Пожалуйста, совет.

1 Ответ

2 голосов
/ 05 апреля 2020

Проблема не в том, как вы вызываете переменную, а в том, какой тип строки здесь вы использовали, в PS, когда вы используете '' для определения текста, она не раскрывает никакую переменную, например:

PS> $test =@'
>> $(5+5)
>> '@
PS> $test
$(5+5)

вам нужно использовать двойные кавычки ", например:

PS> $test2 =@"
>> $(5+5)
>> "@
PS> $test2
10

, поэтому в вашем случае это будет выглядеть так:

# Create a YAML Document 
$RawYaml = @"
integration_name: com.monitor.sql
variables:
  Content:
    vault:
      http:
        url: https://vault.service.consul/v1/xyz/mssqlnr
        headers:
          X-Vault-Token: $env:VAULT_TOKEN
 "@

$RawYaml | out-File C:\Users\Public\Downloads\config.yaml  

Это должно исправить, удачи .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...