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

如何为Serverless Framework AWS部署配置静态URL?

如何保持Serverless部署AWS API网关的静态主机前缀?

要解决每次部署API网关前缀变化的问题,有两种可靠方案:

方案一:使用自定义域名(推荐用于生产环境)

自定义域名是最彻底的解决方式,不仅能固定访问地址,还能提升用户体验。

  • 先在AWS控制台的API网关服务中创建自定义域名,完成域名解析配置(可通过Route53或第三方DNS服务商),并将域名映射到你的API网关阶段(stage)。
  • 在项目的serverless.yml中添加自定义域名配置,需要借助serverless-domain-manager插件:
    1. 安装插件:
    npm install serverless-domain-manager --save-dev
    
    1. 在serverless.yml中添加配置:
    custom:
      customDomain:
        domainName: "api.yourdomain.com" # 替换成你的自定义域名
        basePath: "" # 可选,设置API的基础路径
        stage: "${self:provider.stage}"
        createRoute53Record: true # 若使用AWS Route53管理域名,可开启自动创建解析记录
    
    plugins:
      - serverless-domain-manager
    
    部署后,API将通过你设置的自定义域名访问,地址永久固定。

方案二:复用已有的API网关

如果只想保留AWS默认的API网关前缀,可通过复用已创建的API网关实现:

  • 先完成一次初始部署,从AWS控制台的API网关详情页,或部署后的终端输出中,获取两个关键值:restApiId(API网关ID)和restApiRootResourceId(根资源ID)。
  • 在serverless.yml的provider段添加这两个参数:
    provider:
      name: aws
      runtime: nodejs18.x # 替换成你的运行时版本
      stage: dev
      region: us-east-1 # 替换成你的部署区域
      apiGateway:
        restApiId: "xxxxxxxxx" # 替换为你的API网关ID
        restApiRootResourceId: "yyyyyyyyy" # 替换为你的根资源ID
    
    后续执行sls deploy时,Serverless会复用这个已有的API网关,前缀不会再变化。

注意事项

  • 复用API网关时,请勿删除该网关,否则后续部署会失败。
  • 自定义域名方案更适合长期维护的生产项目,复用网关方案适合快速测试或临时场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:24:18