在没有 CLI 或 Web 的情况下切换 heroku 维护模式 UI
Toggle heroku maintenance mode without CLI or Web UI
我使用 Jenkins 运行 测试,然后使用 git 发布者插件部署到 Heroku。我想将我的部署夹在维护模式 ON/OFF 中,但不想在我的 jenkins 机器上安装 heroku toolbelt (reference)(我也不想访问 Web UI并手动切换维护模式)。我不想在 jenkins 上安装 heroku toolbelt,因为它增加了我需要对 jenkins 安装进行的自定义和配置,我想让我的 jenkins 实例尽可能一次性...由源代码驱动管道(Jenkinsfile)。
想法:
- 利用安装了 heroku toolbelt 的 docker 图像
- 利用为我完成的多构建包?
关于我如何实现这一点有什么建议或经验吗?
您可以使用 heroku 的平台 api 来执行此操作:
https://devcenter.heroku.com/articles/platform-api-reference#app-update
以下 curl 请求将使您的应用程序进入维护模式:
curl -n -X PATCH https://api.heroku.com/apps/$APP_ID_OR_NAME \
-d '{"maintenance": true}' \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.heroku+json; version=3"
-H "Authorization: Bearer <heroku token>
您只需要替换应用程序名称以及令牌。
您可以在本地使用 cli-oauth cli 插件生成 OAuth 令牌。
我使用 Jenkins 运行 测试,然后使用 git 发布者插件部署到 Heroku。我想将我的部署夹在维护模式 ON/OFF 中,但不想在我的 jenkins 机器上安装 heroku toolbelt (reference)(我也不想访问 Web UI并手动切换维护模式)。我不想在 jenkins 上安装 heroku toolbelt,因为它增加了我需要对 jenkins 安装进行的自定义和配置,我想让我的 jenkins 实例尽可能一次性...由源代码驱动管道(Jenkinsfile)。
想法:
- 利用安装了 heroku toolbelt 的 docker 图像
- 利用为我完成的多构建包?
关于我如何实现这一点有什么建议或经验吗?
您可以使用 heroku 的平台 api 来执行此操作: https://devcenter.heroku.com/articles/platform-api-reference#app-update
以下 curl 请求将使您的应用程序进入维护模式:
curl -n -X PATCH https://api.heroku.com/apps/$APP_ID_OR_NAME \
-d '{"maintenance": true}' \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.heroku+json; version=3"
-H "Authorization: Bearer <heroku token>
您只需要替换应用程序名称以及令牌。 您可以在本地使用 cli-oauth cli 插件生成 OAuth 令牌。