如何通过CloudFormation为API Gateway V1边缘优化API创建API映射
解决方案
你需要使用API Gateway V1专属的路径映射资源AWS::ApiGateway::BasePathMapping即可实现边缘优化REST API的自定义域名映射,该资源完全兼容边缘优化类型的API Gateway实例,无需使用V2的ApiMapping资源。
配置示例
以下是完整的CFN模板参考片段:
# 已有的边缘优化自定义域名资源(你已完成配置的部分) MyApiCustomDomain: Type: AWS::ApiGateway::DomainName Properties: DomainName: api.yourdomain.com CertificateArn: arn:aws:acm:us-east-1:123456789012:certificate/xxxx-xxxx-xxxx-xxxx EndpointConfiguration: Types: - EDGE # 边缘优化类型标记 # 新增的API路径映射资源 MyApiBasePathMapping: Type: AWS::ApiGateway::BasePathMapping DependsOn: MyApiDeployment # 显式声明依赖,确保API部署完成后再创建映射 Properties: DomainName: !Ref MyApiCustomDomain RestApiId: !Ref MyRestApi # 替换为你的REST API资源逻辑ID Stage: !Ref MyApiStage # 替换为你的API阶段资源逻辑ID,也可直接填写阶段名字符串如prod BasePath: '' # 设为空字符串代表映射到域名根路径,需要映射子路径可填写对应值如api
关键参数说明
DomainName:直接引用你已经创建的自定义域名资源即可RestApiId:你通过CFN创建的边缘优化REST API的资源IDStage:API需要映射的部署阶段名BasePath:可选参数,定义域名下的路径映射规则,空值代表根路径映射
注意事项
- 边缘优化的API对应的SSL证书必须存放在us-east-1区域的ACM中,和你之前配置自定义域名的要求一致
- 可通过
DependsOn字段显式指定映射资源依赖API部署、自定义域名资源,避免部署时因为依赖顺序错误抛出异常 - 映射配置完成后还需要将自定义域名的DNS解析指向API Gateway自定义域名分配的CloudFront边缘地址,如果你使用Route53作为DNS服务商,也可以将对应的RecordSet配置加入CFN模板统一管理
内容的提问来源于stack exchange,提问作者EllisTheEllice
相关产品推荐
相关产品推荐

