我在AWS云上托管的Golang中创建一个应用程序,它使用多个AWS服务,即S3,DynamoDB,Parameter Store。
目前处理每个AWS服务的各个模块都有自己的AWS会话。
awsSession, err := session.NewSession(&aws.Config{Region: aws.String(os.Getenv("AWS_REGION"))})
从性能角度来看,这是一种正确的方法,或者在主程序中创建单个会话并将引用传递给单个模块将是更好的方法吗?
答案 0 :(得分:1)
如果可能,建议重复使用会话。
来自AWS Go SDK docs:
应尽可能缓存会话,因为创建新会话 Session将从环境加载所有配置值,并且 每次创建会话时配置文件。共享会话 所有服务客户端的值都将确保配置 加载次数最少。