如何将GoDaddy已有域名用作API Gateway自定义域名?是否需ACM?
自定义域名配置API Gateway:问题与解决方案
核心问题解答
1. 是否需要AWS ACM证书?
必须使用AWS ACM证书,GoDaddy的SSL证书无法直接用于API Gateway的自定义域名绑定。原因是AWS要求API Gateway的自定义域名证书必须由ACM管理(或上传至IAM,但操作繁琐)。
关于费用:ACM提供的免费证书完全适用于API Gateway场景,只要证书绑定的是AWS官方服务(如API Gateway、CloudFront),就永久免费。所谓"免费套餐后400美元"是指导出ACM证书用于非AWS服务的付费选项,我们配置API Gateway时完全不需要导出证书,因此无需支付这笔费用。
2. 配置步骤(GoDaddy域名+Route 53+API Gateway)
步骤1:申请ACM免费证书
- 登录AWS ACM控制台,选择API Gateway所在区域(若为边缘优化型API,必须选择
us-east-1区域) - 输入你的自定义域名(如
api.yourdomain.com),选择「DNS验证」方式 - 记录ACM生成的DNS验证记录(CNAME类型,含名称和值)
步骤2:完成证书DNS验证
- 登录GoDaddy域名管理后台,进入DNS设置页面
- 添加ACM提供的CNAME记录,保存后等待验证通过(通常5-10分钟)
步骤3:配置API Gateway自定义域名
- 进入AWS API Gateway控制台,选择「自定义域名」>「创建」
- 输入自定义域名(如
api.yourdomain.com),选择步骤1中申请的ACM证书 - 配置基础路径映射:将自定义域名的路径(如
/api)映射到你的API Gateway阶段(如prod) - 完成创建后,复制API Gateway生成的目标域名(格式类似
d-xxxxxx.cloudfront.net)
步骤4:通过Route 53配置域名解析
有两种方案可选:
方案A:将域名托管至Route 53(推荐)
- 进入AWS Route 53控制台,创建对应域名的托管区,获取Route 53的DNS服务器地址
- 回到GoDaddy域名管理后台,将域名的DNS服务器替换为Route 53提供的地址
- 在Route 53托管区中添加别名记录(A/AAAA类型),目标选择API Gateway的自定义域名对应的CloudFront分配
方案B:保留GoDaddy DNS托管,仅添加解析记录
- 回到GoDaddy DNS设置页面,添加CNAME记录,将
api.yourdomain.com指向步骤3中复制的API Gateway目标域名
附:Lambda函数代码
以下是你创建的POST方法Lambda函数代码:
'use strict'; const dbjs = require('./database/index'); module.exports.signup = async (event) => { let user = JSON.parse(event.body); const db = await dbjs.get(); const saveUser = await db.collection('user').insertOne(user) return { statusCode: 200, body: JSON.stringify(saveUser) }; };
术语翻译
serverless deploy → 无服务器部署
内容的提问来源于stack exchange,提问作者Felix Christo
相关产品推荐
相关产品推荐

