如何为AWS Amplify创建的REST API添加自定义域名
AWS Amplify REST API 自定义域名配置说明
AWS Amplify 没有提供原生配置项,直接在Amplify的项目配置流程里给创建的REST API绑定自定义域名,查阅官方文档找不到对应说明属于正常情况。
目前给Amplify创建的REST API添加自定义域名有两种可落地的实现方案:
- 方案1:直接在底层API Gateway配置自定义域名
Amplify创建的REST API底层对应Amazon API Gateway + Lambda的资源组合,你不需要将API资源移出Amplify的生命周期管理,直接操作API Gateway即可:- 登录API Gateway控制台,找到Amplify自动生成的对应API实例,实例名称通常带有你的Amplify项目名、环境名标识
- 进入API的自定义域名配置页,录入需要绑定的域名,配置对应API部署阶段的路径映射,关联和API部署在同一区域的ACM公有证书
- 按照控制台给出的目标地址,在你的域名解析服务商处添加对应的CNAME记录,等待解析生效、证书校验完成即可正常访问
注意:Amplify后续执行amplify push更新API配置时,只会修改API的路由、集成逻辑、授权规则,不会覆盖你在API Gateway侧手动配置的自定义域名规则。
- 方案2:通过Amplify托管重写规则实现同域转发
如果你需要REST API和Amplify托管的前端应用共用同根域名,不需要单独给API配置证书,可以直接用Amplify的重写能力实现:- 先在Amplify控制台完成前端应用的自定义域名绑定,确保域名可以正常访问前端静态资源
- 进入Amplify应用的「重写和重定向」配置页面,添加如下重写规则:
- 源路径:
/api/<*> - 目标地址:
https://<你的API默认执行地址>/<stage>/<*>(API默认执行地址可以在Amplify的API配置详情页找到,格式通常为https://<api标识>.execute-api.<区域>.amazonaws.com) - 响应状态:选择
200 (Rewrite)
配置完成后,访问你的域名/api/xxx的请求会自动转发到对应的REST API,全程复用Amplify托管域名的SSL证书,不需要额外做证书配置。
- 源路径:
补充:截至当前最新版本的Amplify CLI,
amplify add api创建REST API的流程中没有暴露自定义域名相关的配置参数,不要在CLI配置流程中查找相关选项。
内容的提问来源于stack exchange,提问作者Huong
相关产品推荐
相关产品推荐

