내용으로 건너뛰기

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

3분 분량
0

크롤러 실행이 완료되면 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 함수 생성

다음 단계를 완료하십시오.

  1. Lambda 콘솔을 엽니다.
  2. 함수 생성을 선택합니다.
  3. 함수 생성 페이지에서 다음 정보를 입력합니다.
    새로 작성을 선택합니다.
    **Function name(함수 이름)**에 함수의 이름을 입력합니다.
    런타임에서 Python 옵션을 선택합니다.
    아키텍처의 경우 기본 옵션인 x86_64를 사용합니다.
    기본 실행 역할 변경실행 역할에서 기존 역할 사용을 선택합니다.
    기존 역할에서 AWS Glue 작업을 실행할 권한이 있는 IAM 역할을 선택합니다.
  4. 함수 생성을 선택합니다.
  5. 함수 세부 정보 페이지의 코드 소스에서 다음 코드를 입력합니다.
    # 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 작업의 이름으로 바꾸십시오.
  6. 코드 소스에서 테스트를 선택합니다.
  7. AWS Glue 콘솔을 열고 작업이 시작되었는지 확인합니다.

Lambda 함수를 테스트하려면 AWS Glue 크롤러를 실행하십시오. 그런 다음, AWS Glue ETL 작업의 작업 실행 리소스 목록을 확인합니다. 실행 상태시작 중 또는 실행 중으로 표시됩니다.

EventBridge 규칙 생성

다음 단계를 완료하십시오.

  1. EventBridge 콘솔을 엽니다.
  2. 탐색 창에서 규칙를 선택한 다음, 규칙 생성을 선택합니다.
  3. 규칙의 이름과 설명을 입력하고 다음을 선택합니다.
  4. 이벤트 소스샘플 이벤트에 기본값을 사용합니다.
  5. 이벤트 패턴 섹션에서 사용자 지정 패턴(JSON 편집기)을 선택합니다.
  6. 이벤트 패턴 필드에 다음 코드를 입력합니다.
    {
        "detail-type": [
            "Glue Crawler State Change"
        ],
        "source": [
            "aws.glue"
        ],
        "detail": {
            "crawlerName": [
                "MyTestCrawl"
            ],
            "state": [
                "Succeeded"
            ]
        }
    }
    참고: MyTestCrawl을 AWS Glue 크롤러의 이름으로 바꾸십시오.
  7. 대상 선택에 다음 정보를 입력합니다.
    대상에서 Lambda 함수를 선택합니다.
    함수에서 Lambda 함수를 선택합니다.
  8. 생성을 선택합니다.

Lambda 함수 및 EventBridge 규칙을 테스트하려면 AWS Glue 크롤러를 실행하십시오. 그런 다음, AWS Glue ETL 작업의 작업 실행 리소스 목록을 확인합니다. 실행 상태시작 중 또는 실행 중으로 표시됩니다.

관련 정보

Amazon EventBridge에서 이벤트에 반응하는 규칙 생성

AWS 공식업데이트됨 9달 전