heroku通过新API重启

时间:2013-09-14 12:45:26

标签: heroku

我有点困惑,因为在heroku API中曾经有一个方法来重启应用程序的进程。 现在这个API似乎已被弃用,所有链接都指向https://devcenter.heroku.com/articles/platform-api-reference,我找不到任何有关重启的信息(即使是单词restart本身)。

有人可以对此有所了解吗?我相信这是显示日志,它是开发人员最重要的API命令之一,因为你可以通过heroku webui完成大部分其他任务。

3 个答案:

答案 0 :(得分:4)

您可以使用heroku platform-api执行此操作。有一个dyno重启方法for the api.。以下是如何处理rake任务的示例。

首先,您需要设置凭据。从您的开发机器

$ heroku plugins:install heroku-cli-oauth

然后

$ heroku authorizations:create -d "Platform API token"

这将输出许多字段,包括令牌字段。制作令牌值的副本,比如它是abc-def。然后

heroku config:set OAUTH_TOKEN=abc-def

在生产计算机上设置OAUTH_TOKEN值。 您的rake任务可能如下所示:

  desc 'heroku_restart'
  task heroku_restart: :environment do
    heroku = PlatformAPI.connect_oauth(ENV['OAUTH_TOKEN'])
    dynos =  heroku.dyno.list(ENV['HEROKU_APP_NAME'])
    heroku.dyno.restart(ENV['HEROKU_APP_NAME'], dynos[0]['name'])
  end

这将重启dynos列表中的第一个dyno。现在提交此更改并部署到生产环境,您的rake任务已准备就绪。

答案 1 :(得分:1)

您必须使用Dyno删除:https://devcenter.heroku.com/articles/platform-api-reference#dyno-delete

如果删除一次性dyno,它将不会重新启动,如果它在地层中定义,它将重新启动。

我们会改进文档,谢谢你指出这个遗漏。

答案 2 :(得分:0)

这通过终端对我有用(您需要先安装 Heroku CLI);

curl -n -X DELETE https://api.heroku.com/apps/<your app name/id>/dynos -H "Content-Type: application/json" -H "Accept: application/vnd.heroku+json; version=3"