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

AWS SAM部署的API配置自定义域名后无法访问问题求助

问题排查与解决方案

核心问题说明

你当前的SAM模板中自定义域名配置缺少关键参数,同时手动配置的Route53记录不符合要求,是访问失败的核心原因。

具体修复步骤

    1. 补全SAM模板Api配置段
      你需要添加Stage映射、BasePath配置、自动Route53记录配置,同时确认API部署阶段名称和你原有配置匹配。修改后的Globals.Api段如下:
    Api:
      EndpointConfiguration: REGIONAL
      StageName: Stage # 与你原有部署的阶段名保持一致,对应原访问路径的/Stage前缀
      Domain:
        DomainName: api.mydomain.com
        CertificateArn: arn:aws:acm:us-east-1:XXXXXXXX:certificate/bbbbbb-bbbb-bbbb-bbbb-bbbbbbbb
        BasePath: '' # 置空表示根路径直接映射,无需额外路径前缀即可访问API
        Stage: !Ref ServerlessRestApi.Stage # 绑定到当前SAM创建的API部署阶段
        Route53:
          HostedZoneName: mydomain.com. # 替换为你的Route53托管根域名,末尾带.
          # 也可以直接指定托管区ID,格式为HostedZoneId: Z0XXXXXXXXXXXXXXX
    
    1. 删除手动创建的Route53 CNAME记录
      你之前手动添加的CNAME指向的是默认API网关域名,不是自定义域名分配的REGIONAL入口,会导致路由错误,SAM会自动生成正确的别名A记录,无需手动配置。
    1. 确认ACM证书状态
      登录ACM控制台确认api.mydomain.com对应的证书状态为已签发,且证书所在区域和API部署区域一致(你当前是us-east-1,符合REGIONAL端点要求)。
    1. 重新部署SAM栈并等待生效
      执行sam deploy更新栈,部署完成后需要等待5-10分钟让API网关自定义域名配置全局生效。

修改后完整模板参考

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: AWS Serverless Jersey API - com.mydomain::mydomain
Globals:
  Function:
    Environment:
      Variables:
        •••
  Api:
    EndpointConfiguration: REGIONAL
    StageName: Stage
    Domain:
      DomainName: api.mydomain.com
      CertificateArn: arn:aws:acm:us-east-1:XXXXXXXX:certificate/bbbbbb-bbbb-bbbb-bbbb-bbbbbbbb
      BasePath: ''
      Stage: !Ref ServerlessRestApi.Stage
      Route53:
        HostedZoneName: mydomain.com.

Resources:
  MyServiceFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: com.mydomain.app.StreamLambdaHandler::handleRequest
      Runtime: java8
      CodeUri: .
      MemorySize: 512
      Policies: AWSLambdaBasicExecutionRole
      Timeout: 30
      Events:
        ProxyResource:
          Type: Api
          Properties:
            Path: /{proxy+}
            Method: any
      Policies:
        •••

Outputs:
  MyServiceApi:
    Description: 默认API网关访问地址
    Value: !Sub 'https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Stage/endpoint'
    Export:
      Name: MyServiceApi
  CustomDomainApi:
    Description: 自定义域名访问地址
    Value: !Sub 'https://${Api.DomainName}/endpoint'

异常排查

如果完成上述操作后仍然无法访问,登录API网关控制台,进入「自定义域名」页面,找到api.mydomain.com,确认:

  • 「API映射」配置中,对应API、阶段、路径映射正确
  • 复制「REGIONAL域名」,本地执行nslookup 你的REGIONAL域名确认解析正常,再执行nslookup api.mydomain.com确认返回的IP和REGIONAL域名一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:06:01