Si vous utilisez une image conteneurisée pour une fonction Lambda et que vous souhaitez monitorer votre application, vous devrez ajouter une couche New Relic Lambda prédéfinie à votre Dockerfile qui correspond à l'exécution de votre fonction.
Voici un diagramme montrant le processus d'ajout de New Relic au Dockerfile afin que vous puissiez monitorer votre fonction :

Si vous utilisez une image conteneurisée pour votre fonction Lambda, vous pouvez ajouter New Relic à votre image.
Voici un guide pour ajouter notre couche prédéfinie à votre code.
Ajoutez New Relic à votre Dockerfile
New Relic propose des images prédéfinies qui incluent les différents environnements d'exécution de notre couche : Java, Node.js, Python et extension uniquement.
Sélectionnez la couche compatible avec l'environnement d'exécution et la région de votre fonction Lambda spécifique :
Dans votre Dockerfile à plusieurs étapes, utilisez l’image prédéfinie de New Relic comme étape de construction intermédiaire. Ensuite, copiez l’agent et l’extension de New Relic à partir de notre image prédéfinie dans votre étape de construction finale.
Exemples de Dockerfile basés sur l'exécution
# Define the New Relic pre-built imageFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-java:21 AS layer# Define the base imageFROM public.ecr.aws/lambda/java:21# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override to one of New Relic's handler wrappersCMD [ "com.newrelic.java.HandlerWrapper::handleRequest" ]# CMD [ "com.newrelic.java.HandlerWrapper::handleStreamsRequest" ]Essayez un exemple fonctionnel d'une fonction Lambda conteneurisée Java à l'aide de SAM.
# Define the New Relic pre-built imageFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-python:311 AS layer# Define the base imageFROM public.ecr.aws/lambda/python:3.11# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override to New Relic's handler wrapperCMD [ "newrelic_lambda_wrapper.handler" ]Essayez un exemple fonctionnel d'une fonction Lambda conteneurisée Python à l'aide de SAM.
# 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 imageFROM public.ecr.aws/lambda/nodejs:20# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override to New Relic's handler wrapperCMD [ "newrelic-lambda-wrapper.handler" ]# If your lambda function is ESM, use the New Relic's Node.js ESM handler wrapper# CMD ["/opt/nodejs/node_modules/newrelic-esm-lambda-wrapper/index.handler"]Essayez un exemple fonctionnel d'une fonction Lambda conteneurisée Node.js à l'aide de SAM.
# Define the New Relic pre-built imageFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:33 AS layer# Define the base imageFROM public.ecr.aws/lambda/ruby:3.3# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override to New Relic's handler wrapperCMD [ "newrelic_lambda_wrapper.handler" ]FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-dotnet:x86_64 AS layer# Define the base imageFROM public.ecr.aws/lambda/dotnet:8# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override not needed since the dotnet layer does not have a handler wrapperFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-lambdaextension:x86 as layer# Any lambda base image can be used# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override not needed since the extension layer does not have an agent
Créer une image
- Après avoir ajouté la référence à l'image prédéfinie de New Relic à votre Dockerfile, vous devrez créer une nouvelle image à partir du Dockerfile modifié. Cette nouvelle image contiendra votre code d'origine et l'image prédéfinie de New Relic. Pour ce faire, nous vous recommandons de suivre les étapes répertoriées dans le guide AWS, Créer une fonction Lambda à l’aide d’une image de conteneur.
- Poussez la nouvelle image vers votre référentiel AWS Elastic Container Registry pour que votre fonction l'utilise.
Créer une nouvelle fonction Lambda
À l’aide de l’image que vous avez envoyée à AWS ECR, créez une nouvelle fonction Lambda. Pour plus d'informations sur la création de cette fonction, nous vous recommandons de revenir au guide AWS : Créer une fonction Lambda.
Configurez votre fonction Lambda
Configurez la fonction Lambda avec les mêmes paramètres que votre fonction d'origine, mais assurez-vous d'ajouter toutes les variables d'environnement requises pour New Relic Lambda monitoring. Consultez nos variables d'environnement pour plus d'informations.
Mettez à jour le gestionnaire de votre fonction pour qu'il pointe vers la couche nouvellement attachée dans le remplacement
cmd
pour votre fonction. Vous pouvez le faire en suivant les instructions de ces deux documents :