Sentry
Sentry Pages Pluginは、あなたのPages Functionsの実行チェーン内で発生するすべての例外をキャプチャし、ログに記録します。したがって、このPluginはアプリケーションのルートであるfunctions/_middleware.tsに最初のPluginとしてインストールすることをお勧めします。
npm install @cloudflare/pages-plugin-sentryimport sentryPlugin from "@cloudflare/pages-plugin-sentry";
export const onRequest: PagesFunction = sentryPlugin({ dsn: "https://sentry.io/welcome/xyz",});このPluginはToucan ↗を使用しています。ToucanのREADMEを参照して、利用可能なオプションを確認 ↗してください。context、request、およびeventは自動的に設定され、手動で構成する必要はありません。
DSN ↗が環境変数またはKVに保持されている場合、次のようにアクセスできます:
import sentryPlugin from "@cloudflare/pages-plugin-sentry";
export const onRequest: PagesFunction<{ SENTRY_DSN: string;}> = (context) => { return sentryPlugin({ dsn: context.env.SENTRY_DSN })(context);};import sentryPlugin from "@cloudflare/pages-plugin-sentry";
export const onRequest: PagesFunction<{ KV: KVNamespace;}> = async (context) => { return sentryPlugin({ dsn: await context.env.KV.get("SENTRY_DSN") })(context);};Sentryに追加のコンテキスト(例えば、ユーザー情報や追加のログ)を設定する必要がある場合は、Pluginの下にある任意のFunction内でdata.sentryインスタンスを使用してください。
例えば、次のようにdata.sentryにアクセスしてユーザー情報を設定できます:
import type { PluginData } from "@cloudflare/pages-plugin-sentry";
export const onRequest: PagesFunction<unknown, any, PluginData> = async ({ data, next,}) => { // リクエストからユーザーを認証し、ユーザーのメールアドレスを抽出 const email = await getEmailFromRequest(request);
data.sentry.setUser({ email });
return next();};再度、機能の完全なリストはToucanのドキュメント ↗で確認できます。