【问题标题】:Delete AWS Glue Crawler After Completion完成后删除 AWS Glue 爬虫
【发布时间】:2021-05-26 02:24:21
【问题描述】:

我有一个用例,我需要创建一个 AWS Glue Crawler 来爬取存储在 S3 中的一些数据,启动爬虫,然后在爬取完成数据后删除爬虫。

我遇到的困境是爬虫可能需要很长时间才能完成,有时需要 20-30 分钟才能完成对实际数据的爬取,然后才能将其删除。

最初我打算使用 AWSGlueAsyncClient 解决这个问题,这样我就可以编写一个回调,这样当爬虫完成时,它会立即被删除,而不是阻塞调用线程 20-30 分钟。

这样的问题是,如果服务器在爬虫完成的 20 到 30 分钟窗口内关闭或中断,它将不再被删除。

什么是持久化爬虫删除步骤的好方法,这样即使服务器出现故障,它仍然会在爬虫重新启动后尝试删除它?数据库似乎有点矫枉过正。

【问题讨论】:

  • 在许多情况下不需要胶水爬虫。您可能需要考虑使用 from_options 而不是 from_catalog 进行阅读。 From_options 您可以直接从 S3 或其他来源读取。 docs.aws.amazon.com/glue/latest/dg/…

标签: amazon-web-services aws-glue aws-java-sdk


【解决方案1】:

您可以设置EventBridge rule 以在爬虫完成时触发 lambda 函数。然后该函数将删除爬虫。示例规则是:

{
  "source": [
    "aws.glue"
  ],
  "detail-type": [
    "Glue Crawler State Change"
  ],
  "detail": {
    "state": [
      "Succeeded"
    ]
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多