跳转到主要内容

为在Heroku上成功运行Pyramid提供一系列助手。

项目描述

简介

pyramid_heroku 是一组用于在 Pyramid 上成功运行 Heroku 的中间件和助手

它提供以下功能

  • ClientAddr 中间件,将真实用户的 IP 设置为 request.client_addr

  • Host 中间件,将 request.host 设置为代理的 X-Forwarded-Host 标题(注意:潜在的安全风险)

  • HerokuappAccess 中间件,拒绝任何非白名单 IP 访问您的应用的 <app>.herokuapp.com 域名。

  • migrate.py 脚本,用于在部署时自动运行 alembic 迁移。

  • maintenance.py 脚本,用于控制 Heroku 维护模式。

安装

只需

pip install pyramid_heroku

或者

easy_install pyramid_heroku

兼容性

pyramid_heroku 与 pyramid>=1.7 和 python>=3.6 一起运行。其他版本也可能工作。

文档

中间件的用法示例

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()

pyramid_heroku.herokuapp_access 中间件依赖于 pyramid_heroku.client_addr 中间件,并且它要求您在 pyramid_heroku.herokuapp_whitelist 设置中列出白名单 IP。

pyramid_heroku.client_addr 中间件将请求的 client_addr 设置为我们可以信任的 IP。它通过 X-Forwarded-For 标题处理 IP 欺骗,并在使用 Cloudflare 反向代理时忽略 Cloudflare 的 IP。

自动 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!"

要使迁移脚本正常工作,您需要在 Heroku 中设置 MIGRATE_API_SECRET_HEROKU 环境变量。这允许迁移脚本使用 Heroku API。

在运行数据库迁移之前,如果应用尚未处于维护模式,脚本将启用 Heroku 维护模式。迁移后,只有当它由迁移脚本启用时,才会禁用维护模式。

也可以使用 pyramid_heroku.maintenance 脚本启用/禁用维护模式。

启用 Heroku 维护模式的用法示例

python -m pyramid_heroku.maintenance on my_app etc/production.ini

如果您使用 structlog,请将以下配置设置添加到您的 INI 文件中,以启用 structlog 类型的记录

pyramid_heroku.structlog = true

请参阅测试以获取更多示例。

发布

  1. 更新 CHANGES.rst。

  2. 更新 pyproject.toml 版本。

  3. 运行 poetry check

  4. 运行 poetry publish --build

我们在招聘!

在 Niteo,我们定期为开源社区做出贡献。如果您也是,我们邀请您加入我们的团队

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分发

pyramid_heroku-0.9.2.tar.gz (14.7 kB 查看哈希值)

上传时间

构建分发

pyramid_heroku-0.9.2-py3-none-any.whl (19.8 kB 查看哈希值)

上传时间 Python 3

由以下机构支持