概要
本記事では、BugSnagにAWS CodeBuildのバージョン情報を渡すことで、どのバージョンで発生した不具合かを特定しやすくする方法について解説します。CodeBuildのビルドIDを活用して、エラー発生時のバージョン追跡を簡単にし、効率的なデバッグを実現します。
具体的には、CodeBuildのビルドIDをDocker環境とNext.jsアプリケーションに渡し、Bugsnagと統合する手順を詳しく説明します。また、ソースマップを公開せず、BugsnagにのみアップロードするためのWebpackの設定についても説明します。
CodeBuild IDのDockerコンテナへの引き渡し
AWS CodeBuildで自動的に生成されるビルドIDをDockerコンテナに渡す方法です。このビルドIDは、最終的にBugsnagでエラーレポートを識別する際に使用されます。
次に、ビルド時に渡されたCodeBuild IDをDockerfile内で使えるようにします。
Next.jsでCodeBuild IDを環境変数として使用
次に、CodeBuild IDをNext.jsアプリケーションで環境変数として定義し、ビルドプロセスに組み込みます。この設定により、エラートラッキング時に正確なバージョン情報が伝達されます。
WebpackとBugsnagの統合
Bugsnagのソースマップを自動アップロードし、エラー発生時にどのバージョンで問題が発生したかを確認できるようにするため、webpack-bugsnag-plugins
をインストールし、Next.jsの設定に組み込みます。
次に、next.config.js
ファイルでBugsnagの設定を行います。ここでCodeBuild IDをバージョンとして設定します。また、rewrites
設定を利用して、公開資材には.map
ファイルを含めないようにリダイレクトを設定します。
この設定により、Bugsnagにアップロードされたソースマップを使用してエラーの詳細を追跡できる一方で、一般公開されるアプリケーションではソースマップのアクセスに制限があるため、セキュリティを保つことができます。
Bugsnagのエラー追跡設定
Bugsnagのエラーハンドリングを、Next.jsアプリケーション内で実行する際の設定方法です。CodeBuild IDを利用してエラートラッキングのバージョン情報を管理します。
ErrorBoundary.client.tsx
に以下のコードを追加してBugsnagを初期化します。
これにより、CodeBuildのバージョンがBugsnagのエラーレポートで追跡されるようになります。
おわりに
本記事では、BugSnagにAWS CodeBuildのバージョン情報を渡す方法を紹介しました。この手順により、エラー発生時にどのビルドで問題が起きたかを明確に把握できるため、デバッグ作業が効率化されます。また、rewrites
の設定により、セキュリティを維持しつつ、効果的なエラートラッキングが可能となります。