本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 sam remote test-event 进行云测试简介
使用 Amazon Serverless Application Model 命令行界面 (Amazon SAM CLI) sam remote test-event
命令访问和管理 Amazon Lambda 函数的可共享测试事件。
要了解有关可共享测试事件的更多信息,请参阅《Amazon Lambda 开发人员指南》中的可共享测试事件。
要使用 sam remote test-event
,请完成以下操作安装 Amazon SAM CLI:
如果您已经安装 Amazon SAM CLI,我们建议升级到 Amazon SAM CLI 的最新版本。要了解更多信息,请参阅 升级 Amazon SAM CLI。
我们建议您在使用 sam remote test-event
之前初步了解以下主题:
设置 Amazon SAM CLI 以使用 sam remote test-event
完成以下设置步骤以使用 Amazon SAM CLI sam remote test-event
命令:
-
配置 Amazon SAM CLI 以使用您的 Amazon Web Services 账户 – 同一 Amazon Web Services 账户 内的用户可以访问和管理 Lambda 中的可共享测试事件。要配置 Amazon SAM CLI 以使用您的 Amazon Web Services 账户,请参阅 配置 Amazon SAM CLI。
-
为可共享的测试事件配置权限 – 要访问和管理可共享的测试事件,您必须具有适当的权限。要了解更多信息,请参阅《Amazon Lambda 开发人员指南》中的可共享测试事件。
使用 sam remote test-event 命令
该 Amazon SAM CLI sam remote test-event
命令提供以下子命令,您可以使用它们来访问和管理可共享的测试事件:
-
delete
– 从 Amazon EventBridge 架构注册表中删除可共享的测试事件。 -
get
– 从 EventBridge 架构注册表中获取可共享的测试事件。 -
list
– 从 EventBridge 架构注册表中列出某个函数的现有可共享测试事件。 -
put
– 将事件从本地文件保存到 EventBridge 架构注册表。
要使用 Amazon SAM CLI 列出这些子命令,请运行以下命令:
$
sam remote test-event --help
删除可共享测试事件
您可以使用 delete
子命令以及以下操作来删除可共享的测试事件:
-
提供要删除的可共享测试事件的名称。
-
提供与事件关联的 Lambda 函数的可接受 ID。
-
如果您要提供 Lambda 函数逻辑 ID,则还必须提供与 Lambda 函数关联的 Amazon CloudFormation 堆栈名称。
以下是示例:
$
sam remote test-event delete
HelloWorldFunction
--stack-namesam-app
--namedemo-event
有关与 delete
子命令配合使用的选项列表,请参见 sam remote test-event delete。您还可以从 Amazon SAM CLI 执行以下操作:
$
sam remote test-event delete --help
获取可共享测试事件
您可以使用 get
子命令和以下操作,从 EventBridge 架构注册表中获取可共享的测试事件:
-
提供要获取的可共享测试事件的名称。
-
提供与事件关联的 Lambda 函数的可接受 ID。
-
如果您要提供 Lambda 函数逻辑 ID,则还必须提供与 Lambda 函数关联的 Amazon CloudFormation 堆栈名称。
以下是获取名为 demo-event
的可共享测试事件的示例,该事件与 sam-app
堆栈的 HelloWorldFunction
Lambda 函数相关联。此命令会将事件打印到您的控制台。
$
sam remote test-event get
HelloWorldFunction
--stack-namesam-app
--namedemo-event
要获取可共享的测试事件并将其保存到本地计算机,请使用 --output-file
选项并提供文件路径和名称。以下是将 demo-event
作为 demo-event.json
保存于当前工作目录的示例:
$
sam remote test-event get
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--output-filedemo-event.json
有关与 get
子命令配合使用的选项列表,请参见 sam remote test-event get。您还可以从 Amazon SAM CLI 执行以下操作:
$
sam remote test-event get --help
列出可共享测试事件
您可以从架构注册表中列出特定 Lambda 函数的所有可共享测试事件。使用 list
子命令和以下操作:
-
提供与事件关联的 Lambda 函数的可接受 ID。
-
如果您要提供 Lambda 函数逻辑 ID,则还必须提供与 Lambda 函数关联的 Amazon CloudFormation 堆栈名称。
以下是获取与 sam-app
堆栈的 HelloWorldFunction
Lambda 函数关联的所有可共享测试事件列表的示例:
$
sam remote test-event list
HelloWorldFunction
--stack-namesam-app
有关与 list
子命令配合使用的选项列表,请参见 sam remote test-event list。您还可以从 Amazon SAM CLI 执行以下操作:
$
sam remote test-event list --help
保存可共享测试事件
您可以将可共享的测试事件保存到 EventBridge 架构注册表中。使用 put
子命令和以下操作:
-
提供与可共享测试事件关联的 Lambda 函数的可接受的 ID。
-
提供可共享测试事件的名称。
-
为要上传的本地事件提供文件路径和名称。
以下是将本地 demo-event.json
事件另存为 demo-event
并将其与 sam-app
堆栈的 HelloWorldFunction
Lambda 函数关联的示例:
$
sam remote test-event put
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--filedemo-event.json
如果 EventBridge 架构注册表中存在同名的可共享测试事件,则 Amazon SAM CLI 不会将其覆盖。要覆盖,请向您的命令添加 --force
选项。
有关与 put
子命令配合使用的选项列表,请参见 sam remote test-event put。您还可以从 Amazon SAM CLI 执行以下操作:
$
sam remote test-event put --help
使用可共享测试事件
使用可共享的测试事件通过 sam remote invoke
命令在 Amazon Web Services 云 中测试 Lambda 函数。要了解更多信息,请参阅 将可共享的测试事件传递给云端的 Lambda 函数。
管理可共享测试事件
本主题包含有关如何管理和使用可共享测试事件的示例。
获取可共享的测试事件,对其进行修改并使用
您可以从 EventBridge 架构注册表中获取可共享的测试事件,在本地对其进行修改,然后将本地测试事件与 Amazon Web Services 云 中的 Lambda 函数一起使用。以下是示例:
-
检索可共享的测试事件 – 使用
sam remote test-event get
子命令检索特定 Lambda 函数的可共享测试事件并将其保存在本地:$
sam remote test-event get
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--output-filedemo-event.json
-
修改可共享的测试事件 – 使用您选择的文本编辑器修改可共享的测试事件。
-
使用可共享的测试事件 – 使用
sam remote invoke
命令并通过--event-file
提供事件的文件路径和名称:$
sam remote invoke
HelloWorldFunction
--stack-namesam-app
--event-filedemo-event.json
获取可共享的测试事件,对其进行修改,上传并使用
您可以从 EventBridge 架构注册表中获取可共享的测试事件,在本地对其进行修改并上传。然后,您可以将可共享的测试事件直接传递给 Amazon Web Services 云 中的 Lambda 函数。以下是示例:
-
检索可共享的测试事件 – 使用
sam remote test-event get
子命令检索特定 Lambda 函数的可共享测试事件并将其保存在本地:$
sam remote test-event get
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--output-filedemo-event.json
-
修改可共享的测试事件 – 使用您选择的文本编辑器修改可共享的测试事件。
-
上传可共享的测试事件 – 使用
sam remote test-event put
子命令将可共享的测试事件上传并保存到 EventBridge 架构注册表。在此示例中,我们使用--force
选项来覆盖可共享测试的旧版本:$
sam remote test-event put
HelloWorldFunction
--stack-namesam-app
--namedemo-event
--filedemo-event.json
--force -
将可共享的测试事件传递给 Lambda 函数 – 使用
sam remote invoke
命令将可共享的测试事件直接传递给 Amazon Web Services 云 中的 Lambda 函数:$
sam remote invoke
HelloWorldFunction
--stack-namesam-app
--test-event-namedemo-event