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

Posted

技术标签:

【中文标题】将多个 AWS 资源设置为烧瓶应用程序对象的属性【英文标题】:Setting multiple AWS resources as attributes for flask app object 【发布时间】:2019-10-10 10:38:01 【问题描述】:

我正在开发集成了许多 AWS 服务的烧瓶应用程序,例如 SQSS3RedshiftRDS

为了在应用程序中使用这些资源,我正在做的事情如下。 创建烧瓶应用程序时,我将这些资源作为属性附加如下。

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

并运行应用程序。

每当我想在视图中使用这些资源时,我只需将 current_appflask globals 导入为 app 然后 @987654322 @ 等并调用这些 AWS 服务的相应 boto3 函数。

我想知道的是,这是更好的方法还是有其他有效的方法。

【问题讨论】:

【参考方案1】:

这是一个很好的方法,

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

【讨论】:

以上是关于将多个 AWS 资源设置为烧瓶应用程序对象的属性的主要内容,如果未能解决你的问题,请参考以下文章