#amazon-web-services #aws-api-gateway
#amazon-web-services #aws-api-gateway
Вопрос:
У меня есть шлюз API с пользовательским доменным именем ( foo.mycompany.com
).
foo.mycompany.com
относится к производственной среде, т. Е. Трафик поступает от клиентов сервиса почти каждую минуту.
Как я могу перейти foo.mycompany.com
на другую учетную запись AWS, не вызывая простоев службы?
Когда я создаю foo.mycompany.com
пользовательское доменное имя в консоли AWS новой учетной записи AWS, я получил The domain name you provided already exists.
сообщение об ошибке.
Комментарии:
1. если возможно, используйте конечную точку шлюза API, которая обычно предоставляется AWS, например XXXXXX.execute-api.us-east-1.amazonaws.com/stage в вашем коде, и тогда у вас есть шанс. Время простоя будет. Таким образом вы сможете избежать простоев.
2. В качестве частичного обходного пути, чтобы сохранить доменное имя в старой учетной записи при перемещении других ресурсов в новую, вы можете переназначить пользовательский домен на новый «прокси» API в старой учетной записи, который использует HTTP-интеграцию для маршрутизации всех запросов к API в новой учетной записи (не используя прокси-сервер).пользовательский домен). Однако я все еще тестирую это прямо сейчас, и могут возникнуть увеличенные задержки и другие проблемы.
Ответ №1:
К сожалению, на данный момент это невозможно. Я запускаю пару API GW для высоконагруженных клиентов, и у всех была одна и та же проблема при переходе на новые учетные записи AWS. Мы даже обратились к специалистам AWS. Ответ был :
- Удалить пользовательское доменное имя в СТАРОЙ учетной записи
- Добавьте пользовательский домен в новую учетную запись
Это, конечно, означает время простоя. Если кто-то еще найдет для них возможность сине-зеленой миграции — я тоже хотел бы знать.
Ответ №2:
Вы можете использовать пошаговый регион для создания того же пользовательского доменного имени и переноса APIG сначала туда, а затем обратно в исходный регион в другой учетной записи. Например, region1-account1 -> region2-account1 -> region1-account2 Полное решение смотрите здесь: https://medium.com/@spei/migrating-an-amazon-api-gateway-with-a-custom-domain-with-no-downtime-f33942beef1e
Ответ №3:
Это отлично работает, если вы переезжаете в другой регион. Поток, который я использовал, был
- переключить домен api на edge
- создайте инфраструктуру в другом регионе
- переключите DNS на другой регион — там уже создан пользовательский домен.
К сожалению, пользовательский домен API должен быть уникальным в регионе.
Я нахожусь в такой же ситуации, как и вы, и я пытаюсь найти решение.
обновление 2023:
AWS теперь поддерживает подстановочные домены api: https://aws.amazon.com/about-aws/whats-new/2019/10/api-gateway-supports-wildcard-custom-domain-names/
Вам нужно обратиться в службу поддержки AWS для исключения (и в моем случае это заняло 3 недели!) но в конечном итоге вы создадите *.mycompany.com
новую учетную запись, и она будет обрабатывать трафик. При переносе вы можете отключить api gateway в старой учетной записи и просто создать foo.mycompany.com
в новой.
Комментарии:
1. Может быть, это работает? medium.com/@spei /…