heroku releases
アプリケーション指定 | 必要 |
---|---|
オプション引数 | なし |
heroku releasesは、リリースの管理を行うためのコマンドです。サブコマンドなしでコマンドを実行すると、そのアプリケーションのリリースの一覧が表示されます。
リリースには以下のものが含まれます。
- デプロイ(git push)
- 環境変数の変更
- Add-onの追加/削除
$ heroku releases -a codezine-sample === codezine-sample Releases v25 Add papertrail:choklad add-on xxxx@example.com 2014/11/13 11:24:50 v24 Deploy f29143d xxxx@example.com 2014/11/13 11:19:58 v23 Deploy e241f02 xxxx@example.com 2014/11/01 22:40:55 v22 Deploy dfcc1d5 xxxx@example.com 2014/11/01 18:19:04 v21 Deploy fddafbc xxxx@example.com 2014/11/01 18:10:47 v20 Deploy eec5b1c xxxx@example.com 2014/11/01 17:50:08 v19 Deploy 890af46 xxxx@example.com 2014/11/01 17:48:08 v18 Attach HEROKU_POSTGRESQL_CHARCOAL reso.. xxxx@example.com 2014/10/26 21:38:08 v17 Set DATABASE_URL config vars xxxx@example.com 2014/10/26 21:38:08
heroku [releases:]rollback
アプリケーション指定 | 必要 |
---|---|
引数 | [リリースバージョン] |
オプション引数 | なし |
heroku rollbackは、アプリケーションのバージョンを任意のリリースバージョンに戻すためのコマンドです。
引数には「v42」のようにheroku releasesコマンドで表示されるバージョン番号を指定します。省略時には1つ前のバージョンに戻ります。
このリリース管理の機能は、オンプレミスやIaaSにはないHerokuの大きなアドバンテージの1つです。筆者も過去に何度かこのコマンドでリリースの取り消しを行ったことがあります。ただし、不測の事態の際にあわてないように、あらかじめコマンドの動作を確認しておくことをお勧めします。
heroku maintenance
アプリケーション指定 | 必要 |
---|---|
オプション引数 | なし |
heroku maintenanceは、アプリケーションをメンテナンスモードにするためのコマンドです。アプリケーションをメンテナンスモードにした場合、Web Dynoへのブラウザからのアクセスはすべて遮断され、代わりにメンテナンス中のアナウンスページが表示されます(このページは環境変数「MAINTENANCE_PAGE_URL」によって変更できます)。
サブコマンドを指定せずに実行した場合には、現在メンテナンスモードとなっているかどうかが表示されます。状態を変更する場合には、maintenance:onあるいはmaintenance:offサブコマンドを使用します。
heroku run
アプリケーション指定 | 必要 |
---|---|
オプション引数 | なし |
heroku runコマンドはOne off Dynoを生成して、その上で指定のUNIXコマンドを実行します。
このコマンドでもっとも頻繁に実行するUNIXコマンドは「bash」です。Dyno上でbashを実行することで、そのDynoのシェルに入って対話的にコマンドを実行することができます。
$ heroku run bash app$ ls ...
Dynoのシェルに入ることによって、slugコンパイルした結果がどのようにDynoに格納されているかなどを知ることができます。特に、「ローカルでは実行できているのにHeroku上ではエラーになる」といった問題が発生した場合の原因調査に役立ちます。
なお、ここで実行されるDynoはあくまでこのrunコマンドによって生成された一時的なDyno(One off Dyno)です。Webリクエストを処理しているWeb Dynoとは異なるインスタンスであることに注意してください。
これ以外にもheroku runコマンドには、
- rakeで作成したタスクを実行する
- スケジューラ用に用意したスクリプトの動作確認をする
などの用途があります。
heroku sharing
アプリケーション指定 | 必要 |
---|---|
オプション引数 | なし |
heroku sharingは、アプリケーションを複数人で開発する場合のコラボレータの設定を行うためのコマンドです。
サブコマンドなしで実行した場合には、コラボレータの一覧が表示されます。
heroku sharing:add
アプリケーション指定 | 必要 |
---|---|
引数 | コラボレータとするユーザのメールアドレス |
オプション引数 | なし |
heroku sharing:addは、コラボレータを追加するためのコマンドです。引数で指定したメールアドレスのユーザが、コラボレータとして追加されます。
コラボレータとなったユーザは、アプリケーションの削除や有償Add-onの追加といった一部のセンシティブなコマンドを除く、ほとんどのコマンドをアプリケーションに対して発行できます。
heroku sharing:remove
アプリケーション指定 | 必要 |
---|---|
引数 | コラボレータから削除するユーザのメールアドレス |
オプション引数 | なし |
heroku sharing:removeは、コラボレータを削除するためのコマンドです。
コラボレータでなくなったユーザは以降、そのアプリケーションに対して一切のコマンドを発行できなくなります。
heroku sharing:transfer
アプリケーション指定 | 必要 |
---|---|
引数 | オーナーを移管するユーザのメールアドレス |
オプション引数 | なし |
heroku sharing:transferは、アプリケーションのオーナー権限を他者に移管するためのコマンドです。
オーナー権限を移管するためには、そのユーザがあらかじめコラボレータになっている必要があります。
なお、このコマンドではDynoやAdd-onの課金対象も変更になるため、実際のオーナー変更は移管を受けたユーザがそれをアクセプトするまで、移管は行われません。
heroku addons
アプリケーション指定 | 必要 |
---|---|
オプション引数 | なし |
heroku addonsは、Add-onを操作するためのコマンドです。サブコマンドなしで実行した場合には、アプリケーションに追加されているAdd-onのリストが表示されます。
heroku addons:add
アプリケーション指定 | 必要 |
---|---|
引数 | Add-on名 |
オプション引数 | なし |
heroku addons:addは、Add-onを追加するためのコマンドです。通常、Add-onにはいくつかのプランがあり、正確に指定する場合は「
プランの指定が省略された場合には、最もグレードの低いプランが追加されます。
heroku addons:remove
アプリケーション指定 | 必要 |
---|---|
引数 | Add-on名 |
オプション引数 | なし |
heroku addons:removeは、Add-onを追加するためのコマンドです。
heroku addons:open
アプリケーション指定 | 必要 |
---|---|
引数 | Add-on名 |
オプション引数 | なし |
heroku addons:openは、ブラウザでAdd-onの管理画面を開くためのコマンドです。
WebコンソールからAdd-onの管理画面を開く場合、アプリケーション選択から何度かの画面遷移が必要ですが、このコマンドを使用すると一発で管理画面を開けるので便利です。
heroku help
アプリケーション指定 | 不要 |
---|---|
引数 | [COMMAND] |
heroku helpは、コマンドヘルプを表示するコマンドです。引数なしで実行することで、完全なコマンド一覧を参照することができます。また、
$ heroku help ps:scale
のようにコマンド名を指定して実行することで、各コマンドのヘルプを参照することができます。
おわりに
今回は、筆者の経験則から日常的によく使用するコマンドを紹介しました。日本語でのHerokuコマンドリファレンスはほとんどないので、それなりに有益ではないかと思います。
これらのコマンドはこの先の連載でも何度となく使うことになるはずです。
次回は、スケールアウト(Dyno複数台での運用)に対応するために使用するAdd-onの「Memcached」を紹介します。