0

我有一个使用 boto3 调用 Amazon SES api 的 python 脚本。当我像这样创建客户端client = boto3.client('ses')并允许 aws 凭据来自时它可以工作~/.aws/credentials,但我想以某种方式将aws_access_key_idand传递aws_secret_access_key给构造函数。

我以为我找到了某个地方说做这样的事情是可以接受的

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

但是当我尝试发送电子邮件时,它告诉我TypeError: sequence item 0: expected string, tuple found它尝试return '/'.join(scope)botocore/auth.py (line 276).

我知道这有点远,但我希望有人知道如何将这些凭据从 aws 凭据文件以外的其他地方传递给客户端。我也有来自错误的完整堆栈跟踪,如果这有帮助,我也可以发布它。我只是不想一开始就混淆这个问题。

4

1 回答 1

2

您需要在别处配置连接信息,然后使用以下方式连接:

client = boto3.client('ses', AWS_REGION)

另一种方法,使用Session可以这样完成:

from boto3.session import Session

# create boto session
session = Session(
        aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
        aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
        region_name=settings.AWS_REGION
    )

# make connection
client =session.client('s3')
于 2015-09-11T18:20:38.870 回答