在 Lambda 中实施检查和重启机制
Implement a check-and-restart mechanism in Lambda
我是 AWS 无服务器的新手,我有一个疑问。数据拉取 Lambda 可能会在 long-运行 拉取时超时,就像我要获取 1ook 记录一样,有时 Lambda 由于 X 原因在 50k 时超时。有没有一种方法可以实现检查和重启机制,如果在 50K 上失败,它会从上次处理的内容重新启动?或从头开始拉,但不是 100k 现在是 80k 或 60k?
这是一个典型的问题:尝试将 Lambda 用于 long 运行ning 进程。就其本质而言,无服务器功能更适合短 运行ning 进程(例如,从数据库中获取用户数据并 return 它)。因此,它们本身并不是完成此类工作的好工具。
然而,有一些方法可以通过改变方法使用 Lambdas 来满足 long 运行ning 处理要求。
您没有提供足够的细节来为您提供更详细的解决方案,但有两种常见的方法:
- AWS Step Functions:Step Functions 允许您对最多 运行 一年的“工作流”进行建模。这些步骤函数是从多个“步骤”构建的。一个步骤可以是 运行 连接一个 Lambda,读取和写入 DynamoDB、SQS 等。您的第一步可以从您的数据源中读取,然后您可以 运行 并行处理多个 Lambda 函数的一个子集整体数据集。这将减少单个 Lambda 调用处理的数据量,从而避免超时。
- 编写一个 Lambda,从您的数据源读取项目并将它们放入 AWS(SNS、SQS)的“队列”产品之一。在这些队列的“另一端”,您可以拥有一个只处理一小部分项目的 Lambda 函数。重复此操作,直到处理完所有项目。
有很多不同的 AWS 产品可以实现类似的功能。没有更多的需求细节,很难给你更好的答案。
但我想提的一件事是,与 AWS 合作往往是结合 几个 AWS 服务,而不是用一个服务完成所有事情。
我是 AWS 无服务器的新手,我有一个疑问。数据拉取 Lambda 可能会在 long-运行 拉取时超时,就像我要获取 1ook 记录一样,有时 Lambda 由于 X 原因在 50k 时超时。有没有一种方法可以实现检查和重启机制,如果在 50K 上失败,它会从上次处理的内容重新启动?或从头开始拉,但不是 100k 现在是 80k 或 60k?
这是一个典型的问题:尝试将 Lambda 用于 long 运行ning 进程。就其本质而言,无服务器功能更适合短 运行ning 进程(例如,从数据库中获取用户数据并 return 它)。因此,它们本身并不是完成此类工作的好工具。
然而,有一些方法可以通过改变方法使用 Lambdas 来满足 long 运行ning 处理要求。
您没有提供足够的细节来为您提供更详细的解决方案,但有两种常见的方法:
- AWS Step Functions:Step Functions 允许您对最多 运行 一年的“工作流”进行建模。这些步骤函数是从多个“步骤”构建的。一个步骤可以是 运行 连接一个 Lambda,读取和写入 DynamoDB、SQS 等。您的第一步可以从您的数据源中读取,然后您可以 运行 并行处理多个 Lambda 函数的一个子集整体数据集。这将减少单个 Lambda 调用处理的数据量,从而避免超时。
- 编写一个 Lambda,从您的数据源读取项目并将它们放入 AWS(SNS、SQS)的“队列”产品之一。在这些队列的“另一端”,您可以拥有一个只处理一小部分项目的 Lambda 函数。重复此操作,直到处理完所有项目。
有很多不同的 AWS 产品可以实现类似的功能。没有更多的需求细节,很难给你更好的答案。
但我想提的一件事是,与 AWS 合作往往是结合 几个 AWS 服务,而不是用一个服务完成所有事情。