将多个 AWS 资源设置为烧瓶应用程序对象的属性



我正在开发集成了许多AWS服务的烧瓶应用程序,例如SQS,S3,Redshift,RDS等

为了在应用程序中使用这些资源,我正在做的是以下内容。 创建烧瓶应用程序后,我将这些资源附加为属性,如下所示。

def create_app():
application = Flask(__name__)
application.s3_service = **S3 resource created using boto3 library**
application.sqs_queue = **SQS queue resource created using boto3 library**
application.redshift = **Redshift resource created using boto3 library**
return application

并运行应用程序。

每当我想在视图中使用这些资源时,我只需将flask 全局变量中的current_app作为应用程序导入,然后app.s3_service等等,并调用这些 AWS 服务的相应boto3函数。

我想知道的是,这是更好的方法还是有其他有效的方法可以做到这一点。

这是一个很好的方法,

  • 因为在每个请求上重新创建新的服务连接可能很昂贵
  • 在执行 API 调用之前,在连接丢失/超时的情况下自动处理再次连接

最新更新