我想配置 AWS Glue 以在爬网程序运行完成时自动启动任务。
解决方法
当爬网程序运行完成时,您可以使用 AWS Glue 触发器来启动作业。但是,AWS Glue 控制台仅支持任务,在使用触发器时不支持爬网程序。您可以使用 AWS Command Line Interface (AWS CLI) 或 AWS Glue API 为任务和爬网程序配置触发器。
运行以下 AWS CLI 命令以创建一个触发器,该触发器可以在爬网程序运行完成时启动任务:
$ aws glue create-trigger --name testTrigger --type CONDITIONAL --predicate 'Logical=AND,Conditions=[{LogicalOperator=EQUALS,CrawlerName=testCrawler,CrawlState=SUCCEEDED}]' --actions JobName=testJob --start-on-creation
注意:如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
您也可以使用 Python boto3 软件开发工具包创建触发器:
import boto3
client = boto3.client("glue")
response = client.create_trigger(
Name="testTrigger",
Type="CONDITIONAL",
Predicate={
"Logical": "AND",
"Conditions": [
{
"LogicalOperator": "EQUALS",
"CrawlerName": "testCrawler",
"CrawlState": "SUCCEEDED",
},
],
},
Actions=[
{"JobName": "testJob"},
],
StartOnCreation=True,
)
使用上述任何一种方法,您都可以创建触发器 testTrigger,该触发器可以在爬网程序 testCrawler 成功运行后启动任务 testJob。
**注意:**爬网程序 testCrawler 只能使用触发器启动。如果您手动启动爬网程序,则任务不会被触发器触发。在 AWS Glue 中,所有任务或爬网程序只有在触发器启动时才会启动。确保依赖项链中的所有任务或爬网程序都由计划或按需触发器启动。
此外,您还可以使用以下方法之一: