使用 AWS lambda 或 Google Functions 运行具有不同参数的同一脚本的大量并行实例

使用 AWS lambda 或 Google Functions 运行具有不同参数的同一脚本的大量并行实例

我有一个用于收集不同社交媒体主题标签数据的脚本。该脚本当前会发出一系列连续的 HTTP 请求,将数据格式化为 Pandas 数据框,并将其保存到 csv。对于非常流行的主题标签,它需要运行数小时。

我需要针对 1000 多个单独的主题标签运行此程序。为了节省时间,我想同时运行多个实例,例如,一次运行 50-100 个实例,每个实例收集不同的主题标签。

假设我更改 CSV 部分以使用云存储服务,我还需要做什么才能完成我所描述的内容?如果我有我需要的所有主题标签的列表,如何设置 AWS lambda 或 Google Functions 以同时执行这些标签,以便在收集所有数据之前始终运行 50-100 个实例?

答案1

在 AWS 中我会使用具有动态并行性的 Step Functions来实现这一目标。

第一个 Lambda函数将发出主题标签列表您想要抓取的内容。

然后第二个 Lambda将被 Step Function State Machine 多次并行调用,以处理每个标签

配置(例如标签)作为 JSON 对象传递。

希望有帮助:)

答案2

如果您的脚本需要几个小时才能运行,我认为 Cloud Functions (GCP) 不适合您。Cloud Function 最多只能运行 9 分钟,默认值为 60 秒。在此时间之后,该功能将关闭。

如果您希望像您提到的那样保留一个实例数小时,那么更好的选择可能是使用 Compute Engine 或 App Engine Standard基本扩展允许最多 24 小时的 HTTP 请求。

相关内容