크롤러의 실행이 완료될 때 AWS Glue 작업을 자동으로 시작하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 1월 16일

크롤러 실행이 완료될 때 자동으로 작업을 시작하도록 AWS Glue를 구성하려고 합니다. 어떻게 해야 합니까?

간략한 설명

크롤러 실행이 완료될 때 작업을 시작하는 데 AWS Glue 트리거를 사용할 수는 없습니다. 대신 AWS Lambda 함수와 Amazon CloudWatch Events 규칙을 생성합니다.

해결 방법

다음 단계를 수행하기 전에 다음이 있는지 확인해야 합니다.

  • AWS Glue ETL(추출, 변환 및 로드)작업
  • AWS Glue 크롤러
  • Lambda에 대한 AWS Identity and Access Management(IAM) 역할(AWS Glue 작업을 실행할 권한이 부여되어 있어야 함) 예를 들어 AWSGlueServiceRole 정책이 연결되어 있는 Lambda에 대한 service-linked 역할을 설정합니다.

Lambda 함수 생성

1.     Lambda 콘솔을 엽니다.

2.     [Create function]을 선택합니다.
참고: Lambda 함수가 없는 경우 [Get started] 페이지가 나타납니다. [Create a function]을 선택한 후 다음 단계를 계속 진행합니다.

3.     [Author from scratch]가 선택되어 있는지 확인한 후 다음 옵션을 구성합니다.
[이름]에 함수 이름을 입력합니다.
[Runtime]에서 [Python 2.7], [Python 3.6] 또는 [Python 3.7]을 선택합니다.
[Role]에서 [Choose an existing role]을 선택합니다.
[Existing role]에서 AWS Glue 작업을 실행할 권한이 있는 IAM 역할을 선택합니다.

4.     [Create function]을 선택합니다.

5.     다음 코드를 [Function code] 섹션에 붙여 넣습니다. MyTestJob은 AWS Glue ETL 작업의 이름으로 바꾸어야 합니다.

import boto3
client = boto3.client('glue')

def lambda_handler(event, context):
response = client.start_job_run(
JobName = 'MyTestJob')

6.     페이지 오른쪽 상단에서 [Save]를 선택한 다음 [Test]를 선택합니다.

7.     AWS Glue 콘솔을 열고 작업이 시작되었는지 확인합니다.

CloudWatch Events 규칙 생성

1.     CloudWatch 콘솔을 엽니다.

2.     탐색 창에서 [Rules]를 선택하고 [Create rule]을 선택합니다.

3.     [Event Source] 섹션에서 [Event Pattern]을 선택한 다음 [Build event pattern to match events by service]라는 요소를 선택합니다. 표시되는 드롭다운 목록에서 [Custom event pattern]을 선택합니다.

4.     [Build custom event pattern] 상자에서 기존 코드를 다음 코드로 바꿉니다. MyTestCrawl은 AWS Glue 크롤러의 이름으로 바꾸어야 합니다.

{
    "detail-type": [
        "Glue Crawler State Change"
    ],
    "source": [
        "aws.glue"
    ],
    "detail": {
        "crawlerName": [
            "MyTestCrawl"
        ],
        "state": [
            "Succeeded"
        ]
    }
}

5.     페이지 오른쪽에 있는 [Targets] 섹션에서 [Add target]을 선택합니다.

6.     드롭다운 목록에서 [Lambda function]을 선택합니다(선택되어 있지 않은 경우).

7.     [Function] 드롭다운 목록에서 해당 Lambda 함수의 이름을 선택합니다.

8.     페이지 오른쪽 하단에서 [Configure details]를 선택합니다.

9.     CloudWatch Events 규칙의 [Name]과 [Description]을 입력한 다음 [Create rule]을 선택합니다.

Lambda 함수와 CloudWatch Events 규칙을 테스트하려면 AWS Glue 크롤러를 실행합니다. 그런 다음, AWS Glue ETL 작업의 [History] 탭을 확인합니다. [Run status]가 [Starting] 또는 [Running]으로 표시되어야 합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?