Загрузка переменных среды CodeBuild из файла, который не был зарегистрирован в системе контроля версий - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть файл окружения, который я использую локально, но я не зарегистрировался в системе контроля версий. Это выглядит примерно так:

env.ts

const config = {
  prod: {
    serviceA: {
      varA: 'xyz',
      varB: 'xyz',
      varC: 'xyz',
      varD: 'xyz',
    },
    serviceB: {
      varA: 'xyz',
      varB: 'xyz',
      varC: 'xyz',
      varD: 'xyz',
    },
  },
  test: {
    serviceA: {
      varA: 'xyz',
      varB: 'xyz',
      varC: 'xyz',
      varD: 'xyz',
    },
    serviceB: {
      varA: 'xyz',
      varB: 'xyz',
      varC: 'xyz',
      varD: 'xyz',
    },
  },
};

export default config;

Используя Webpack, я могу загружать соответствующие переменные окружения для конкретной службы при локальном построении. Модуль может обращаться к этим переменным среды следующим образом:

import config from '@env';

  const {
    varA,
    varB,
    varC,
    varD,
  } = config[process.env.NODE_ENV].serviceA;

Я настроил этот проект с AWS CodePipeline и CodeBuild, и я понял, что тесты и сборка не будут работать, потому что мой Файл env.ts не проверяется в управлении исходным кодом, поскольку он содержит конфиденциальные учетные данные.

Я могу добавить переменные среды внутри консолей CodePipeline / CodeBuild, но я не думаю, что это будет работать, поскольку код ссылка на файл с именем env.ts, который не проверен в управлении исходным кодом.

Возможно ли сохранить этот env.ts в чем-то вроде S3, а затем перетащить его в конвейер для использоваться в облаке при сборке? Может быть, я мог бы загрузить этот файл как-то в buildspe c? Вот мой текущий buildspe c для справки:

version: 0.2

phases:
  install:
    commands:
      - echo installing packages...
      - npm install --global yarn
      - yarn install
      # <-- load in env.ts file here somehow?
  build:
    commands:
      - echo running tests...
      - yarn jest
      - echo building...
      - yarn build

artifacts:
  files:
    - $CODEBUILD_SRC_DIR/dist/prod/*

1 Ответ

1 голос
/ 19 апреля 2020

Сборка кода уже предусматривает настройку переменных среды для этой цели. Или вы можете использовать приватное ведро S3 для хранения файлов конфигурации и извлечения файлов во время выполнения, используя команды AWS S3 cli. Просто убедитесь, что codebuild было предоставлено необходимое разрешение для извлечения файлов конфигурации из s3 во время сборки. Если вы используете переменные среды codebuild, вы можете использовать хранилище параметров для хранения вашей конфиденциальной информации и доступа в buildspecyml, добавив «$» перед переменной среды, которую вы добавили в codebuild

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