将多个 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 资源设置为烧瓶应用程序对象的属性的主要内容,如果未能解决你的问题,请参考以下文章

如何将烧瓶应用程序发送到 AWS Elastic Beanstalk?

您的 WSGIPath 引用了在 AWS Elastic Beanstalk 中上传烧瓶应用程序时不存在的文件

jac(jinja-assets-compressor)在 AWS elasticbeanstalk 上的烧瓶应用程序中不起作用

EC2 AWS 上的烧瓶

如何将 AWS 漂移堆栈资源恢复到预期状态

如何将领导者属性设置为 AWS Beanstalk 实例?