AWS 单会话还是多个会话?

Dee*_*mar 2 go amazon-web-services

我正在 AWS 云上托管的 Golang 中创建一个应用程序,该应用程序使用多种 AWS 服务,即 S3、DynamoDB、Parameter Store。

目前,处理每个 AWS 服务的各个模块都有自己的 AWS 会话。

awsSession, err := session.NewSession(&aws.Config{Region: aws.String(os.Getenv("AWS_REGION"))})
Run Code Online (Sandbox Code Playgroud)

从性能的角度来看,这是一种正确的方法,还是在主程序中创建单个会话并将引用传递给单个模块将是更好的方法?

use*_*510 7

如果可能的话,建议重用会话。

来自 AWS Go SDK文档

应尽可能缓存会话,因为创建新会话将从环境中加载所有配置值,并在每次创建会话时加载配置文件。在所有服务客户端之间共享会话值将确保配置加载次数尽可能最少。