Как избежать простоя при обновлении переменной этапа при развертывании шлюза API? - PullRequest
0 голосов
/ 28 января 2019

У меня есть API example_api, который в настоящее время развернут на этапе DEV в шлюзе API AWS.

Я хочу обновить одну из ее переменных этапа и убедиться, что изменение развернуто.API предоставляется CloudFormation, а переменные рабочей области сопоставляются с параметрами шаблона.

Я обновляю стек с помощью boto3 и CloudFormation (используя флаг UsePreviousTemplate) и предоставляю новое значение.

Затемиспользуйте boto3 для вызова create_deployment для example_api в DEV (чтобы обновить уже развернутый example_api в DEV).

В этот момент мой API становится недоступным в течение 15-20 секунд .Я продолжаю получать ответы {"message": "Missing Authentication Token"}.

Я предполагаю, что здесь что-то не так.Мне избежать такого простоя и убедиться, что новый API доступен как можно скорее?

Примечание: Доступ к моему API осуществляется через пользовательское доменное имя в шлюзе API.Базовый путь отображается на этапе DEV.

Спасибо

1 Ответ

0 голосов
/ 11 февраля 2019

Проблема заключалась в том, что шаблон формирования облака создал стадию с использованием свойства StageDescription ресурса Deployment, и я неправильно понял взаимосвязь развертывания / стадии.

Ресурсный этап DEV изначально был связан с Deployment Named000.

Мой первый вызов update_stack использовался для обновления переменной этапа, а также для повторного связывания этапа DEV с первоначальным развертыванием (Named000).Потеря всех изменений, примененных с тех пор (любые новые маршруты).

Мне удалось обновить переменные этапа и правильно развернуть без простоя, создав ресурс развертывания и добавив к его имени метку времени, чтобы убедиться, что создан новый ресурс.каждый раз, когда стек генерируется с помощью Troposphere.Тогда обновление стека новыми переменными этапа будет связывать этап с последним развертыванием и исключать простои.

...