크롤러 실행이 완료되면 AWS Lambda 함수를 사용하여 AWS Glue 작업을 자동으로 시작하려고 합니다.
간략한 설명
크롤러 실행이 완료될 때 작업을 시작하려면 AWS Lambda 함수와 Amazon EventBridge 규칙을 생성합니다. 이 메서드를 수정하여 다른 AWS Glue 함수를 자동화할 수 있습니다.
참고: 또한 AWS Glue 워크플로를 사용하여 크롤러 실행이 완료되면 자동으로 작업을 시작할 수 있습니다. 이 방법을 사용하려면 AWS Glue 콘솔의 워크플로 페이지에서 크롤러를 시작해야 합니다. 자세한 내용은 크롤러 실행이 완료될 때 AWS Glue 워크플로를 사용하여 작업을 자동으로 시작하려면 어떻게 해야 하나요?를 참조하세요.
해결 방법
다음 단계를 완료하기 전에 다음 사항을 반드시 확인하세요.
- AWS Glue 추출, 전환, 적재(ETL) 작업.
- AWS Glue 크롤러.
- AWS Glue 작업을 실행할 권한이 있는 Lambda의 AWS ID 및 액세스 관리(IAM) 역할. 예를 들어, AWSGlueServiceRole 정책이 연결된 Lambda에 대한 서비스 연결 역할을 설정합니다.
Lambda 함수 생성
1. Lambda 콘솔을 엽니다.
2. 함수 생성을 선택합니다.
참고: Lambda 함수가 없는 경우 시작하기 페이지가 나타납니다. 함수 생성을 선택한 후 다음 단계를 계속합니다.
3. 새로 작성이 선택되어 있는지 확인하고 다음 옵션을 구성합니다.
이름에 자신의 함수 이름을 입력합니다.
런타임에서 Python 옵션 중 하나를 선택합니다.
아키텍처의 경우 기본 옵션인 x86_64를 사용합니다.
역할의 경우 기본 실행 역할 변경에서 드롭다운을 선택하고 기존 역할 사용을 선택합니다.
기존 역할에서 AWS Glue 작업을 실행할 수 있는 권한이 있는 IAM 역할을 선택합니다.
4. 함수 생성을 선택합니다.
5. 함수 코드 섹션에 다음과 유사한 코드를 붙여넣습니다. MyTestJob을 AWS Glue ETL 작업의 이름으로 바꿔야 합니다.
# Set up logging
import 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
6. 코드 편집 UI의 상단에서 배포를 선택한 다음 테스트를 선택합니다.
7. AWS Glue 콘솔을 열고 작업이 시작되었는지 확인합니다.
EventBridge 규칙 생성
1. Amazon EventBridge 콘솔을 엽니다.
2. 탐색 창에서 규칙을 선택한 다음 규칙 생성을 선택합니다.
3. 규칙의 이름과 설명을 입력하고 다음을 선택합니다.
4. 이벤트 소스 및 Sample even****t에 기본값을 사용합니다. 이벤트 패턴 섹션에서 사용자 지정 패턴(JSON 편집기)을 선택합니다.
5. 다음 코드를 복사하여 이벤트 패턴 상자에 붙여넣습니다. MyTestCrawl을 AWS Glue 크롤러의 이름으로 바꿔야 합니다.
{
"detail-type": [
"Glue Crawler State Change"
],
"source": [
"aws.glue"
],
"detail": {
"crawlerName": [
"MyTestCrawl"
],
"state": [
"Succeeded"
]
}
}
6. 대상 선택 섹션에서 다음을 수행합니다.
대상에서 Lambda 함수를 선택합니다.
함수에서 Lambda 함수의 이름을 선택합니다.
7. 생성을 선택합니다.
Lambda 함수 및 EventBridge 규칙을 테스트하려면 AWS Glue 크롤러를 실행합니다. 그런 다음 AWS Glue ETL 작업의 기록 탭을 확인합니다. 실행 상태가 시작 중 또는 실행 중으로 표시되어야 합니다.
관련 정보
이벤트에 반응하는 Amazon EventBridge 규칙 생성