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