Любой способ ввести значения системного менеджера в приложение React с помощью CDK / AWS

#reactjs #amazon-cloudformation #aws-cdk #aws-parameter-store #aws-systems-manager

#reactjs #aws-cloudformation #aws-cdk #aws-parameter-store #aws-ssm

Вопрос:

Я работаю над интересной задачей и пока не могу ее решить.

Конфигурация:

  1. Конвейер кода AWS для серверной части, который хранит значение в SSM (@aws-cdk / aws-ssm)
  2. AWS code pipeline для интерфейса, который создает конвейер, который создает проект для приложения React
  3. Репозиторий git приложения React с buildspec.yml, который используется конвейером из # 2 и развернут на S3

Вопрос: Есть ли хороший способ прочитать значение, хранящееся в # 1, и ввести его в приложение React?

Я могу легко прочитать это в # 2, но этот проект предназначен только для создания конвейера. Итак, я думаю, что для обновления приложения React на этапе сборки или развертывания требуется какой-то специальный этап в конвейере для интерфейса, чтобы обновить приложение React.

Есть блестящие идеи? 🙂 Пока у меня их нет.

Спасибо!

buildspec.yml код:

 version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 12
    commands:
      - yarn install
  build:
    commands:
      - yarn build

artifacts:
  base-directory: ./build
  files:
    - '**/*'

cache:
  paths:
    - './node_modules/**/*'


  

Комментарии:

1. Как вы запускаете свое приложение? Выполняется ли он на S3 или на контейнере / каком-либо другом вычислительном экземпляре?

Ответ №1:

Хорошо, мне удалось ввести значение системного менеджера в приложение React с помощью CDK. Я не нашел способа сделать это с начальной настройкой (3 репозитория). Мне пришлось объединить # 2 с # 3 (таким образом, интерфейсное приложение react должно быть с cdk вместе).

При этой настройке вы можете прочитать значение системного менеджера в стеке cdk и добавить его в react с помощью dynamic buildspec на этапе сборки (buildspec из кода).

Ответ №2:

Я думаю, что мой пример может быть полезен для вас. У меня есть контейнеры ECS, образы docker создаются сервером Jenkins и загружаются в ECR. Я использую хранилище параметров SSM для хранения переменных среды. Что мне делать?

Мои контейнеры ECS были развернуты с использованием шаблонов cloudformation, когда Дженкинс закончит загружать новый образ docker в ECR, затем запустите обновление моего Cloudformation, в моем шаблоне cloudformation у меня есть макросы (функции python, которые считывают переменные среды из SSM, хранят параметры и помещают их в шаблон cloudformation), поэтому задачей ECS является обновление с использованием текущей версии моего хранилища параметров и последней компиляции образа docker. Также вы можете прочитать из Jenkins значения хранилища параметров, но я предпочитаю менее возможные привилегии в моем Jenkins. Также таким образом cloudformation может быть обновлена (для изменения компонентов инфраструктуры и т.д.) И в ней уже реализован макрос.