コンテンツにスキップ

テールワーカー

ベータ

テールワーカーは、他のワーカー(プロデューサーワーカーとして知られる)の実行に関する情報を受け取ります。これには、HTTPステータス、console.log()に渡されたデータ、または未捕捉の例外が含まれます。テールワーカーは、アラート、デバッグ、または分析のためにログを処理できます。

テールワーカーは、ワーカーの有料およびエンタープライズプランのすべての顧客が利用可能です。テールワーカーは、リクエストの数ではなく、CPU時間に基づいて請求されます。

テールワーカーの図

テールワーカーは、アプリケーションロジックを含むプロデューサーワーカー(テールワーカーがトラッキングするワーカー)の呼び出しの後に自動的に呼び出されます。プロデューサーが実行を終了した後のイベントをキャプチャします。データのフィルタリング、フォーマットの変更、任意のHTTPエンドポイントへのイベント送信が可能です。迅速なデバッグのために、テールワーカーはKVや任意のデータベースにログを送信するために使用できます。

テールワーカーの設定

テールワーカーを設定するには:

  1. テールワーカーとして機能するワーカーを作成します。
  2. ワーカーにtail()ハンドラーを追加します。tail()ハンドラーは、テールワーカーが接続されているプロデューサーワーカーが呼び出されるたびに呼び出されます。以下のワーカーコードは、データをHTTPエンドポイントに送信するテールワーカーの例です:
export default {
async tail(events) {
fetch("https://example.com/endpoint", {
method: "POST",
body: JSON.stringify(events),
})
}
}

以下のワーカーコードは、eventsオブジェクトがどのように見えるかの例です:

[
{
"scriptName": "例のスクリプト",
"outcome": "例外",
"eventTimestamp": 1587058642005,
"event": {
"request": {
"url": "https://example.com/some/requested/url",
"method": "GET",
"headers": {
"cf-ray": "57d55f210d7b95f3",
"x-custom-header-name": "my-header-value"
},
"cf": {
"colo": "SJC"
}
}
},
"logs": [
{
"message": ["console.log()に渡された文字列"],
"level": "log",
"timestamp": 1587058642005
}
],
"exceptions": [
{
"name": "Error",
"message": "サンプル例外をスローしました",
"timestamp": 1587058642005
}
],
"diagnosticsChannelEvents": [
{
"channel": "foo",
"message": "診断チャネルメッセージ",
"timestamp": 1587058642005
}
]
}
]
  1. プロデューサーワーカーのwrangler.tomlファイルに以下を追加します:
tail_consumers = [{service = "<TAIL_WORKER_NAME>"}]

関連リソース

  • tail() ハンドラーAPIドキュメント - ワーカーにtail()ハンドラーを設定する方法を学びます。