如何在爬网程序运行完成后自动启动 AWS Glue 任务?

1 分钟阅读
0

我想配置 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 中,所有任务或爬网程序只有在触发器启动时才会启动。确保依赖项链中的所有任务或爬网程序都由计划或按需触发器启动。

此外,您还可以使用以下方法之一:


相关视频

AWS 官方
AWS 官方已更新 3 年前