크롤러 실행이 완료될 때 자동으로 작업을 시작하도록 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,
)
위의 방법 중 하나를 사용하여 testCrawler 크롤러가 성공적으로 실행된 후 testJob 작업을 시작할 수 있는 testTrigger 트리거를 생성할 수 있습니다.
참고: 크롤러 testCrawler는 트리거를 통해서만 시작해야 합니다. 크롤러를 수동으로 시작하면 트리거에 의해 작업이 실행되지 않습니다. AWS Glue에서 모든 작업 또는 크롤러는 트리거에 의해 시작된 경우에만 시작됩니다. 종속성 체인의 모든 작업/크롤러가 예약된 트리거나 온디맨드 트리거의 하위 항목인지 확인합니다.
또한 다음 방법 중 하나를 사용할 수 있습니다.