一群帮助者成功地运行了Heroku上的金字塔。
pyramid_heroku的Python项目详细描述
简介
它提供以下功能:
- ClientAddrtween将实际用户的IP设置为request.client_addr
- HerokuappAccesst拒绝访问应用程序的 <app>.herokuapp.com任何未列入白名单的IP的域。
- migrate.py用于在上自动运行alembic迁移的脚本 部署。
安装
只要做
pip install pyramid_heroku
或
easy_install pyramid_heroku
兼容性
金字塔heroku运行时金字塔>;=1.7,python>;=3.6。 其他版本也可以工作。
文档
tweens的用法示例:
def main(global_config, **settings):$ cat .heroku/release.sh config = Configurator(settings=settings) config.include('pyramid_heroku.client_addr') config.include('pyramid_heroku.herokuapp_access') return config.make_wsgi_app()
金字塔的访问权限取决于 需要列出白名单的IP地址 在金字塔heroku.herokuapp_白名单设置中。
自动Alembic迁移脚本的用法示例:
$ cat .heroku/release.sh #!/usr/bin/env bash set -e echo "Running migrations" python -m pyramid_heroku.migrate my_app etc/production.ini echo "DONE!"
要使迁移脚本工作,需要设置MIGRATE_API_SECRET_HEROKU 赫鲁库的环境变量。这允许迁移脚本使用heroku api。
有关更多示例,请参见测试。
如果使用structlog,请将以下配置设置添加到ini文件以启用类似structlog的日志记录:
pyramid_heroku.structlog = true
释放
- 更新changes.rst。
- 更新setup.py版本。
- 运行pipenv run python setup.py check -rs。
- 运行pipenv run python setup.py sdist upload。
0.6.0
- 更新如何在migrate.py中调用alembic。这是为了反映 金字塔延迟的最新更改: https://github.com/niteoweb/pyramid_deferred_sqla/commit/b963702cab3934116fb00b6ef186959bc1627026 [左坡]
0.5.0
- Prefer empty string than None. {‘VAL’: ‘${VAR}’} will expand into {‘VAL’: ‘’} instead of {‘VAL’: None} if the value of VAR is not exported or is an empty string. [sayanarijit]
- To enforce that $VAR must be set, ${VAR:?custom error message} syntax can be used. [sayanarijit]
0.4.0
- Supports bash style environment variable expansion. e.g. to declare default value, use ${DATABASE_URL:-sqlite:///database.db} [sayanarijit]
0.3.2
- Shell now prints stderr/stdout even on non-zero exit code. [iElectric]
0.3.1
- Fix auth bug in migrate.py. [zupo]
0.3
- Drop support for zc.buildout environments. [zupo]
0.2
- 展开设置字典中的所有环境变量。这让你 例如,让${database_url}从 环境到您的production.ini文件中。 [左坡]
- 使用pipenv设置开发。 [左坡]
- 添加基本类型提示。 [左坡]
- 放弃对3.7以前的python版本的支持。 [左坡]
0.1.5
- 棕色袋子释放。 [卡兰丹]
0.1.4
- 修复migrate.shell中的返回值。子流程。检查输出 python 3.6现在返回byte而不是str。 [卡兰丹]
0.1.3
- 为migrate.py-https://github.com/niteoweb/pyramid_heroku/issues/2提供了默认值 [恩基杜兰]
0.1.2
- 无法直接设置request.client_addr,因此我们需要绕行。 [左坡]
0.1.1
- 修路。 [左坡]
0.1
- 初次发布。 [DZ0NY,祖波]