使用 CloudWatch Events 实现 AWS Glue 自动化 - AWS Glue

使用 CloudWatch Events 实现 AWS Glue 自动化

您可以使用 Amazon CloudWatch Events 自动执行您的 AWS 服务并自动响应系统事件,例如应用程序可用性问题或资源更改。AWS 服务中的事件近乎实时地传输到 CloudWatch Events。您可以编写简单规则来指示您关注的事件,并指示要在事件匹配规则时执行的自动化操作。可自动触发的操作包括:

  • 调用 AWS Lambda 函数

  • 调用 Amazon EC2 Run Command

  • 将事件中继到 Amazon Kinesis Data Streams

  • 激活 AWS Step Functions 状态机

  • 通知 Amazon SNS 主题或 Amazon SQS 队列

一些将 CloudWatch Events 与 AWS Glue 结合使用的示例包括:

  • 当 ETL 任务成功时激活 Lambda 函数

  • 当 ETL 任务失败时通知 Amazon SNS 主题

以下 CloudWatch Events 由 AWS Glue 生成。

  • 针对 SUCCEEDEDFAILEDTIMEOUTSTOPPED 生成的 "detail-type":"Glue Job State Change" 事件。

  • 当超过作业延迟通知阈值时,则会针对 RUNNINGSTARTINGSTOPPING 作业运行生成 "detail-type":"Glue Job Run Status" 事件。必须设置作业延迟通知阈值属性才能接收这些事件。

    当超过作业延迟通知阈值时,每个作业运行状态仅生成一个事件。

  • 针对 StartedSucceededFailed 生成 "detail-type":"Glue Crawler State Change" 事件。

  • 针对 CreateDatabaseDeleteDatabaseCreateTableDeleteTableBatchDeleteTable 生成 "detail-type":"Glue Data Catalog Database State Change" 的事件。例如,如果创建或删除表,系统会向 CloudWatch Events 发送一条通知。请注意,您不能编写取决于通知事件的顺序或存在的程序,因为它们可能是乱序或缺失的。尽最大努力发出事件。在通知的详细信息中:

    • typeOfChange 包含 API 操作的名称。

    • databaseName 包含受影响数据库的名称。

    • changedTables 对于每个通知最多包含 100 个受影响的表的名称。当表名称过长时,可创建多个通知。

  • 针对 UpdateTableCreatePartitionBatchCreatePartitionUpdatePartitionDeletePartitionBatchUpdatePartitionBatchDeletePartition 生成的 "detail-type":"Glue Data Catalog Table State Change" 事件。例如,如果更新表或分区,系统会向 CloudWatch Events 发送一条通知。请注意,您不能编写取决于通知事件的顺序或存在的程序,因为它们可能是乱序或缺失的。尽最大努力发出事件。在通知的详细信息中:

    • typeOfChange 包含 API 操作的名称。

    • databaseName 包含其中包含受影响资源的数据库的名称。

    • tableName 包含受影响的表的名称。

    • changedPartitions 在一条通知中最多指定 100 个受影响的分区。当分区名称过长时,可创建多个通知。

      例如,如果有两个分区键 YearMonth,则 "2018,01", "2018,02" 会修改分区(其中 "Year=2018" and "Month=01")和分区(其中 "Year=2018" and "Month=02")。

      { "version":"0", "id":"abcdef00-1234-5678-9abc-def012345678", "detail-type":"Glue Data Catalog Table State Change", "source":"aws.glue", "account":"123456789012", "time":"2017-09-07T18:57:21Z", "region":"us-west-2", "resources":["arn:aws:glue:us-west-2:123456789012:database/default/foo"], "detail":{ "changedPartitions": [ "2018,01", "2018,02" ], "databaseName": "default", "tableName": "foo", "typeOfChange": "BatchCreatePartition" } }

有关更多信息,请参阅 Amazon CloudWatch Events 用户指南。有关特定于 AWS Glue 的事件,请参阅 AWS Glue 事件