получить все секреты от Azure Devops в Node.JS процессе - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь передать все секреты из Azure Devops конвейера в Node.js процесс. Прямо сейчас, для этого мне нужно явно передать секреты в качестве параметров процессу Node.JS:

enter image description here

Кроме того, я знаю, что могу получить список всех Azure переменных из process.env внутри Node.JS:

console.log(process.env);

Есть ли способ передать все секреты и их значения в Node.JS без явного указания его в качестве параметров Node.JS но перечислить его как process.env?

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Существует способ передать секреты в Node.JS без явного указания на него в качестве параметров.

Как описано ниже в документе Установить секретные переменные .

В отличие от обычной переменной, они не дешифруются автоматически в переменные среды для скриптов. Вам необходимо явно отобразить секретные переменные.

Каждая задача, которой необходимо использовать секрет в качестве переменной среды, выполняет переопределение. Если вы хотите использовать секретную переменную mySecret из сценария, используйте раздел Environment входных переменных задачи сценария. Задайте для имени переменной среды значение MYSECRET и установите значение $ (mySecret).

Поэтому вам нужно использовать раздел Переменные среды , чтобы отобразить секреты в стороне задачи , Проверьте скриншот ниже.

enter image description here

После того, как секреты сопоставлены, вам не нужно явно передавать секреты в сценарии, как то, что вы сейчас делаете. Вы можете использовать process.env.API_KEY напрямую, чтобы получить секреты внутри Node.JS.

Надежда выше помогает!

0 голосов
/ 09 апреля 2020

Сначала я попробовал az cli

az pipelines variable list --org "https://dev.azure.com/organization-name" --project "project-name" --pipeline-name "pipeline-name"

Но я получил:

az : This command group is in preview. It may be changed/removed in a future release.
At line:1 char:1
+ az pipelines variable list --org "https://dev.azure.com/organization-name...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (This command gr...future release.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Я могу получить переменные, используя:

  - task: Bash@3
    inputs:
      targetType: 'inline'
      script: 'env | sort'

Но вы получит также кучу предварительно собранных переменных.

Мои определенные переменные:

enter image description here

и вот вывод журнала:

ImageVersion=20200330.1
INPUT_ARGUMENTS=
ISPROD=true
JAVA_HOME_11_X64=/usr/lib/jvm/zulu-11-azure-amd64
JAVA_HOME_12_X64=/usr/lib/jvm/zulu-12-azure-amd64

Также можно попробовать позвонить API . Я не пробовал этот подход. Но это должно быть выполнимо.

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