Я использовал стек 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 уже существует для этого доменного имени.
Есть ли правильный способ решить эту проблему? В документации ничего не нашел.