[英]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.