我想將 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 SDK 建立觸發條件:
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 中,只有在觸發條件啟動時,才會啟動所有任務或爬蟲程式。請確保相依關係鏈中的所有任務或爬蟲程式都是單一排程或隨需觸發條件的後代。
此外,您可以使用下列其中一種方法: