60

Heroku にデプロイされたアプリの追跡を有効にするために、 http: //www.dif.ioの登録エージェントに取り組んでいます。デプロイされたアプリの一部の情報が不足しています。登録エージェントは、デプロイ後に実行されるように設計されたスクリプト (通常はアプリのネイティブ言語で記述) です (heroku は、たとえばデプロイ後のフックを介して自動的に実行されます)。

アプリケーション名、URL、およびいくつかの UUID 識別子をアプリ内から、できればいくつかの ENV 変数から取得するにはどうすればよいですか? 言語間で移植できるようにする必要があります。

サンプルの Python アプリケーションを調査しましたが、上記の情報がすべて欠落しています。Python に関連する ENV 変数はあと 2 つだけです。ただし、dyno ホスト名は UUID のように見えます。

このようなものを使用できますが、ユーザー/パスワードの要件はありません: https://addons.heroku.com/provider/resources/technical/reference/app-info

正しいドキュメントを教えてください。

4

8 に答える 8

30

Dyno メタデータは 2015 年 12 月に導入されました。現在、最初に有効にする必要があるラボ機能です。

Dyno メタデータにより、dyno はアプリと環境に関する情報に簡単にアクセスできます。使用可能な dyno メタデータの例には、リリース、dyno サイズ、アプリケーション名、および特定の実行中の dyne の一意の識別子に関する詳細が含まれます。

https://devcenter.heroku.com/articles/dyno-metadata

于 2015-12-24T17:10:13.623 に答える
15

2016 年 8 月にリリースされた labs アドオンがあり、これらすべてが環境に組み込まれています。

~ $ env
HEROKU_APP_ID:                   9daa2797-e49b-4624-932f-ec3f9688e3da
HEROKU_APP_NAME:                 example-app
HEROKU_DYNO_ID:                  1vac4117-c29f-4312-521e-ba4d8638c1ac
HEROKU_RELEASE_CREATED_AT:       2015-04-02T18:00:42Z
HEROKU_RELEASE_VERSION:          v42
HEROKU_SLUG_COMMIT:              2c3a0b24069af49b3de35b8e8c26765c1dba9ff0
HEROKU_SLUG_DESCRIPTION:         Deploy 2c3a0b2

https://devcenter.heroku.com/articles/dyno-metadata

于 2016-11-02T01:33:46.977 に答える
11

私が知る限り、Dyno 自体には、実行中のアプリケーション名や URL に関する情報はありません。Dynosのドキュメントには、設定されているローカル環境変数がリストされていますが、PORT と DYNO しかありません。

Hubotで使用する回避策の 1 つは、アプリのホスト名を使用してHEROKU_URLなどの構成を追加することをユーザーに要求することです。

heroku app:infoシェル フレンドリーのフラグを使用して-s、少し grep とカットを行うことで、このほとんどをスクリプト化できることがわかりました。

$ heroku apps:info -s  | grep web_url | cut -d= -f2
http://hubotio-campfire.herokuapp.com/

そして、そこから HEROKU_URL を設定するには:

$ heroku config:set HEROKU_URL=$(heroku apps:info -s  | grep web_url | cut -d= -f2)
于 2014-09-14T20:18:46.777 に答える
6

アプリ名のみで私にとってうまくいったのは次のとおりです。

heroku info -s | grep git-url | sed 's#.\+\.com/\(.\+\)\.git$#\1#g'

私の使用例は、(ドメイン名ではなく) 具体的にアプリ名を必要とするシェル スクリプトで使用するアプリ名を見つけることでした。YMMV

ドメイン名をカスタムにオーバーライドできるため、git-url代わりにを使用しましたが、アプリ名は常に git URL にマップされたままになります。web-urlドメイン名を探している場合は、他の回答のいずれかを確認してください。

于 2016-07-21T16:51:25.707 に答える
3

のような URL にアプリ名を保存しますappname.herokuapp.com

さまざまな方法で取得できます。たとえばENV['URL'].split(".").first、Python では、「。」で分割されたときに URL から最初の値を取得できます。アプリ名を表す

于 2012-11-17T09:21:08.740 に答える