CloudFormation: замените BasePathMapping на ApiMapping - PullRequest
0 голосов
/ 19 июня 2020

Я использовал стек CloudFormation внутри Terraform, так как шлюз WebSocket API в то время не поддерживался.

Недавно при попытке применить изменения я получил следующую ошибку:

Смешивание REST API и HTTP API в одном доменном имени может быть выполнено только через интерфейс DomainName V2 API Gateway. В настоящее время API-интерфейсы WebSocket можно прикрепить к доменному имени только с помощью других API-интерфейсов WebSocket. Это также должно происходить через интерфейс API Gateway V2 DomainName.

Я обнаружил, что использование ресурса AWS::ApiGatewayV2::ApiMapping вместо AWS::ApiGateway::BasePathMapping решает эту проблему, поэтому я заменил это:

  PathMapping:
    Type: AWS::ApiGateway::BasePathMapping
    Properties:
      BasePath: '(none)'
      DomainName: !Ref CustomDomainName
      RestApiId: !Ref WebSocketApi
      Stage: !Ref Stage

с этим:

  PathMappingV2:
    Type: AWS::ApiGatewayV2::ApiMapping
    Properties:
      ApiId: !Ref WebSocketApi
      DomainName: !Ref CustomDomainName
      Stage: !Ref Stage

К сожалению, я начал получать эту ошибку:

ключ ApiMapping уже существует для этого доменного имени.

Есть ли правильный способ решить эту проблему? В документации ничего не нашел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...