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

如何在本地通过HTTPS运行AWS SAM Start API或SAM调试器?

解决AWS SAM Debugger访问URL改为HTTPS://my.localhost:3000的方法

不用直接修改SAM默认Docker文件,有几种更简便的方式,按优先级推荐:

1. 用SAM CLI启动时直接指定SSL参数(最快捷)

SAM CLI本身支持通过参数启用HTTPS,步骤如下:

  • 先生成自签名SSL证书(如果没有的话):
    openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=my.localhost"
    
  • 启动SAM本地服务时,指定证书、密钥、主机和端口:
    sam local start-api --ssl-cert cert.pem --ssl-key key.pem --host my.localhost --port 3000
    
    如果是调试Lambda函数用sam local start-lambda,同样可以添加这些参数。

2. 持久化配置到samconfig.toml

如果不想每次启动都输入一堆参数,可以把配置写到项目根目录的samconfig.toml里:

[default.local.start-api.parameters]
ssl_cert = "cert.pem"
ssl_key = "key.pem"
host = "my.localhost"
port = 3000

之后直接运行sam local start-api就会自动套用这些配置。

3. 自定义Docker镜像(适合深度定制场景)

如果必须修改Docker文件,可按以下步骤操作:

  • 在项目根目录创建Dockerfile,基于对应运行时的SAM基础镜像(示例用Python3.11,可根据你的运行时调整):
    FROM public.ecr.aws/sam/build-python3.11
    # 复制本地生成的证书和密钥到容器内
    COPY cert.pem /opt/cert.pem
    COPY key.pem /opt/key.pem
    # 修改启动命令,启用HTTPS并指定主机端口
    CMD ["sam", "local", "start-api", "--ssl-cert", "/opt/cert.pem", "--ssl-key", "/opt/key.pem", "--host", "my.localhost", "--port", "3000"]
    
  • 构建并运行自定义镜像:
    docker build -t sam-custom-https .
    docker run -p 3000:3000 sam-custom-https
    

注意:自签名证书在浏览器中会提示不安全,可手动添加信任;如果使用真实SSL证书,替换cert.pem和key.pem即可。

内容的提问来源于stack exchange,提问作者joshua andres blanco jerez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:09:24