sam local start-api - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

sam local start-api

本页提供 Amazon Serverless Application Model 命令行界面 (Amazon SAMCLI) sam local start-api 子命令的参考信息。

sam local start-api子命令在本地运行您的 Amazon Lambda 函数,以便通过本地 HTTP 服务器主机进行测试。

使用量

$ sam local start-api <options>

Options

--add-host LIST

将主机名传递到 IP 地址映射到 Docker 容器的主机文件。此参数可以多次传递。

例如:--add-host example.com:127.0.0.1

--beta-features | --no-beta-features

允许或拒绝测试版功能。

--config-env TEXT

在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件

--config-file PATH

包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为“samconfig.toml”。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件

--container-env-vars

可选。在本地调试时,将环境变量传递到映像容器。

--container-host TEXT

本地模拟的 Lambda 容器的主机。默认值为 localhost。如果要在 macOS 上的 Docker 容器中运行 Amazon SAM CLI,可以指定 host.docker.internal。如果要在与之不同的主机上运行容器 Amazon SAMCLI,则可以指定远程主机的 IP 地址。

--container-host-interface TEXT

应与容器端口绑定的主机网络接口的 IP 地址。默认值为 127.0.0.1。使用 0.0.0.0 可绑定到所有接口。

--debug

启用调试日志记录,以打印 Amazon SAM CLI 生成的调试消息并显示时间戳。

--debug-args TEXT

要传递给调试程序的其他参数。

--debug-function

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

--debug-port, -d TEXT

指定后,在调试模式下启动 Lambda 函数容器,并在本地主机上开放此端口。

--debugger-path TEXT

将挂载到 Lambda 容器中的调试器的主机路径。

--docker-network TEXT

Lambda Docker 容器应连接到的现有 Docker 网络的名称或 ID,以及默认桥接网络。如果未指定此项,Lambda 容器将仅连接到默认的桥接 Docker 网络。

--docker-volume-basedir, -v TEXT

Amazon SAM 文件所在的基本目录的位置。如果 Docker 在远程计算机上运行,则必须在 Docker 计算机上挂载 Amazon SAM 文件所在的路径,并修改此值以匹配远程计算机。

--env-vars, -n PATH

包含 Lambda 函数环境变量值的 JSON 文件。

--force-image-build

指定是否 Amazon SAM CLI应重建用于调用带图层的函数的图像。

--help

显示此消息并退出。

--hook-name TEXT

用于扩展 Amazon SAM CLI 功能的钩子的名称。

可接受的值:terraform

--host TEXT

要绑定的本地主机名或 IP 地址(默认值:'127.0.0.1')。

--invoke-image TEXT

要用于 Lambda 函数的容器映像的 URI。默认情况下,从 Amazon ECR Public 中 Amazon SAM 提取容器镜像。使用此选项可从其他位置提取映像。

您可以多次指定该选项。此选项的每个实例都可以采用字符串或键值对。如果指定字符串,则字符串就是要用于应用程序中所有函数的容器映像 URI。例如,sam local start-api --invoke-image public.ecr.aws/sam/emu-python3.8。如果指定键值对,则键是资源名称,值是要用于该资源的容器映像 URI。例如 sam local start-api --invoke-image public.ecr.aws/sam/emu-python3.8 --invoke-image Function1=amazon/aws-sam-cli-emulation-image-python3.8 。如果使用键值对,您可以为不同的资源指定不同的容器映像。

--layer-cache-basedir DIRECTORY

指定模板使用的层下载到的基目录的位置。

--log-file, -l TEXT

运行时日志将被发送到的日志文件。

--parameter-overrides

可选。包含编码为键值对的 Amazon CloudFormation 参数覆盖的字符串。使用与 Amazon CLI(例如,'=、ParameterKey ParameterValue MyKey ParameterKey = KeyPairName InstanceType、= ParameterValue t1.micro')相同的格式。

--port, -p INTEGER

要监听的本地端口号(默认值:'3000')。

--profile TEXT

您的凭证文件中用于获取 Amazon 凭证的特定个人资料。

--region TEXT

要部署到的 Amazon 区域。例如,us-east-1。

--save-params

将您在命令行中提供的参数保存到 Amazon SAM 配置文件中。

--shutdown

在调用完成后模拟关闭事件,以测试关闭行为的扩展处理。

--skip-prepare-infra

如果没有进行任何基础架构更改,则跳过准备阶段。使用 --hook-name 选项。

--skip-pull-image

指定 CLI 是否应跳过下拉最新 Docker 映像获取 Lambda 运行时的操作。

--ssl-cert-file PATH

SSL 证书文件的路径(默认值:无)。使用此选项时,还必须使用该--ssl-key-file选项。

--ssl-key-file PATH

SSL 密钥文件的路径(默认值:无)。使用此选项时,还必须使用该--ssl-cert-file选项。

--static-dir, -s TEXT

位于此目录中的任何静态资产(例如 CSS/ JavaScript /HTML)文件都显示在。/

--template, -t PATH

Amazon SAM 模板文件。

注意

如果指定此选项,则仅 Amazon SAM 加载模板及其指向的本地资源。

--terraform-plan-file

将 Amazon SAM CLI 与 Terraform Cloud 配合使用时本地 Terraform 计划文件的相对路径或绝对路径。此选项要求将 --hook-name 设置为 terraform

--warm-containers [EAGER | LAZY]

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

有两个选项:

   EAGER:在启动时加载所有函数的容器,且在两次调用之间保持不变。

   LAZY:仅在首次调用每个函数时加载容器。这些容器会持续存在,以便进行其他调用。