#amazon-web-services #aws-lambda #aws-codebuild
#amazon-веб-сервисы #aws-lambda #aws-codebuild
Вопрос:
У меня есть проект AWS Codebuild, подключенный к моей учетной записи Github. В моем github у меня есть отдельные ветки для каждой среды.
В настоящее время у меня всего 4 среды (и, соответственно, 4 ветки github): dev, qa, customer1-poc, customer2-prod.
Теперь я использую множество переменных среды в своем проекте, и изначально я настраивал эти переменные среды в проекте Codebuild в разделе Environment> Переменные среды. Таким образом, в идеале для каждого env существует 4 переменных env, которые различаются по имени env.
Например, если существует переменная среды с именем apiKey, она сохраняется в codebuild 4 раза по имени
apiKey_dev
apiKey_qa
apiKey_customer1poc
apiKey_customer2prod
Вы поняли идею. То же самое относится и к другим переменным среды env, которые должны отличаться во всех средах.
Эти переменные env считываются из файла buildspec и передаются в бессерверный файл.yml.
Теперь проблема в том, что я продолжаю создавать новые среды (например, больше poc, prod envs) Мне нужно продолжать копировать набор переменных env для каждого env, и это становится утомительным.
Есть ли какой-нибудь способ сохранить эти переменные среды вне проекта Codebuild, которые затем могут быть переданы лямбда-функции после успешной сборки?
Комментарии:
1. Можете ли вы сохранить все это в SSM PAramter store? У вас может быть один параметр с несколькими значениями в формате JSON.
Ответ №1:
CodeBuild имеет встроенную интеграцию с хранилищем параметров:
В хранилище параметров вы можете сохранить свою переменную в виде json с именем, подобным /config/prod «:
… затем извлеките его в CodeBuild и проанализируйте с помощью ‘jq’ 2 . Таким образом, все переменные, зависящие от среды, находятся в одном месте. Если вы пойдете этим путем, обязательно зашифруйте переменную Param Store ключом KMS, если она содержит секреты. Также проверьте AWS Secrets Manager.