[英]Boto3 - How to keep session alive
我有一个应该永远运行的进程,需要更新 AWS 上 S3 存储桶上的数据。 我正在使用 boto3 初始化 session:
session = boto3.session.Session()
my_s3 = session.resource(
"s3",
region_name=my_region_name,
aws_access_key_id=my_aws_access_key_id,
aws_secret_access_key=my_aws_secret_access_key,
aws_session_token=my_aws_session_token,
)
由于该过程应该运行数天,我想知道如何确保 session 保持活跃和工作。 有时我需要重新初始化 session 吗?
注意:不确定它是否有用,但我实际上有多个线程,每个线程都使用自己的 session。
谢谢!
没有“会话”的概念。 Session()
只是一个内存中的 object,其中包含有关如何连接到 AWS 的信息。
在执行操作(例如ListBuckets
)之前,它实际上并不涉及对 AWS 的任何调用。 操作是 RESTful 的,并立即返回结果。 他们不保持打开连接。
通常不需要Session
。 如果您已使用 AWS CLI aws configure
命令将 AWS 凭证存储在配置文件中,则可以简单地使用:
import boto3
s3_resource = boto3.resource('s3')
但是,如果您使用Session
AssumeRole()
命令返回的临时凭证而不是永久凭证,则 Session 很有用。 在这种情况下,请注意 AWS Security Token Service (STS) 返回的凭证(例如AssumeRole()
有时间限制。 但是,这与 boto3 Session
的概念无关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.