Спасибо за любую помощь.

Я использую AWS-CodePipline с AWS-CodeBuild (для моего файла Dockerfile и сохраняю его в ECR). Пока работает. Но я не понимаю, как получить переменные среды в проекте. Поэтому я подключил свою учетную запись Github к CodePipline и не отправлял свои env в Github в целях безопасности. Итак, теперь у меня на Github есть env-файл, например:

config/prod.env

ACCESS_TOKEN_SECRET=
CSRF_TOKEN_SECRET=
ACCESS_TOKEN_PASSWORD=
REFRESH_TOKEN_SECRET=
CLUDINARY_API=
CLUDINARY_API_SECRET=
CLUDINARY_API_NAME=
GOOGLE_AUDIENCE=
ORIGIN=
GOOGLE_TOKEN=
DATABASE_URL=
NODE_ENV=
FORGOTTEN_PASSWORD=
YAHOO_PASSWORD=

Теперь на AWS-CodeBilder есть раздел для переменных среды (Изображение из AWS-Doc). введите здесь описание изображения

Теперь у меня такое чувство, что это не подходящее место для env. Потому что, если я помещаю все свои переменные в поля, я получаю ошибку:

ValidationException
1 validation error detected: Value at 'pipeline.stages.2.member.actions.1.member.configuration' failed to satisfy constraint: Map value must satisfy constraint: [Member must have length less than or equal to 1000, Member must have length greater than or equal to 1]

На примере:

Name: ACCESS_TOKEN_SECRET
Value: My_SUPER_PASSWORD

Если я использую всего несколько переменных, я не получаю ошибку, но для всех переменных я получаю ошибку (не имеет значения комбинация env). Что я делаю не так? Как я могу получить свои переменные env в образе Docker в ECR с помощью CodeBuild и CodePipline?

0
Tölz 21 Фев 2021 в 23:07

1 ответ

Лучший ответ

Чтобы передать переменные из проекта сборки кода, вам необходимо установить раздел env: в файле buildspec.yml, например

env:
  variables:
    Execution_ID: $Execution_ID
    Commit_ID: $Commit_ID
1
Asri Badlah 21 Фев 2021 в 22:40