amazon-web-services - 如何在 Step Function 中包含 AWS Glue 爬网程序
问题描述
这是我的要求:我在 AWS Glue 中有一个爬虫和一个 pyspark 作业。我必须使用步进功能设置工作流程。
问题:
- 如何将 Crawler 添加为第一个状态。我需要提供哪些参数(资源、类型等)。
- 如何确保下一个状态 - Pyspark 作业仅在爬虫成功运行后启动。
- 有什么方法可以安排 Step Function 状态机在特定时间运行?
参考:
解决方案
回答这个问题的时间晚了几个月,但这可以在 step 函数中完成。您可以创建以下状态来实现它:
TriggerCrawler
:任务状态:触发 Lambda 函数,在此 lambda 函数中,您可以编写代码以使用任何 aws-sdk 触发 AWS Glue CrawlerPollCrawlerStatus
:任务状态:轮询爬虫状态并将其作为 lambda 响应返回的 Lambda 函数。IsCrawlerRunSuccessful
:选择状态:根据 Glue 爬虫的状态,您可以将 Next 状态设置为 Choice 状态,该状态将进入触发您的 Glue 作业的下一个状态(一旦 Glue 爬虫状态为“READY”)或进入Wait State
for在您再次轮询之前几秒钟。RunGlueJob
:任务状态:触发粘合作业的 Lambda 函数。WaitForCrawler
:等待状态:在您再次轮询状态之前等待“n”秒。Finish
: 成功状态。
下面是这个 Step Function 的样子:
推荐阅读
- php - 如何擦除字符串以及 PHP 中的后续内容?
- javascript - 语法错误:意外的标识符 - 在 JavaScript 中返回函数的高阶函数
- android - Flutter - 如何制作水平滚动的ListView?
- python - 为什么 Python 有时不抛出错误信息
- r - 如何为循环的每次迭代从 R 中的函数返回多个值?简单的生活史模拟
- reactjs - 错误构建反应快照:协议错误(Network.getResponseBody):目标关闭
- math - For循环不重复
- javascript - 如何告诉 Passport JS 中的 typescript req.user 永远不会被定义?
- ruby - *1539 768 worker_connections 在连接上游时不够用
- python-3.x - 如何在 gluoncv 中加载多个训练的权重?