带aws lambda+api网关的无服务器烧瓶

flask-zappa的Python项目详细描述


AWS Lambda+API网关上的无服务器烧瓶

Logo烧瓶ZappaBuild Status带AWS的无服务器烧瓶 lambda+api网关

flask zappa使在aws上部署flask应用程序变得非常容易 lambda+api网关。将其视为您的“无服务器”Web主机 烧瓶应用程序。

这意味着:

  • 不再需要繁琐的web服务器配置!
  • 不再支付24/7服务器正常运行时间!
  • 不要再担心负载平衡/可伸缩性!
  • 不要再担心让服务器保持在线!
  • 不要再担心安全漏洞和补丁!

flask zappa手柄:

  • 将项目打包到lambda ready zip文件中并将其上载到 s3
  • 正确设置IAM角色和权限
  • 自动配置api网关路由、方法和集成 回答
  • 将api部署到不同的准备阶段

太棒了!

本项目为烧瓶专用集成。如果你感兴趣 如何在引擎盖下工作,您应该看看`zappa核心 库<;https://github.com/miserlou/zappa>;`\uuu,可由 任何与wsgi兼容的web框架和 `django zappa<;https://github.com/miserelou/django zappa>;`\uuu,其中 适用于django应用程序。

安装

$ pip install flask-zappa

配置

在部署 申请。首先,您必须将aws凭据存储在 ~/.aws/凭证'

最后,在本地设置文件中定义zappa_设置 将命名的部署环境映射到部署的设置和 S3存储桶(必须已经创建)。这些可以被命名为 任何你喜欢的,但是你可能希望有独立的devstaging 以及production环境,以便分离数据。

ZAPPA_SETTINGS={'production':{'s3_bucket':'production-bucket','settings_file':'~/Projects/MyApp/settings/production_settings.py',},'staging':{'s3_bucket':'staging-bucket','settings_file':'~/Projects/MyApp/settings/staging_settings.py',},}

请注意,每个环境都定义了设置文件的路径。这个 文件将用作server-side设置文件。特别是你 将要定义a new SECRET_KEY, 以及部署数据库信息。

关于数据库

因为zappa需求是从本地的捆绑版本调用的 环境而不是PIP,因为我们无法确定 我们的Zappa处理程序将在哪个平台上执行,我们需要 当然我们只使用便携软件包。所以,不用 默认的mysql引擎,我们需要使用 mysql python连接器

目前,zappa只支持rds上的mysql和aurora。

基本用法

初始部署

更新

管理层

高级用法

您可以在zappa_设置中定义其他设置 改变扎帕的行为。用这些你自己的风险!

ZAPPA_SETTINGS={'dev':{'aws_region':'us-east-1',# AWS Region (default US East),'deploy_delay':1,# Delay time while deploying, in seconds (default 1)'domain':'yourapp.yourdomain.com',# Required if you\'re using a domain'http_methods':['GET','POST'],# HTTP Methods to route,'integration_response_codes':[200,301,404,500],# Integration response status codes to route'method_response_codes':[200,301,404,500],# Method response status codes to route'parameter_depth':10,# Size of URL depth to route. Defaults to 5.'role_name':"MyLambdaRole",# Lambda execution Role's3_bucket':'dev-bucket',# Zappa zip bucket,'settings_file':'~/Projects/MyApp/settings/dev_settings.py',# Server side settings file location,'touch':False# GET the production URL upon initial deployment (default True)}}

待办事项

这个项目还很年轻,所以还有很多工作要做。 我们非常欢迎您的贡献!请在 提交修补程序,并将修补程序提交到“dev”分支。

现在需要工作的事情:

  • 一切!
  • 测试!
  • 反馈!
  • 真正的文档/网站!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
反射Java反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?