You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Serverless Lambda创建子域名?部署遇AWS错误求助

排查Serverless Domain Manager配置Lambda自定义域名的AWS错误

我来帮你梳理下这个问题的排查思路,先把你的配置和操作步骤明确下来,再逐一分析可能触发AWS错误的原因:

你的当前配置与操作

Serverless.yml配置片段

plugins:
  - serverless-domain-manager
custom:
  customDomain:
    domainName: transcoder.iflix-dev.com
    basePath: ''
    stage: ${self:provider.stage}
    createRoute53Record: true

执行的操作命令

  • 第一步:sls create_domain -s development -v
  • 第二步:sls deploy -s development -v

常见AWS错误排查方向

下面是这类场景下最容易遇到的问题,你可以逐一核对:

1. 域名与证书配置问题

  • 首先确认transcoder.iflix-dev.com已经在你的AWS Route 53托管区内,或者你已经完成了ACM证书的DNS验证(如果使用ACM证书的话)。
  • 划重点:如果是用CloudFront(serverless-domain-manager默认会用),你的ACM证书必须部署在us-east-1(弗吉尼亚北部)区域,哪怕你的Lambda在其他区域,这是CloudFront的硬性要求。

2. IAM权限不足

serverless-domain-manager需要足够的权限来操作AWS资源,比如创建CloudFront分配、修改Route53记录、查询ACM证书等。检查你的部署角色是否包含以下关键权限:

  • ACM相关:acm:ListCertificates、acm:DescribeCertificate
  • CloudFront相关:cloudfront:CreateDistribution、cloudfront:GetDistribution、cloudfront:UpdateDistribution
  • Route53相关:route53:ListHostedZones、route53:ChangeResourceRecordSets
  • Lambda相关:lambda:GetFunction、lambda:AddPermission

3. 域名资源冲突

检查这个自定义域名是否已经被其他CloudFront分配、API Gateway自定义域名占用了——AWS不允许同一个域名绑定到多个不同的资源上。如果之前执行create_domain失败过,可能残留了未完成的资源,建议去AWS控制台手动清理相关的CloudFront分配或Route53记录后再重试。

4. 阶段(Stage)配置不匹配

确保你的provider.stage确实设置为development,或者可以先把stage字段直接硬编码为development测试下,避免变量解析错误导致的配置不一致。

5. 插件版本兼容性

老版本的serverless-domain-manager可能和最新的Serverless Framework或AWS API存在兼容性问题,建议更新到最新稳定版:

npm update serverless-domain-manager --save-dev

实用调试技巧

你已经用了-v(verbose模式)来执行命令,这很好!仔细查看输出里的具体错误信息,AWS通常会给出明确的错误代码(比如AccessDenied、InvalidCertificate),根据这些错误代码去查AWS官方文档,能更快定位问题根源。

内容的提问来源于stack exchange,提问作者Chandan Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:01:45