アドオンパートナーによるアプリケーションログへのアクセス
最終更新日 2024年12月03日(火)
Table of Contents
顧客のアプリにアドオンがインストールされると、アドオンパートナーはアプリのログデータにアクセスできます。ログアクセスが必要なアドオンを構築している場合は、アプリの代わりにログドレインを作成してログデータを受信できます。
ログドレインによって、アドオンでアプリケーションログを読み取ることができます。アプリケーションログに書き込むには、「アドオンパートナーのログ統合」を参照してください。
現在、Fir ではログドレインは利用できません。ログドレインを必要とするアドオンは、Fir 世代のアプリと互換性がありません。
アプリケーションログアクセスを設定するには、まずマニフェストを通じてログドレインをリクエストする必要があります。
アドオンマニフェスト
マニフェストでは、ログドレインを設定するためのアクセス許可がアドオンに必要であることを Heroku に指示する必要があります。syslog_drain
を requires
プロパティの権限リストに追加します。
{
"id": "myaddon",
"api": {
"requires": ["syslog_drain"]
//...
}
}
名前 (syslog_drain
) にもかかわらず、ドレインは syslog://
プロトコルに限定されません。実際には HTTPS ドレインが推奨されます。詳細は、ログドレインに関するユーザードキュメントを参照してください。
プロビジョニング呼び出し
アドオンがプロビジョニングされると、Heroku のシステムにより、そのアタッチメントに対して一意のログドレイントークンが生成されます。このトークンを使用して、ドレインに送信されたログを識別します。
port
や api
キーのような URL 内の一意のフィールドの代わりに Heroku が提供するドレイントークンを使用すると、ドレイン URL をコピーして貼り付けたり、手動で使用したりすることができなくなります。この制限により、将来的にプラットフォーム API を使用してドレインを更新しても、その URL の有効なインスタンスがすべて更新されることが保証されます。
プロビジョニング呼び出しには、ログドレイントークンが含まれます。/heroku/resources
エンドポイントへの POST の内容については、こちらで説明しています。syslog_drain
機能を有効にすると、log_drain_token
フィールドがプロビジョニングペイロードに追加されます。
{
// ...
"log_drain_token": "d.01234567-89ab-cdef-0123-456789abcdef"
}
応答は次のとおりです。
{
"id": 456,
"config": { ... },
"log_drain_url": "https://example.com/",
"message": "your message here"
}
その後、Heroku は、指定されたドレイン URL にアプリのログを転送し始めます。log_drain_url
には HTTPS URL を使用することをお勧めします。詳細は、ログドレインに関するユーザードキュメントを参照してください。
アプリでアドオンが正常にプロビジョニングされると、アドオンに代わって作成されたドレインをユーザーがログドレインリストで確認できるようになります。
$ heroku drains
https://two.example.org
-----------------------------
[Dummy Addon]