[python] boto3를 사용하여 CloudFront에 연결할 때 AWS 프로필을 선택하는 방법

Boto 3 Python 라이브러리를 사용 중이며 AWS CloudFront에 연결하려고합니다. 올바른 AWS 프로필 (AWS 자격 증명)을 지정해야하지만 공식 문서를 보면 지정할 방법이 없습니다.

코드를 사용하여 클라이언트를 초기화하고 있습니다.
client = boto3.client('cloudfront')

그러나 이로 인해 기본 프로필을 사용하여 연결하게됩니다. 사용할 프로필을 지정할 수있는 방법을 찾을 수 없습니다.



답변

나는 문서가 이것을하는 방법을 공개하는 데 훌륭하지 않다고 생각합니다. 하지만 한동안 지원되는 기능 이었지만이 풀 리퀘스트 에 몇 가지 세부 사항이 있습니다.

따라서이를 수행하는 세 가지 방법이 있습니다.

옵션 A) 프로필을 사용하여 새 세션 만들기

    dev = boto3.session.Session(profile_name='dev')

옵션 B) 코드에서 기본 세션의 프로필 변경

    boto3.setup_default_session(profile_name='dev')

옵션 C) 환경 변수를 사용하여 기본 세션의 프로필 변경

    $ AWS_PROFILE=dev ipython
    >>> import boto3
    >>> s3dev = boto3.resource('s3')


답변

이름이 ‘dev’인 프로필을 사용하려면 다음을 수행하십시오.

session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)


답변

boto3 문서 의이 섹션 이 유용합니다.

나를 위해 일한 것은 다음과 같습니다.

session = boto3.Session(profile_name='dev')
client = session.client('cloudfront')


답변

클라이언트 호출 전에 세션 구성에 프로필을 추가하기 만하면됩니다.
boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')


답변