带aws lambda+api网关的无服务器烧瓶
flask-zappa的Python项目详细描述
AWS Lambda+API网关上的无服务器烧瓶
烧瓶Zappa带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存储桶(必须已经创建)。这些可以被命名为 任何你喜欢的,但是你可能希望有独立的dev,staging 以及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”分支。
现在需要工作的事情:
- 一切!
- 测试!
- 反馈!
- 真正的文档/网站!