sam 本地 start-api - AWS Serverless Application Model
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

sam 本地 start-api

允许您在本地运行无服务器应用程序以进行快速开发和测试。当您在包含无服务器函数和 AWS SAM 模板的目录中运行此命令时,它将创建一个本地 HTTP 服务器来托管您的所有 函数。

在访问它(通过浏览器、CLI 等)时,它在本地启动 Docker 容器以调用该函数。它读取 CodeUri 资源的 AWS::Serverless::Function 属性,以查找包含 Lambda 函数代码的文件系统中的路径。对于 Node.js 和 Python 等解释性语言,这可能是项目的根目录,也可能是存储编译构件或 Java 存档 (JAR) 文件的构建目录。

如果您使用解释性语言,每次调用时 Docker 容器中会立即进行本地更改。对于需要复杂包装支持的更编译的语言或项目,建议您运行自己的构建解决方案,并将 AWS SAM 指向包含构建构件的目录或文件。

要查看使用此命令的端到端示例,请参阅教程:部署 Hello World 应用程序。命令是 sam local start-api 的一部分。步骤 4:(可选) 在本地测试应用程序

AWS SAM CLI 支持 Lambda 扩展(预览版)

要在本地测试使用 Lambda 扩展的无服务器应用程序,请将 ENABLE_LAMBDA_EXTENSIONS_PREVIEW 环境变量设置为“1”。例如:

ENABLE_LAMBDA_EXTENSIONS_PREVIEW=1 sam local start-api

有关 Lambda 扩展的更多信息,请参阅 中的AWS Lambda使用 扩展。AWS Lambda Developer Guide

用量:

sam local start-api [OPTIONS]

选项:

选项 描述
--host TEXT 要绑定到的本地主机名或 IP 地址 (默认值:'127.0.0.1')。
-p, --port INTEGER 要侦听的本地端口号 (默认值:“3000”)。
-s, --static-dir TEXT 此目录中的任何静态资产(例如,CSS/JavaScript/HTML)文件都会显示在 / 中。
-t, --template PATH 模板文件 [default: template.[yaml|yml]]。AWS SAM
-n, --env-vars PATH 包含 Lambda 函数环境变量值的 JSON 文件。
--parameter-overrides 可选。包含编码为键值对的 AWS CloudFormation 参数的字符串覆盖。使用与 AWS CLI 相同的格式 — 例如,'ParameterKey=KeyPairName, ParameterValue=MyKey ParameterKey=InstanceType,ParameterValue=t1.micro'。
-d, --debug-port TEXT 如果指定,则以调试模式启动 Lambda 函数容器并在本地主机上公开此端口。
--debugger-path TEXT 将挂载到 Lambda 容器中的调试程序的主机路径。
--debug-args TEXT 要传递到调试程序的其他参数。
--warm-containers [EAGER | LAZY]

可选。指定 AWS SAM CLI 如何管理每个函数的容器。

提供两个选项:

   EAGER:所有函数的容器都在启动时加载,并在调用之间保留。

   LAZY:只有在首次调用每个函数时,才会加载容器。这些容器将针对其他调用保留。

--debug-function

可选。指定在指定 Lambda 时要将调试选项应用到的 --warm-containers 函数。此参数适用于 --debug-port--debugger-path--debug-args

-v, --docker-volume-basedir TEXT 文件所在基目录的位置。AWS SAM如果 Docker 正在远程计算机上运行,您必须挂载 Docker 计算机上 AWS SAM 文件所在的路径,并修改此值以匹配远程计算机。
--docker-network TEXT Docker 容器应连接到的现有 Docker 网络的名称或 ID 以及默认桥接网络。Lambda如果未指定此项,则 Lambda 容器仅连接到默认桥接 Docker 网络。
--container-env-vars 可选。在本地调试时将环境变量传递到映像容器。
-l, --log-file TEXT 要将运行时日志发送到的日志文件。
--layer-cache-basedir DIRECTORY 指定您的模板使用的层下载到的位置依据。
--skip-pull-image 指定 CLI 是否应跳过为 Lambda 运行时下拉最新的 Docker 映像。
--force-image-build 指定 CLI 是否应重新生成用于通过层调用函数的图像。
--profile TEXT 获取 AWS 凭证的凭证文件中的特定配置文件。
--region TEXT 要部署到的 AWS 区域。例如,us-east-1。
--config-file PATH 包含要使用的默认参数值的配置文件的路径和文件名。默认值为项目根目录中的“samconfig.toml”。有关配置文件的详细信息,请参阅 AWS SAM CLI 配置文件
--config-env TEXT 环境名称,用于指定配置文件中要使用的默认参数值。默认值为“default”。有关配置文件的详细信息,请参阅 AWS SAM CLI 配置文件
--debug 打开调试日志记录以输出由 AWS SAM CLI 生成的调试消息和显示时间戳。
--help 显示此消息并退出。