簡體   English   中英

Boto3 - 如何保持 session 活着

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM