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

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

sam local invoke

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

sam local invoke子命令在本地启动一次性调用函数。 Amazon Lambda

使用量

$ sam local invoke <arguments> <options>
注意

如果 Amazon SAM 模板中定义了多个函数,请提供要调用的函数逻辑 ID。

参数

资源 ID

要调用的 Lambda 函数 的 ID。

此参数是可选的。如果您的应用程序包含单个 Lambda 函数,则 CL Amazon SAM I 将调用该函数。如果应用程序包含多个函数,请提供要调用的函数的 ID。

有效值:资源的逻辑 ID 或资源 ARN。

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

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

--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-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 文件。有关环境变量文件的更多信息,请参阅环境变量文件

--event, -e PATH

包含调用 Lambda 函数时传递给该函数的事件数据的 JSON 文件。如果不指定此选项,则不会假设任何事件。要从 stdin 中输入 JSON,必须传递值 '-'。有关来自不同 Amazon 服务的事件消息格式的详细信息,请参阅《Amazon Lambda 开发人员指南》中的使用其他服务

--force-image-build

指定 Amazon SAM CLI 是否应重建用于调用包含层的 Lambda 函数的映像。

--help

显示此消息并退出。

--hook-name TEXT

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

可接受的值:terraform

--invoke-image TEXT

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

例如,sam local invoke MyFunction --invoke-image amazon/aws-sam-cli-emulation-image-python3.8

--layer-cache-basedir DIRECTORY

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

--log-file, -l TEXT

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

--no-event

使用空事件调用函数。

--parameter-overrides

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

此选项与 --hook-name 不兼容。

--profile TEXT

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

--region TEXT

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

--save-params

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

--shutdown

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

--skip-prepare-infra

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

--skip-pull-image

默认情况下, Amazon SAM CLI会检查 Lambda 最新的远程运行时环境,并自动更新本地映像以保持同步。

指定此选项可跳过为 Lambda 运行时环境下拉最新的 Docker 映像。

--template, -t PATH

Amazon SAM 模板文件。

此选项与 --hook-name 不兼容。

注意

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

--terraform-plan-file

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