크롤러 실행이 완료되면 AWS Lambda 함수를 사용하여 AWS Glue 작업을 자동으로 시작하려고 합니다.
간략한 설명
크롤러 실행이 완료될 때 작업을 시작하려면 AWS Lambda 함수와 Amazon EventBridge 규칙을 생성합니다.
참고: 또한 AWS Glue 워크플로를 사용하여 크롤러 실행이 완료되면 자동으로 작업을 시작할 수 있습니다. 자세한 내용은 크롤러 실행이 완료될 때 AWS Glue 워크플로를 사용하여 작업을 자동으로 시작하려면 어떻게 해야 합니까?를 참조하십시오.
해결 방법
사전 요구 사항:
다음이 있어야 합니다.
- AWS Glue 추출, 전환, 적재(ETL) 작업
- AWS Glue 크롤러
- AWS Glue 작업을 실행할 권한이 있는 Lambda의 AWS Identity and Access Management(IAM) 역할. 예를 들어, 역할에 AWSGlueServiceRole 정책이 연결된 Lambda용 서비스 연결 역할을 설정합니다.
Lambda 함수 생성
다음 단계를 완료하십시오.
- Lambda 콘솔을 엽니다.
- 함수 생성을 선택합니다.
- 함수 생성 페이지에서 다음 정보를 입력합니다.
새로 작성을 선택합니다.
**Function name(함수 이름)**에 함수의 이름을 입력합니다.
런타임에서 Python 옵션을 선택합니다.
아키텍처의 경우 기본 옵션인 x86_64를 사용합니다.
기본 실행 역할 변경의 실행 역할에서 기존 역할 사용을 선택합니다.
기존 역할에서 AWS Glue 작업을 실행할 권한이 있는 IAM 역할을 선택합니다.
- 함수 생성을 선택합니다.
- 함수 세부 정보 페이지의 코드 소스에서 다음 코드를 입력합니다.
# Set up loggingimport json
import os
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
# Import Boto 3 for AWS Glue
import boto3
client = boto3.client('glue')
# Variables for the job:
glueJobName = "MyTestJob"
# Define Lambda function
def lambda_handler(event, context):
logger.info('## INITIATED BY EVENT: ')
logger.info(event['detail'])
response = client.start_job_run(JobName = glueJobName)
logger.info('## STARTED GLUE JOB: ' + glueJobName)
logger.info('## GLUE JOB RUN ID: ' + response['JobRunId'])
return response
참고: MyTestJob을 AWS Glue ETL 작업의 이름으로 바꾸십시오.
- 코드 소스에서 테스트를 선택합니다.
- AWS Glue 콘솔을 열고 작업이 시작되었는지 확인합니다.
Lambda 함수를 테스트하려면 AWS Glue 크롤러를 실행하십시오. 그런 다음, AWS Glue ETL 작업의 작업 실행 리소스 목록을 확인합니다. 실행 상태는 시작 중 또는 실행 중으로 표시됩니다.
EventBridge 규칙 생성
다음 단계를 완료하십시오.
- EventBridge 콘솔을 엽니다.
- 탐색 창에서 규칙를 선택한 다음, 규칙 생성을 선택합니다.
- 규칙의 이름과 설명을 입력하고 다음을 선택합니다.
- 이벤트 소스 및 샘플 이벤트에 기본값을 사용합니다.
- 이벤트 패턴 섹션에서 사용자 지정 패턴(JSON 편집기)을 선택합니다.
- 이벤트 패턴 필드에 다음 코드를 입력합니다.
{
"detail-type": [
"Glue Crawler State Change"
],
"source": [
"aws.glue"
],
"detail": {
"crawlerName": [
"MyTestCrawl"
],
"state": [
"Succeeded"
]
}
}
참고: MyTestCrawl을 AWS Glue 크롤러의 이름으로 바꾸십시오.
- 대상 선택에 다음 정보를 입력합니다.
대상에서 Lambda 함수를 선택합니다.
함수에서 Lambda 함수를 선택합니다.
- 생성을 선택합니다.
Lambda 함수 및 EventBridge 규칙을 테스트하려면 AWS Glue 크롤러를 실행하십시오. 그런 다음, AWS Glue ETL 작업의 작업 실행 리소스 목록을 확인합니다. 실행 상태는 시작 중 또는 실행 중으로 표시됩니다.
관련 정보
Amazon EventBridge에서 이벤트에 반응하는 규칙 생성