serverless教程:如何为自己的API设定自定义域名


以下过程可以都在AWS提供的服务中,比如Route 53中完成,也可以选择第三方的域名服务商。我这里在Google Domains中管理域名,但使用serverless将API部署到AWS。

指定AWS域名服务器

如果使用第三方域名服务商,就不需要这一步。

在AWS Route53中,创建一个public hosted zone。

然后复制对应的NS,其格式类似于这样:

bash
ns-xxx.awsdns-xx.net.
ns0xxxx.awsdns-xx.co.uk.
ns-xxxx.awsdns-xx.org.
ns-xxx.awsdns-xx.com.

进入自己的域名服务器提供商地址,比如:namesilo,使用上面的NS来设定自定义域名服务器。

创建certificate

进入AWS Certificate Manager,

  • 在添加域名时选择:api.lcoding.club
  • 选择DNS validation。按照要求在Google Domains中创建一个CNAME

很快,AWS Certificate Manager就能检测到这个变化。通过后会有如下提示:

image
image

更新serverless项目中的配置

首先安装依赖库:

bash
npm install --save-dev serverless-domain-manager

更新serverless.yml:

yaml
plugins:
  - serverless-domain-manager

还有:

yaml
custom:
  customDomain:
    domainName: api.lcoding.club
    basePath: ''
    stage: ${self:provider.stage}
    createRoute53Record: false    

运行:

bash
sls create_domain

等域名记录更新完毕后,运行:

bash
sls deploy

新发布的API就能够通过api.lcoding.club访问了。

参考资料

https://www.serverless.com/blog/serverless-api-gateway-domain/
https://csdcorp.com/blog/coding/custom-domains-for-aws-api-gateway-without-route-53/


文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !