문제 설명 − Python에서 boto3 라이브러리를 사용하여 모든 데이터베이스의 정의를 검색합니다.
예 − 모든 데이터베이스의 정의를 검색합니다.
이 문제를 해결하기 위한 접근 방식/알고리즘
1단계 − boto3 및 botocore 예외를 가져와 예외를 처리합니다.
2단계 − 매개변수가 없습니다.
3단계 − boto3 라이브러리를 사용하여 AWS 세션을 생성합니다. region_name이 기본 프로필에 언급되어 있는지 확인하십시오. 언급되지 않은 경우 세션을 생성하는 동안 region_name을 명시적으로 전달하십시오.
4단계 − 글루용 AWS 클라이언트를 생성합니다.
5단계 − 이제 get_databases를 사용하세요. 기능.
6단계 − 사용자 계정에 있는 모든 데이터베이스의 정의를 반환합니다.
7단계 − 작업을 확인하는 동안 문제가 발생한 경우 일반 예외를 처리합니다.
예시
다음 코드를 사용하여 모든 데이터베이스의 정의를 검색하십시오 -
import boto3 from botocore.exceptions import ClientError def retrieves_all_database_details() session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_databases() return response except ClientError as e: raise Exception("boto3 client error in retrieves_all_database_details: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in retrieves_all_database_details: " + e.__str__()) print(retrieves_all_database_details())
출력
{'DatabaseList': [ {'Name': 'QA-test', 'CreateTime': datetime.datetime(2020, 11, 18, 14, 24, 46, tzinfo=tzlocal())}, {'Name': 'custdb', 'CreateTime': datetime.datetime(2020, 8, 31, 20, 30, 9, tzinfo=tzlocal())}, {'Name': 'default', 'Description': 'Default Hive database', 'LocationUri': 'hdfs://ip- ************.ec2.internal:****/user/hive/warehouse', 'CreateTime': datetime.datetime(2018, 5, 25, 16, 4, 54, tzinfo=tzlocal())},'NextToken': 'eyJsYXN0RXZhbHVhdGVkS2V5Ijp7IkhBU0hfS0VZIjp7InMiOiJuLjc4MjI1ODQ4NTg0MSJ 9LCJSQU5HRV9LRVkiOnsicyI6InN************Mjk3NywibmFub3MiOjIyNTA********* **NvbnRleHQiOmZhbHNlfQ==', 'ResponseMetadata': {'RequestId': 'fa0a2069-***********-a0617', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 12:49:37 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '25749', 'connection': 'keep-alive', 'x-amzn-requestid': 'fa0a2069-************a0617'}, 'RetryAttempts': 0}}