创建 Lambda 持久性函数
要开始使用 Lambda 持久性函数,请使用 Lambda 控制台创建持久性函数。您可以在几分钟内创建并部署一个持久性函数,该函数使用步骤和等待来演示基于检查点的执行。
在您执行教程的过程中,您将学习一些基本的持久性函数概念,例如如何使用 DurableContext 对象、如何通过步骤创建检查点以及如何使用等待功能来暂停执行。您还将了解到在您的函数在等待结束后恢复时,重放机制是如何运作的。
为了简单起见,您可以使用 Python 或 Node.js 运行时系统创建函数。您可以使用这些解释性语言,在控制台的内置代码编辑器中直接编辑函数代码。
提示
要了解如何构建无服务器解决方案,请查看无服务器开发人员指南。
先决条件
如果您还没有,AWS 账户请完成以下步骤来创建一个。
注册 AWS 账户
打开 https://portal.aws.amazon.com/billing/signup
。 按照屏幕上的说明操作。
在注册时,将接到电话或收到短信,要求使用电话键盘输入一个验证码。
当您注册 AWS 账户 时,系统将会创建一个。AWS 账户根用户根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务。
注册过程完成后,AWS 会向您发送一封确认电子邮件。在任何时候,您都可以通过转至 https://aws.amazon.com/
注册 AWS 账户 后,请保护好您的,AWS 账户根用户启用,AWS IAM Identity Center并创建一个管理用户,以避免使用根用户执行日常任务。
保护您的 AWS 账户根用户
-
选择根用户并输入您的 AWS 账户 电子邮件地址,以账户拥有者身份登录。AWS 管理控制台
在下一页上,输入您的密码。 要获取使用根用户登录方面的帮助,请参阅《AWS 登录 用户指南》中的 Signing in as the root user。
-
为您的根用户启用多重身份验证(MFA)。
有关说明,请参阅《IAM 用户指南》中的为 AWS 账户 根用户启用虚拟 MFA 设备(控制台)。
创建具有管理访问权限的用户
-
启用 IAM Identity Center。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Enabling。AWS IAM Identity Center
-
在 IAM Identity Center 中,为用户授予管理访问权限。
有关如何使用 IAM Identity Center 目录 作为身份源的教程,请参阅《AWS IAM Identity Center 用户指南》中的 Configure user access with the default。IAM Identity Center 目录
以具有管理访问权限的用户身份登录
-
要使用您的 IAM Identity Center 用户身份登录,请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录 URL。
要获取使用 IAM Identity Center 用户登录方面的帮助,请参阅《AWS 登录 用户指南》中的 Signing in to the AWS access portal。
将访问权限分配给其他用户
-
在 IAM Identity Center 中,创建一个权限集,该权限集遵循应用最低权限的最佳做法。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Create a permission set。
-
将用户分配到一个组,然后为该组分配单点登录访问权限。
有关说明,请参阅《AWS IAM Identity Center 用户指南》中的 Add groups。
使用控制台创建 Lambda 持久性函数
在此示例中,您的持久性函数通过多个步骤处理订单,并具有自动检查点机制。该函数采用包含订单 ID 的 JSON 对象,对其进行验证,处理付款,然后确认订单。每个步骤都会自动进行检查点操作,因此如果函数被中断,它会从最后完成的步骤处恢复执行。
您的函数还演示了一个等待操作,它会暂停执行一小段时间,以此来模拟等待外部确认的过程。
要使用控制台创建持久性函数
打开 Lamba 控制台的 Functions page
(函数页面)。 -
选择创建函数。
-
选择从头开始编写。
-
在基本信息窗格中,为函数名称输入
。myDurableFunction -
对于运行时,选择 Node.js 24 或 Python 3.14。
-
选择启用持久执行。
Lambda 使用包含检查点操作(lambda:CheckpointDurableExecutions 和 lambda:GetDurableExecutionState)权限的执行角色创建您的持久性函数。
注意
Lambda 运行时包括持久执行 SDK,因此您无需打包依赖项即可测试持久性函数。但是,我们建议将 SDK 包含在您的生产部署包中。这样可以确保版本一致性,并且可以避免可能影响函数的潜在运行时更新。
使用控制台的内置代码编辑器添加您的持久性函数代码。
使用控制台代码编辑器调用持久性函数
持久性函数需要使用限定的 ARN 才能调用。在您能够调用持久性函数之前,请先发布一个版本。
要发布您的函数的版本
-
选择版本选项卡。
-
选择 새 버전 발행。
-
在版本描述中,输入
Initial version(可选)。 -
选择发布。
-
Lambda 会创建您的函数的版本 1。请注意,函数 ARN 现在在末尾包含
:1,表示这是版本 1。
现在,创建一个测试事件以发送到您的函数。该事件是一个 JSON 格式的文档,其中包含订单 ID。
创建测试事件
-
在控制台代码编辑器的测试事件部分中,选择创建测试事件。
-
对于 Event Name (事件名称),输入
myTestEvent。 -
在事件 JSON 部分中,使用以下内容替换默认 JSON:
{ "orderId": "order-12345" } -
选择保存。
要测试您的持久性函数并查看执行情况
在控制台代码编辑器的测试事件部分中,选择测试事件旁边的运行图标:
您的持久性函数开始执行。因为该函数包含一段10秒的等待时间,所以初始调用会快速完成,函数将在等待期结束后恢复执行。您可以在持久执行选项卡中查看执行进度。
要查看您的持久性函数执行情况
-
选择持久执行选项卡。
-
在列表中找到执行。执行将显示当前状态(正在运行、成功或失败)。
-
选择执行 ID 以查看详细信息,其中包括:
显示每个步骤完成时间的执行时间表
检查点历史记录
等待期
步骤结果
您还可以在 CloudWatch Logs 中查看函数的日志,以查看每个步骤的控制台输出。
在 CloudWatch Logs 中查看函数的调用记录
-
打开 CloudWatch 控制台的 Log groups page
(日志组页面)。 -
选择函数 (
/aws/lambda/myDurableFunction) 的日志组。 -
向下滚动,选择要查看的函数调用的日志流。
您应该能看到每次调用该函数时产生的日志条目,包括首次执行时的记录以及等待结束后进行的重放记录。
清理
使用完示例持久性函数后,请将其删除。您还可以删除存储函数日志的日志组以及控制台创建的执行角色。
删除 Lambda 函数
-
打开 Lamba 控制台的 Functions(函数)页面
。 -
选择您创建的函数。
-
依次选择操作和删除。
-
在文本输入字段中键入
confirm,然后选择删除。
删除日志组
-
打开 CloudWatch 控制台的 Log groups page
(日志组页面)。 -
选择函数的日志组 (
/aws/lambda/myDurableFunction)。 -
依次选择 Actions(操作)和 Delete log group(s)(删除日志组)。
-
在 Delete log group(s)(删除日志组)对话框中,选择 Delete(删除)。
删除执行角色
-
打开 AWS Identity and Access Management (IAM) 控制台的 Roles page
(角色页面)。 -
选择函数的执行角色(例如
myDurableFunction-role-)。31exxmpl -
选择删除。
-
在删除角色对话框中,输入角色名称,然后选择删除。
其他资源和后续步骤
现在,您已经使用控制台创建并测试了一个简单的持久性函数,请继续执行以下后续步骤: