Как установить переменную среды для задания сборки node js в конвейере azure DevOps - PullRequest
0 голосов
/ 25 мая 2020

Я импортирую некоторые секреты из Azure Key Vault в группу переменных в конвейер CI / CD.

Я могу сопоставить требуемые секреты в VariableGroup из KeyVault, используя Azure Devops UI.

В моем конвейере YAML я могу читать и распечатывать те переменные VariableGroup, которые являются секретами AzureKeyVault.

    trigger:
      - dev

    # define the VM image 
    pool:
      vmImage: "Ubuntu 16.04"

    # define variables to use during the build
    variables:
    - group: SecretVarGroup # it has keyvault variable 'KV_API_KEY'
    - group: PublicVarGroup # it has a variable 'API_CLIENTID'

    # define the step to export key to env varaiable
    steps:

      - script: echo $MYSECRETAPIKEY
        env:
          MYSECRETAPIKEY: $(KV_API_KEY)

      ## Run the npm build
      - script: |
          npm run build
        displayName: "npm build"

Я могу видеть значение секрета KV_API_KEY, напечатанное как значение *** в журнал вывода сборки, который, как я предполагаю, может потреблять. Я также вижу значение API_CLIENTID, напечатанное в журнале сборки, а также объект node js process.env.

Я предполагал, что переменная «MYSECRETAPIKEY» будет доступна в моем объекте node js process.env. Но это не доступно.

Я тестировал это в своей конфигурации сборки проекта node js. У меня есть оператор печати, который печатает объект process.env. Он распечатал все переменные среды агента построения конвейера, включая мою переменную PUBLICVARGROUP «API_CLIENTID». Но я не вижу свою секретную переменную MYSECRETAPIKEY в объекте process.env.

   env:
          MYSECRETAPIKEY: $(KV_API_KEY)

Я думал, что строка выше будет экспортировать переменную в указанную среду языкового процесса c. Но это не так. Как я могу это исправить?

1 Ответ

2 голосов
/ 26 мая 2020
# define the step to export key to env varaiable
steps:

  ## Run the npm build
  - script: |
      npm run build
    displayName: "npm build"
    env:
      MYSECRETAPIKEY: $(KV_API_KEY)

Похоже, что секреты привязаны к агенту для использования отдельными задачами и скриптами. Проблема заключалась в том, что у меня была env: declaraion в отдельной задаче adho c. Перемещение его в то же место, где и мое объявление сценария в приведенном выше коде, устранило проблему.

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