首页 > 解决方案 > 如何在 Step Function 中包含 AWS Glue 爬网程序

问题描述

这是我的要求:我在 AWS Glue 中有一个爬虫和一个 pyspark 作业。我必须使用步进功能设置工作流程。

问题:

  1. 如何将 Crawler 添加为第一个状态。我需要提供哪些参数(资源、类型等)。
  2. 如何确保下一个状态 - Pyspark 作业仅在爬虫成功运行后启动。
  3. 有什么方法可以安排 Step Function 状态机在特定时间运行?

参考:

标签: amazon-web-servicesaws-glueaws-step-functions

解决方案


回答这个问题的时间晚了几个月,但这可以在 step 函数中完成。您可以创建以下状态来实现它:

  • TriggerCrawler:任务状态:触发 Lambda 函数,在此 lambda 函数中,您可以编写代码以使用任何 aws-sdk 触发 AWS Glue Crawler
  • PollCrawlerStatus:任务状态:轮询爬虫状态并将其作为 lambda 响应返回的 Lambda 函数。
  • IsCrawlerRunSuccessful:选择状态:根据 Glue 爬虫的状态,您可以将 Next 状态设置为 Choice 状态,该状态将进入触发您的 Glue 作业的下一个状态(一旦 Glue 爬虫状态为“READY”)或进入Wait Statefor在您再次轮询之前几秒钟。
  • RunGlueJob:任务状态:触发粘合作业的 Lambda 函数。
  • WaitForCrawler:等待状态:在您再次轮询状态之前等待“n”秒。
  • Finish: 成功状态。

下面是这个 Step Function 的样子:

在此处输入图像描述


推荐阅读