如何在APIGateway中使用自己的域名


Certificate Manager中的设置

注意,Region一定要选择us-east-1 (N. Virginia)

Domain name中输入:api.lcoding.club,注意这里支持通配符,比如:”*.lcoding.club”也能支持”api.lcoding.club”。

然后需要在自己注册域名的地方进行验证(创建一条CNAME记录)

等到验证通过后进入下一步。

serverless项目中的设置

首先安装对应的包

bash
yarn add serverless-domain-manager

serverless.yml配置文件

然后在serverless.yml中添加这个插件:

yaml
plugins:
  - serverless-domain-manager

然后添加:

yaml
custom:
  customDomain:
    domainName: api.lcoding.club
    basePath: ''
    stage: ${self:provider.stage}
    createRoute53Record: true (如果不在Route 53,而是在别处管理域名就要输入false)

在Domain Manager中创建domain

bash
sls create_domain

如果前面的certificate还没有创建好就运行这个命令,就会出现下面的错误提示:

bash
Error: Unable to create domain 'api.lcoding.club':
Could not find an in-date certificate for 'api.lcoding.club'.

这个过程需要大约40分钟左右,等待整个过程结束后,可以重新部署API:

bash
sls deploy

在部署结束后,会创建相应的:

  • Domain name: api.lcoding.club
  • Target domain: xxxxxxxxxxxxxxxx.cloudfront.net
  • Hosted Zone Id: XXXXXXXXXX (只有在Route 53中创建记录时才会创建Zone Id)

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