アドオンパートナーによるアプリケーションログへのアクセス
最終更新日 2024年02月06日(火)
Table of Contents
顧客のアプリにアドオンがインストールされると、アドオンパートナーはアプリのログデータにアクセスできます。このアクセスが必要なアドオンを構築している場合、アプリの代わりにログドレインを作成してログデータを受信することができます。
ログドレインによって、アドオンでアプリケーションログを読み取ることができます。ログに書き込む方法については、このドキュメントを参照してください。
ログドレインを設定するには、まずマニフェストを通じてログドレインをリクエストする必要があります。
アドオンマニフェスト
マニフェストでは、ログドレインを設定するためのアクセス許可がアドオンに必要であることを Heroku に指示する必要があります。これを行うには、requires
プロパティのアクセス許可のリストに syslog_drain
を追加します。
{
"id": "myaddon",
"api": {
"requires": ["syslog_drain"]
//...
}
}
syslog_drain
という名前ですが、ドレインは syslog://
プロトコル限定ではなく、実際には HTTPS ドレインが優先されます。詳細は、ログドレインに関するユーザードキュメントを参照してください。
プロビジョニング呼び出し
アドオンがプロビジョニングされると、Heroku のシステムにより、そのアタッチメントに対して一意のログドレイントークンが生成されます。アドオンパートナーはこのトークンを使用して、ドレインに送信されたログを識別する必要があります。
ポートや 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]