Lambda 関数にコンテナ化されたイメージを使用していて、アプリケーションを監視する場合は、Dockerfile にNew Relicを追加する必要があります。 たとえば、予算作成アプリケーションの開発者であり、顧客がSee my balance [残高を表示]をクリックするたびに Lambda 関数を使用して口座残高を計算しているとします。 潜在的なレイテンシを深く掘り下げたい。 その場合、関数に New Relic を追加する必要があります。そうすれば、顧客がSee my balance [残高を表示]をクリックするたびに関数が実行され、New Relic も実行されます。
以下は、関数をモニターできるようにNew Relicを Dockerfile に追加するプロセスを示す図です。
Lambda関数にコンテナ化されたイメージを使用している場合は、イメージにNew Relicを追加できます。
事前に構築されたレイヤーをコードに追加するためのガイドを以下に示します。
DockerfileにNew Relicを追加する
New Relicは、レイヤーのさまざまなランタイム(Java、Node.js、 Python、拡張機能のみ。
特定の Lambda 関数のランタイムとリージョンと互換性のあるレイヤーを選択します。
マルチステージ Dockerfile では、New Relic のビルド済みイメージを中間ビルドステージとして使用します。 次に、New Relic のエージェントと拡張機能を、事前に構築されたイメージから最終ビルド ステージにコピーします。
例
以下は、New Relic の事前構築済みレイヤーとマージされた元の Dockerfile の例です。 この例では、Node.js ランタイムを使用します。
# Define the New Relic pre-built imageFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-nodejs:20 AS layer# Define the base image:FROM public.ecr.aws/lambda/nodejs:20# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...ランタイムに基づくDockerfileの例
FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-java:17-arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-python:38-arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-nodejs:20-arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:32-arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-dotnet:arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-lambdaextension:x86 as layer# Layer codeCOPY /opt/ /opt/
画像を作成する
- New Relic のビルド済みイメージへの参照を Dockerfile に追加したら、変更された Dockerfile から新しいイメージをビルドする必要があります。 この新しいイメージには、元のコードと New Relic の事前構築されたイメージが含まれます。 これを行うには、 AWSガイドの「コンテナ イメージを使用して Lambda 関数を作成する」に記載されている手順に従うことをお勧めします。
- 新しいイメージをエンタープライズのAWS Elastic Container Registryリポジトリにプッシュします。
新しいLambda関数を作成する
AWS ECR にプッシュしたイメージを使用して、新しい Lambda 関数を作成します。 この関数の作成に関する詳細については、 AWSガイド「Lambda 関数の作成」を参照することをお勧めします。
Lambda関数を設定する
Lambda 関数を元の関数と同じ設定で構成しますが、 New Relic Lambda 監視 に必要な環境変数を必ず追加してください。 詳細については、 環境変数を参照してください。
関数のハンドラーを更新して、関数の
cmd
オーバーライドで新しくアタッチされたレイヤーを指すようにします。 次の 2 つのドキュメントの指示に従ってそれを実行できます。