Cómo elegir un perfil de AWS al usar boto3 para conectarse a CloudFront
Estoy usando la biblioteca de python Boto 3 y quiero conectarme a AWS CloudFront. Necesito especificar el perfil de AWS correcto (Credenciales de AWS), pero mirando la documentación oficial, no veo manera de especificarlo.
Estoy inicializando el cliente usando el código:
client = boto3.client('cloudfront')
Sin embargo, esto resulta en el uso del perfil predeterminado para conectarse. No pude encontrar un método donde pueda especificar qué perfil usar.
3 answers
Creo que los documentos no son maravillosos exponiendo cómo hacer esto. Sin embargo, ha sido una característica soportada durante algún tiempo, y hay algunos detalles en esta solicitud de extracción . Así que hay tres maneras de hacer esto:
A) Crear una nueva sesión con el perfil
dev = boto3.session.Session(profile_name='dev')
B) Cambiar el perfil de la sesión predeterminada en code
boto3.setup_default_session(profile_name='dev')
C) Cambiar el perfil de la sesión predeterminada con una variable de entorno
$ AWS_PROFILE=dev ipython
>>> import boto3
>>> s3dev = boto3.resource('s3')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-13 07:58:55
Haga esto para usar un perfil con el nombre'dev':
session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-04 16:40:33
Esta sección de la documentación de boto3 es útil.
Esto es lo que funcionó para mí:
session = boto3.Session(profile_name='dev')
client = session.client('cloudfront')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-03 17:59:21