Python

[boto3] S3 event 알림 설정 확인

비번변경 2022. 11. 1. 17:06

개요

2022.10.11 - [aws cli] S3 event 알림 설정 확인에서 AWS CLI로 S3 이벤트 알림 설정 정보를 확인했다.  이번 글에서는 같은 일을 Python AWS SDK인 boto3을 이용해서 확인해보려고 한다. 필요한 권한은 모두 부여되어 있다고 가정한다.

 

 

 

자격 증명 확인

S3를 다루기 위한 자격 증명은 아래 함수로 얻을 수 있다. S3는 리전 구분을 하지 않으므로 region_name은 사용하지 않았다.

def get_session(profile_name=None):
    session = boto3.Session(profile_name=profile_name)
    return session


def get_client(aws_access_key_id=None, aws_secret_access_key=None,
               profile_name=None):
    # use aceess key
    if aws_access_key_id is not None:
        client = boto3.client('s3',
                              aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
    # use profile
    elif profile_name is not None:
        session = get_session(profile_name=profile_name)
        client = session.client('s3')
    # use default profile or EC2 role
    else:
        client = boto3.client('s3')

    return client

 

 

S3 event 알림 설정

get_bucket_notification_configuration 함수를 이용하면 S3 이벤트 알림 목록을 확인할 수 있다.

response = client.get_bucket_notification_configuration(Bucket=Bucket).get('QueueConfigurations')

비슷한 함수로 get_bucket_notification가 존재하는데, 이 함수는 deprecated 되었다.

 

결과

[
  {
    'Id': 'TEST',
    'QueueArn': 'arn:aws:sqs:us-west-2:000007530000:test',
    'Events': [
      's3:ObjectCreated:*'
    ],
    'Filter': {
      'Key': {
        'FilterRules': [
          {
            'Name': 'Prefix',
            'Value': 'server%3D10'
          }
        ]
      }
    }
  }
]

 

 

참고 문서

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html

 

 

728x90