我正在争论是为我的 OpenSearch Python 客户端创建一个全局
boto3.Session
还是在每个端点的开头创建一个新会话。我无法在任何地方找到有关会话何时过期或是否过期的文档。每个 boto3.Session()
调用都会花费 50 毫秒到 100 毫秒的延迟,因此如果我可以创建一个全局调用并使其永不过期,那就太好了。任何指导将不胜感激。
上下文: 我已在公共子网上设置了负载平衡 Web 服务,以连接到私有子网中的 OpenSearch 集群,两者都位于同一 VPC 中。负载平衡 Web 服务是一个 FastAPI 应用程序。
除非您的凭据过期,否则
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"}