#reactjs #amazon-cloudformation #aws-cdk #aws-parameter-store #aws-systems-manager
#reactjs #aws-cloudformation #aws-cdk #aws-parameter-store #aws-ssm
Вопрос:
Я работаю над интересной задачей и пока не могу ее решить.
Конфигурация:
- Конвейер кода AWS для серверной части, который хранит значение в SSM (@aws-cdk / aws-ssm)
- AWS code pipeline для интерфейса, который создает конвейер, который создает проект для приложения React
- Репозиторий 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 может быть обновлена (для изменения компонентов инфраструктуры и т.д.) И в ней уже реализован макрос.