Estoy usando la biblioteca de Python de Boto 3 y quiero conectarme a AWS CloudFront. Necesito especificar el perfil de AWS correcto (credenciales de AWS), pero al mirar la documentación oficial, no veo forma de especificarlo.
Estoy inicializando al cliente usando el código:
client = boto3.client('cloudfront')
Sin embargo, esto hace que use el perfil predeterminado para conectarse. No pude encontrar un método donde pueda especificar qué perfil usar.
python
amazon-web-services
boto3
Nader A. Jabbar
fuente
fuente
client = boto3.client('s3', aws_access_key_id = '<access-key>', aws_secret_access_key = '<secret-key>')
Respuestas:
Creo que los documentos no son maravillosos para exponer cómo hacer esto. Sin embargo, ha sido una función admitida durante algún tiempo, y hay algunos detalles en esta solicitud de extracción .
Entonces, hay tres formas diferentes de hacer esto:
Opción A) Crear una nueva sesión con el perfil
Opción B) Cambiar el perfil de la sesión predeterminada en el código
Opción C) Cambiar el perfil de la sesión predeterminada con una variable de entorno
fuente
dev.client('s3')
lugar deboto3.client('s3')
ipython
también fue útil para mí.boto3.session.Session().available_profiles
- es una lista. Luego usa el que quieras @ jordan-phillips.Haga esto para usar un perfil con el nombre 'dev':
fuente
Esta sección de la documentación de boto3 es útil.
Esto es lo que funcionó para mí:
fuente
Simplemente agregue el perfil a la configuración de la sesión antes de la llamada del cliente.
boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')
fuente