在我的 FastAPI 应用程序中将 boto3.Session 创建放在哪里?

问题描述 投票:0回答:1

我正在争论是为我的 OpenSearch Python 客户端创建一个全局

boto3.Session
还是在每个端点的开头创建一个新会话。我无法在任何地方找到有关会话何时过期或是否过期的文档。每个
boto3.Session()
调用都会花费 50 毫秒到 100 毫秒的延迟,因此如果我可以创建一个全局调用并使其永不过期,那就太好了。任何指导将不胜感激。

上下文: 我已在公共子网上设置了负载平衡 Web 服务,以连接到私有子网中的 OpenSearch 集群,两者都位于同一 VPC 中。负载平衡 Web 服务是一个 FastAPI 应用程序。

amazon-web-services boto3 fastapi amazon-ecs opensearch
1个回答
0
投票

除非您的凭据过期,否则

boto3.Session
不会过期。因此,维持一场全球会议绝对有意义。

我不确定您的代码是如何构造的,但您可以在下面找到一个基本示例:

from fastapi import FastAPI
import boto3

app = FastAPI()

session = boto3.Session() # ← global reusable boto3 session

@app.get("/some-endpoint")
def some_endpoint():
    client = session.client('opensearch')
    # ...
    return {"message": "Success"}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.