コンテンツにスキップ

テールハンドラー

背景

tail() ハンドラーは、テールワーカーを書く際に実装するハンドラーです。テールワーカーは、リアルタイムでログを処理し、それをログまたは分析サービスに送信するために使用できます。

tail() ハンドラーは、接続されたプロデューサーワーカーが呼び出されるたびに1回呼び出されます。

テールワーカーを構成するには、テールワーカーのドキュメントを参照してください。

構文

export default {
async tail(events, env, ctx) {
fetch("<YOUR_ENDPOINT>", {
method: "POST",
body: JSON.stringify(events),
})
}
}

パラメーター

  • events 配列

    • TailItemsの配列。ワーカーをトリガーする各イベントに対して1つの TailItem が収集されます。ダイナミックディスパッチワーカーにテールワーカーがインストールされているプラットフォーム顧客向けのワーカーの場合、events には2つの要素が含まれます:1つはダイナミックディスパッチワーカー用、もう1つはユーザーワーカー用です。
  • env オブジェクト

    • KV名前空間やダービルオブジェクトなど、ESモジュール形式を使用してワーカーに関連付けられたバインディングを含むオブジェクト。
  • ctx オブジェクト

    • ESモジュール形式を使用してワーカーに関連付けられたコンテキストを含むオブジェクト。現在、このオブジェクトには waitUntil 関数のみが含まれています。

プロパティ

  • event.type 文字列

    • イベントのタイプ。これは常に "tail" を返します。
  • event.traces 配列

    • TailItemsの配列。ワーカーをトリガーする各イベントに対して1つの TailItem が収集されます。ダイナミックディスパッチワーカーにテールワーカーがインストールされているプラットフォーム顧客向けのワーカーの場合、events には2つの要素が含まれます:1つはダイナミックディスパッチワーカー用、もう1つはユーザーワーカー用です。
  • event.waitUntil(promisePromise) : void

    • waitUntilを参照してください。フェッチイベントハンドラーとは異なり、テールハンドラーは値を返さないため、トレースワーカーが非同期作業を行う唯一の方法です。

TailItems

プロパティ

  • scriptName 文字列

    • プロデューサースクリプトの名前。
  • event オブジェクト

    • ワーカーのトリガーイベントに関する情報を含みます。
  • eventTimestamp 数値

    • エポック時間で測定されます。
  • logs 配列

  • exceptions 配列

    • TailExceptionsの配列。単一のワーカー呼び出しは、ワーカーが複数の非同期タスクを登録できるため、複数の未処理の例外を引き起こす可能性があります。
  • outcome 文字列

    • ワーカー呼び出しの結果、次のいずれか:
      • unknown: 結果ステータスが設定されていません。
      • ok: ワーカー呼び出しが成功しました。
      • exception: 未処理の例外がスローされました。これは、次のような多くの理由で発生する可能性があります:
        • 捕捉されていないJavaScript例外。
        • レスポンスを生成しないフェッチハンドラー。
        • 内部エラー。
      • exceededCpu: ワーカー呼び出しがCPU制限を超えました。
      • exceededMemory: ワーカー呼び出しがメモリ制限を超えました。
      • scriptNotFound: ワーカースクリプトの取得に関する内部エラー。
      • canceled: ワーカー呼び出しが完了する前にキャンセルされました。一般的には、クライアントがレスポンスを送信する前に切断されたためです。

FetchEventInfo

プロパティ

TailRequest

プロパティ

  • cf オブジェクト

  • headers オブジェクト

    • ヘッダー名/値のエントリ(デフォルトでレダクションされます)。ヘッダー名は小文字にされ、重複するヘッダー名に関連付けられた値は連結され、文字列 ", "(カンマスペース)が挿入されます。これは、Fetch標準に類似しています。
  • method 文字列

    • HTTPリクエストメソッド。
  • url 文字列

    • HTTPリクエストURL(デフォルトでレダクションされます)。

メソッド

  • getUnredacted() オブジェクト

    • レダクションされていないプロパティを持つTailRequestオブジェクトを返します。

TailRequest の一部のプロパティは、ユーザーの資格情報やAPIトークンなどの機密情報を誤って記録しにくくするためにデフォルトでレダクションされています。レダクションはヒューリスティックルールを使用しているため、誤検知や見逃しが発生する可能性があります。クライアントは getUnredacted() を呼び出してレダクションをバイパスできますが、レダクションを使用するかどうかにかかわらず、保持される情報に注意する必要があります。

  • ヘッダーのレダクション:ヘッダー名が cookie/set-cookie であるか、または "auth""key""secret""token"、または "jwt" を含む場合、ヘッダー値は文字列 “REDACTED” になります。
  • URLのレダクション:URL内のID文字(a-z、A-Z、0-9、’+’, ’-’, ’_‘)の貪欲に一致する部分文字列について、次の基準を満たす場合、その部分文字列は文字列 “REDACTED” に置き換えられます。
  • ヘックスID:32桁以上の16進数の数字を含み、16進数の数字と区切り文字(’+’, ’-’, ’_’) のみを含む。
  • ベース64 ID:21文字以上を含み、少なくとも2つの大文字、2つの小文字、および2つの数字を含む。

TailResponse

プロパティ

  • status 数値

    • HTTPステータスコード。

TailLog

コンソール関数に送信された情報を記録します。

プロパティ

  • timestamp 数値

    • エポック時間で測定されます。
  • level 文字列

    • 呼び出されたコンソール関数を示す文字列。次のいずれか:debuginfologwarnerror
  • message オブジェクト

    • コンソール関数に渡されたパラメーターの配列。

TailException

ワーカー呼び出し中に発生した未処理の例外を記録します。

プロパティ

  • timestamp 数値

    • エポック時間で測定されます。
  • name 文字列

    • エラータイプ(例:ErrorTypeError など)。
  • message オブジェクト

    • エラーの説明(例:"x" is not a function)。

関連リソース

  • テールワーカー - 他のワーカーの実行に関する情報を受け取るためにテールワーカーを構成します。