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 SAM CLI) sam local invoke 子命令。

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

使用量

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

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

参数

资源 ID

要调用的 Lambda 函数 的 ID。

此参数是可选的。如果您的应用程序包含单个 Lambda 函数,则 Amazon SAM CLI会调用该函数。如果应用程序包含多个函数,请提供要调用的函数的 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 SAM CLI 配置文件

--config-file PATH

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

--container-env-vars

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

--container-host TEXT

本地模拟的 Lambda 容器的主机。默认值为 localhost。如果你想跑 Amazon SAM CLI 在 macOS 上的 Docker 容器中,你可以指定。host.docker.internal如果你想在不同的主机上运行容器 Amazon SAM CLI,您可以指定远程主机的 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 函数时传递给 Lambda 函数的事件数据的JSON文件。如果不指定此选项,则不会假设任何事件。要JSON从中输入stdin,必须传入值 '-'。有关来自不同 Amazon 服务的事件消息格式的详细信息,请参阅《Amazon Lambda 开发人员指南》中的使用其他服务

--force-image-build

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

--help

显示此消息并退出。

--hook-name TEXT

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

可接受的值:terraform

--invoke-image TEXT

要用于本地函数调用的容器镜像。URI默认情况下,从 Amazon P ECR ublic(中列出的图像存储库 Amazon SAM)中 Amazon SAM 提取容器镜像。使用此选项可从其他位置提取映像。

例如,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) 相同的格式。的 Amazon SAM CLI format 是显式的键和值关键字,每个替换都用空格分隔。以下是两个示例:

  • --parameter-overrides ParameterKey=hello,ParameterValue=world

  • --parameter-overrides ParameterKey=hello,ParameterValue=world ParameterKey=example1,ParameterValue=example2 ParameterKey=apple,ParameterValue=banana

--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 最新的远程运行时环境并自动更新您的本地映像以保持同步。

指定此选项可跳过下拉最新版本的操作 Docker 您的 Lambda 运行时环境的图片。

--template, -t PATH

Amazon SAM 模板文件。

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

注意

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

--terraform-plan-file

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

示例

以下示例使用生成的事件进行本地测试,方法是使用 s3.json 事件在本地调用 Lambda 函数

$ sam local invoke --event events/s3.json S3JsonLoggerFunction