完成后删除 AWS Glue 爬虫
Delete AWS Glue Crawler After Completion
我有一个用例,我需要创建一个 AWS Glue 爬虫来爬取一些存储在 S3 中的数据,启动爬虫,然后在爬虫完成爬取数据后将其删除。
我 运行 陷入的困境是爬虫可能需要很长时间才能完成,有时需要 20-30 分钟才能完成对实际数据的爬网,然后才能将其删除。
最初我打算用 AWSGlueAsyncClient 解决这个问题,这样我就不会阻塞调用线程 20-30 分钟,我可以只写一个回调,这样当爬虫完成时,它会立即被删除。
问题在于,如果服务器在这 20-30 分钟内停机或中断 window 爬虫需要完成,它将不再被删除。
有什么好的方法可以坚持删除爬虫的步骤,这样即使服务器宕机,它仍然会在重新启动后尝试删除爬虫?数据库似乎有点矫枉过正。
您可以设置 EventBridge rule 在爬虫完成时触发 lambda 函数。然后该函数将删除爬虫。示例规则是:
{
"source": [
"aws.glue"
],
"detail-type": [
"Glue Crawler State Change"
],
"detail": {
"state": [
"Succeeded"
]
}
}
我有一个用例,我需要创建一个 AWS Glue 爬虫来爬取一些存储在 S3 中的数据,启动爬虫,然后在爬虫完成爬取数据后将其删除。
我 运行 陷入的困境是爬虫可能需要很长时间才能完成,有时需要 20-30 分钟才能完成对实际数据的爬网,然后才能将其删除。
最初我打算用 AWSGlueAsyncClient 解决这个问题,这样我就不会阻塞调用线程 20-30 分钟,我可以只写一个回调,这样当爬虫完成时,它会立即被删除。
问题在于,如果服务器在这 20-30 分钟内停机或中断 window 爬虫需要完成,它将不再被删除。
有什么好的方法可以坚持删除爬虫的步骤,这样即使服务器宕机,它仍然会在重新启动后尝试删除爬虫?数据库似乎有点矫枉过正。
您可以设置 EventBridge rule 在爬虫完成时触发 lambda 函数。然后该函数将删除爬虫。示例规则是:
{
"source": [
"aws.glue"
],
"detail-type": [
"Glue Crawler State Change"
],
"detail": {
"state": [
"Succeeded"
]
}
}