J'utilise boto3 dans aws lambda pour fecth objet dans S3 situé dans la région de Francfort.Comment configurer le mécanisme d'autorisation en ligne avec boto3
v4 est nécessaire. sinon l'erreur suivante retournera
"errorMessage": "An error occurred (InvalidRequest) when calling
the GetObject operation: The authorization mechanism you have
provided is not supported. Please use AWS4-HMAC-SHA256."
moyens réalisés pour configurer signature_version http://boto3.readthedocs.org/en/latest/guide/configuration.html
Mais depuis que je suis en utilisant AWS lambda, je n'ai pas les profils d'accès à la configuration sous-jacente
Le code de ma fonction AWS lambda Est-ce possible de configurer signature_version dans ce code?
from __future__ import print_function
import boto3
def lambda_handler (event, context):
input_file_bucket = event["Records"][0]["s3"]["bucket"]["name"]
input_file_key = event["Records"][0]["s3"]["object"]["key"]
input_file_name = input_file_bucket+"/"+input_file_key
s3=boto3.resource("s3")
obj = s3.Object(bucket_name=input_file_bucket, key=input_file_key)
response = obj.get()
return event #echo first key valuesdf
Est-ce possible de configurer signature_version dans ce code? utilisez Session par exemple. Ou y a-t-il une solution de contournement?
Y at-il un moyen de configurer cela à partir d'un fichier? Je demande parce que j'utilise un morceau de code où 'boto3' est la dépendance, donc je n'ai pas d'accès direct pour changer l'appel' client() '. – bstempi
vous pouvez définir boto3.session.Session (nom_profil = 'profile1') où profile1 est le nom du profil défini dans le fichier .aws/credentials avec les clés AWS, les jetons, la région souhaitée et les autres paramètres nécessaires – omuthu
Que faire si je ne suis pas en utilisant les clés AWS et je me base plutôt sur le service de métadonnées de l'instance EC2? – bstempi