J'ai un script python qui appelle l'API Amazon SES en utilisant boto3. Cela fonctionne quand je crée le client comme ceci client = boto3.client('ses')
et permet aux qualifications d'aws de venir de ~/.aws/credentials
, mais je voulais passer les aws_access_key_id
et aws_secret_access_key
dans le constructeur d'une manière ou d'une autre."TypeError: chaîne attendue, tuple trouvé" lors de la transmission des informations aws au constructeur du client amazon
Je pensais que je l'avais trouvé quelque part que dit qu'il était acceptable de faire quelque chose comme ça
client = boto3.client(
'ses',
aws_access_key_id=kwargs['aws_access_key_id'],
aws_secret_access_key=kwargs['aws_secret_access_key'],
region_name=kwargs['region_name']
)
mais lorsque je tente d'envoyer un e-mail, il me dit qu'il ya un TypeError: sequence item 0: expected string, tuple found
quand il essaie de return '/'.join(scope)
au botocore/auth.py (line 276)
.
Je sais que c'est un peu long, mais j'espérais que quelqu'un a une idée de la façon dont je peux transmettre ces informations d'identification au client d'un endroit autre que le fichier de références aws. J'ai aussi la trace complète de la pile de l'erreur, si cela est utile, je peux le poster aussi bien. Je ne voulais tout simplement pas encombrer la question au départ.
Quelles sont les valeurs du 3 ' Les clés de kwargs? –
Les deux clés aws du même nom, puis 'us-east-1' pour la région – wpercy
Il est probablement tard, mais j'ai trouvé votre question à la recherche de la même erreur que vous aviez. Le problème était que j'ai laissé par erreur une virgule (,) après ma variable de paramètres ACCESS_KEY et que Python était, évidemment, l'interprétant comme un tuple, pas une chaîne. Supprimer la virgule l'a résolu (sans avoir besoin d'utiliser boto3.session –