Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

한 번에 여러 트리거의 세부 정보를 얻기 위해 Boto3를 사용하는 방법은 무엇입니까?

<시간/>

문제 설명 − Python에서 boto3 라이브러리를 사용하여 계정에서 사용할 수 있는 트리거를 가져옵니다. 예를 들어 계정에서 허용되는 트리거의 세부정보를 가져옵니다.

이 문제를 해결하기 위한 접근 방식/알고리즘

1단계 − boto3 및 botocore 예외를 가져와 예외를 처리합니다.

2단계 − 이 기능에는 매개변수가 필요하지 않습니다. 사용자 계정에 대해 나열된 모든 트리거를 가져온 다음 각 트리거의 메타데이터를 표시합니다.

3단계 − boto3 라이브러리를 사용하여 AWS 세션을 생성합니다. region_name이 기본 프로필에 언급되어 있는지 확인하십시오. 언급되지 않은 경우 세션을 생성하는 동안 region_name을 명시적으로 전달하십시오.

4단계 − 글루용 AWS 클라이언트를 생성합니다.

5단계 − 이제 list_triggers 함수를 사용하여 사용자 계정에 나열된 모든 작업을 가져옵니다.

6단계batch_get_triggers 호출 그리고 이전 함수에서 가져온 작업 이름을 전달합니다.

7단계list_of_triggers를 반환합니다. 및 각 트리거의 메타데이터.

8단계 − 작업을 확인하는 동안 문제가 발생한 경우 일반 예외를 처리합니다.

예시

다음 코드를 사용하여 사용자 계정에 나열된 각 트리거의 세부 정보를 가져옵니다 -

botocore.exceptions에서 boto3 가져오기 import ClientErrordef get_resource_maetadata_of_triggers():session =boto3.session.Session() glue_client =session.client('glue') 시도:list_of_triggers =glue_client.list_triggers() 응답 =glue_client.triggers(Triggers) list_of_triggers['TriggerNames']) list_of_triggers, 응답을 e로 ClientError 제외하고 응답:raise Exception( "boto3 client error in get_resource_maetadata_of_triggers:" + e.__str__()) 예외로 e:raise Exception( "get_resource_maetadata_of에서 예기치 않은 오류:" + e.__str__())a, b =get_resource_medat_of_triggers()#트리거 목록print(a)#각 Triggersprint(b)의 리소스 메타데이터

출력

[ '01_PythonShellTest1', 'NextToken':트리거 #List { 'TriggersNames'
 '를 eyJleHBpcmF0aW9uIjp7InNlY29uZHMiOjE2MTQxNzE2OTksIm5hbm9zIjo1MTYwMDAwMDB9LCJsYXN0RXZhbHVzFiMzAzNzAxMzRmNDk3NWM3M2MyMjhjYTk5MDgzZTA3YjQ0ZWEyOTZlIn19fQ ==' 'ResponseMetadata'{ 'RequestID가' '5d3eb19a-41f5-b24e-2d59ed9664b5', 'HTTPStatusCode' :200, 'HTTPHeaders':{'date':'Tue, 23 Feb 202113:01:39 GMT', 'content-type':'application/x-amz-json-1.1', 'contentlength':'1134' , 'connection':'keep-alive', 'x-amzn-requestid':'5d3eb19a-41f5-b24e-2d59ed9664b5'}, 'RetryAttempts':0}}#각 트리거의 리소스 메타데이터{'트리거':[{ '이름':'01_PythonShellTest1', 'WorkflowName':'arn:aws:iam::1234:role/dev-edl, 'ID':'문자열', '유형':'문자열', '상태':'생성 중 '|'생성됨'|'활성화 중'|'활성화됨'|'비활성화 중'|'비활성화됨'|'삭제 중'|'업데이트 중', '설명':'문자열', '일정':'문자열'}]}