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')