AWS Пользовательское доменное имя шлюза API с неопределенным этапом - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь настроить собственное доменное имя в AWS API-шлюзе, где вызывающие абоненты должны явно указать сценическое имя после любого базового имени пути . Это то, что я делал раньше, но теперь кажется, что, поскольку AWS обновил интерфейс консоли, это больше невозможно. Конечный URL-адрес должен быть таким:

https://example.com/ {basePath} / {stage} / function

  • Я пробовал использовать консоль, но теперь стадия обязательное поле (выберите из раскрывающегося списка).
  • Я пробовал использовать AWS CLI, но stage снова является обязательным полем
    aws: error: the following arguments are required: --stage

  • Я пробовал использовать Boto3, следуя документации (https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/apigateway.html#APIGateway .Client.create_base_path_mapping ), но даже если стадия может быть указана как 'none' ( Имя стадии API, которая вы хотите использовать для этого сопоставления. Укажите '(none)', если вы хотите, чтобы вызывающие абоненты явно указывали имя стадии после любого имени базового пути. ), при этом возвращается ошибка:
    botocore.errorfactory.BadRequestException: An error occurred (BadRequestException) when calling the CreateBasePathMapping operation: Invalid stage identifier specified

Что забавно (или расстраивает), так это то, что у меня есть несколько пользовательских доменных имен, созданных с помощью старой консоли, и которые отлично работают, без какого-либо определенного этапа.

1 Ответ

1 голос
/ 29 мая 2020

По-прежнему можно указать только «API ID» и «Путь» и опустить параметр «stage». Я пробовал это как с консоли, так и с помощью интерфейса командной строки:

  • С консоли: параметр «Сцена» - это раскрывающийся список, как вы упомянули, но его можно оставить пустым (не выбрать что угодно). Если вы выбрали этап, удалите сопоставление API и добавьте его снова

  • Из интерфейса командной строки: просто попробовал это и отлично работает для меня в версии интерфейса командной строки aws-cli/1.18.69 Python/3.7.7 Darwin/18.7.0 botocore/1.16.19

$ aws apigateway create-base-path-mapping --domain-name **** --rest-api-id *** --base-path test
{
    "basePath": "test",
    "restApiId": "***"
}
...