我在 Terraform 中使用了 CloudFormation 堆栈,因为当时不支持 WebSocket API 网关。
最近在尝试应用更改时,我遇到了这个错误:
REST API 和 HTTP API 在同一个域名上的混合只能通过 API Gateway 的 V2 DomainName 接口来实现。目前,WebSocket API 只能通过其他 WebSocket API 附加到域名。这也必须通过 API Gateway 的 V2 域名接口进行。
我发现使用资源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 键。
有没有合适的方法来解决这个问题?我在文档中找不到任何内容。