#amazon-web-services #amazon-s3 #aws-api-gateway #aws-cdk
Вопрос:
У меня есть стек aws cdk, который я пишу на машинописном языке. Он состоит из приложения react, хранящегося в корзине s3 (через развертывание корзины s3). У меня также есть шлюз api, на котором работает api websocket. Теперь мне нужно объединить их вместе, сообщив приложению react URL-адрес шлюза api, в идеале на этапе развертывания.
Я попытался записать токен в файл перед развертыванием, но строка все еще маркирована, поэтому я заканчиваю wss://${Token[TOKEN.243]}...
тем , что пишу слишком рано. Я попытался записать файл через cdk deploy -O
, но в этот момент уже слишком поздно отправлять его вместе с развертыванием.
Как я могу сообщить своему приложению react URL-адрес веб-api?
Комментарии:
1. Почему у вас нет фиксированного входа в маршрут 53, чтобы вашему приложению react не нужно было меняться каждый раз при изменении бэкенда? Затем вы можете просто обновить запись в маршруте 53, чтобы она указывала на вывод конечной точки шлюза api
2. Я все еще довольно новичок в ландшафте AWS — не знал об этом. Я прочту его, судя по звукам, это то, что нам нужно. Спасибо.
Ответ №1:
Когда я выполню этот шаблон, я буду использовать CloudFront для прокси-сервера /api/* к своему шлюзу API, а все остальное-к URL-адресу веб-сайта корзины S3. Тогда код реакции просто должен делать запросы по /api
Комментарии:
1. Я должен был добавить деталь, что это api websocket. Я попробовал это сделать, и, похоже, у меня возникли проблемы с задержкой и повторением сообщений websocket.
Ответ №2:
Вы можете разделить свой стек на 2 части.
- Стек Api
- Стек РеактАпп
Api Stack
Сначала разверните с -O
возможностью записи URL-адреса api в какой-либо файл json в каталоге, который будет развернут в s3.
Теперь у вас есть json с URL-адресом api в файле json, и вы можете развернуть ReactApp Stack
его прямо сейчас.
Примечание: В вашем приложении react вы можете прочитать URL-адрес из файла, который будет сгенерирован cdk deploy -O <filename>.json
.