Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Boto3로 AWS Glue Data Catalog에서 트리거 세부 정보 조회하는 방법

이 글에서는 Boto3 라이브러리를 사용해 AWS Glue Data Catalog에 등록된 특정 트리거의 세부 정보를 조회하는 방법을 알아봅니다.

예제 개요

사용자 계정에서 허용된 트리거 중 '01_PythonShellTest1'이라는 이름을 가진 트리거의 상세 정보를 가져오는 것이 목표입니다.

문제 해결 접근 방식

  • 1단계: 예외 처리를 위해 boto3botocore의 예외 모듈을 임포트합니다.

  • 2단계: trigger_name은 이 함수의 필수 파라미터입니다. 해당 함수는 사용자 계정에서 지정된 트리거의 세부 정보를 조회한 후 메타데이터를 반환합니다.

  • 3단계: boto3 라이브러리를 사용하여 AWS 세션을 생성합니다. 기본 프로필에 region_name이 설정되어 있는지 확인하고, 설정되어 있지 않다면 세션 생성 시 명시적으로 리전 이름을 전달해야 합니다.

  • 4단계: glue 서비스를 위한 AWS 클라이언트를 생성합니다.

  • 5단계: get_trigger 함수를 호출하고 trigger_name을 Name 파라미터로 전달합니다.

  • 6단계: 함수는 지정된 트리거의 상세 정보를 반환합니다.

  • 7단계: 작업 확인 중 문제가 발생하면 일반 예외(generic exception)를 처리합니다.

예제 코드

아래 코드는 사용자 계정에 등록된 트리거의 세부 정보를 조회합니다.

import boto3
from botocore.exceptions import ClientError

def get_resource_metadata_of_trigger(trigger_name):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.get_trigger(Name=trigger_name)
        return response
    except ClientError as e:
        raise Exception("boto3 client error in get_resource_metadata_of_trigger: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in get_resource_metadata_of_trigger: " + e.__str__())

a = get_resource_metadata_of_trigger('01_PythonShellTest1')
print(a)

실행 결과

위 코드를 실행하면 다음과 같이 트리거의 메타데이터가 출력됩니다.

{'Triggers': [{'Name': '01_PythonShellTest1', 'WorkflowName': 'arn:aws:iam::1234:role/dev-edl', 'Id': 'string', 'Type': 'SCHEDULED'|'CONDITIONAL'|'ON_DEMAND', 'State': 'CREATING'|'CREATED'|'ACTIVATING'|'ACTIVATED'|'DEACTIVATING'|'DEACTIVATED'|'DELETING'|'UPDATING', 'Description': 'string', 'Schedule': 'string'}]}

반환되는 결과에는 트리거 이름, 워크플로우 ARN, 트리거 유형(SCHEDULED, CONDITIONAL, ON_DEMAND), 현재 상태(CREATING, CREATED, ACTIVATED 등), 설명 및 스케줄 정보가 포함됩니다. 이를 통해 트리거의 구성과 운영 상태를 손쉽게 확인할 수 있습니다.