将多个 AWS 资源设置为烧瓶应用程序对象的属性
Posted
技术标签:
【中文标题】将多个 AWS 资源设置为烧瓶应用程序对象的属性【英文标题】:Setting multiple AWS resources as attributes for flask app object 【发布时间】:2019-10-10 10:38:01 【问题描述】:我正在开发集成了许多 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
并运行应用程序。
每当我想在视图中使用这些资源时,我只需将 current_app 从 flask globals 导入为 app 然后 @987654322 @ 等并调用这些 AWS 服务的相应 boto3 函数。
我想知道的是,这是更好的方法还是有其他有效的方法。
【问题讨论】:
【参考方案1】:这是一个很好的方法,
因为在每个请求上重新创建新的服务连接可能会很昂贵 在执行 API 调用之前会自动处理在连接丢失/超时的情况下再次连接【讨论】:
以上是关于将多个 AWS 资源设置为烧瓶应用程序对象的属性的主要内容,如果未能解决你的问题,请参考以下文章
如何将烧瓶应用程序发送到 AWS Elastic Beanstalk?
您的 WSGIPath 引用了在 AWS Elastic Beanstalk 中上传烧瓶应用程序时不存在的文件
jac(jinja-assets-compressor)在 AWS elasticbeanstalk 上的烧瓶应用程序中不起作用