Amazon web services Boto3会话获取\ U凭据()未返回令牌

Amazon web services Boto3会话获取\ U凭据()未返回令牌,amazon-web-services,boto3,Amazon Web Services,Boto3,我的应用程序需要使用AWS v4身份验证,并且我能够更早地检索令牌。现在它返回None: session=boto3.session() 凭证=会话。获取凭证()。获取冻结的凭证() ACCESS\u KEY\u ID=凭证。ACCESS\u KEY ACCESS\u SECRET\u KEY=credentials.SECRET\u KEY 会话_令牌=凭据.令牌#不工作 region=session.region\u名称 打印(f'SESSION_TOKEN:{SESSION_TOKEN}'

我的应用程序需要使用AWS v4身份验证,并且我能够更早地检索令牌。现在它返回
None

session=boto3.session()
凭证=会话。获取凭证()。获取冻结的凭证()
ACCESS\u KEY\u ID=凭证。ACCESS\u KEY
ACCESS\u SECRET\u KEY=credentials.SECRET\u KEY
会话_令牌=凭据.令牌#不工作
region=session.region\u名称
打印(f'SESSION_TOKEN:{SESSION_TOKEN}')
输出:

SESSION_TOKEN: None
以下是我的本地配置文件的内容:

$cat~/.aws/凭证
[默认值]
aws\u访问\u密钥\u id=
aws\u密码\u访问\u密钥=

原因是什么以及如何检索令牌?

原因是您没有可用的凭据来源

调用
Session.get_credentials()
时,它会尝试从加载凭据,例如
$HOME/.aws
中的配置文件或EC2实例角色

当您能够检索令牌时,您运行的环境支持这些方法之一——很可能是EC2实例或Lambda函数。当你现在想做的时候——可能是从你的个人电脑上——你不会

解决此问题的方法是按照上面的链接在当前环境中配置凭据


使用凭据时,请注意并非所有凭据源都使用安全令牌。您应该为任何一种情况做好准备。

将我的本地凭据配置文件添加到问题中。我注意到它不包含
aws\u session\u令牌
,而您链接的文档中的示例包含。我应该添加这个吗?如果是,如何添加?@abk-不,正如我在上一段中所说,并不是所有凭据都使用安全令牌。您需要在代码中对此做好准备。看看您的另一个问题,如果您没有Elasticsearch构造函数,您将从Elasticsearch构造函数中省略
session\u token
参数。