Si está empleando una imagen en contenedor para una función Lambda y desea monitor su aplicación, deberá agregar una capa LambdaNew Relic preconstruida a su Dockerfile que coincida con el tiempo de ejecución de su función.
Aquí hay un diagrama que muestra el proceso de agregar New Relic al Dockerfile para que pueda monitor su función:
Si está empleando una imagen en contenedor para su función Lambda, puede agregar New Relic a su imagen.
Aquí hay una guía para agregar nuestra capa prediseñada a su código.
Agregue New Relic a su Dockerfile
New Relic ofrece imágenes prediseñadas que incluyen los diferentes tiempos de ejecución de nuestra capa: Java, Node.js, Python y solo extensión.
Seleccione la capa compatible con la región y el tiempo de ejecución de su función Lambda específica:
En su Dockerfile de varias etapas, use la imagen prediseñada de New Relic como etapa de compilación intermedia. Luego, copie el agente y la extensión de New Relic de nuestra imagen prediseñadas en su etapa de compilación final.
Ejemplos de Dockerfile basados en tiempo de ejecución
# 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" ]Pruebe un ejemplo práctico de una función Lambda en contenedor de Java empleando 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" ]Pruebe un ejemplo práctico de una función Lambda en contenedor de Python usando 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" ]Pruebe un ejemplo práctico de una función Lambda en contenedor de Node.js usando 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
Crear una imagen
- Luego de agregar la referencia a la imagen prediseñada de New Relic a su Dockerfile, deberá crear una nueva imagen a partir del Dockerfile modificado. Esta nueva imagen tendrá su código original y la imagen prediseñadas de New Relic. Para hacer esto, recomendamos seguir los pasos enumerados en la guía de AWS, Crear una función Lambda usando una imagen de contenedor.
- Envíe la nueva imagen a su repositorio de registro AWS Elastic Container para que la emplee su función.
Crear una nueva función Lambda
Usando la imagen que envió a AWS ECR, cree una nueva función Lambda. Para obtener más información sobre la creación de esta función, recomendamos volver a la guía de AWS: Crear una función Lambda.
Configure su función Lambda
Configure la función Lambda con la misma configuración que su función original, pero cerciorar de agregar las variables de entorno necesarias para el monitoreo de New Relic Lambda. Consulte nuestras variables de entorno para obtener más información.
Actualice el controlador de su función para que apunte a la capa recién anexa en la anulación
cmd
para su función. Puede hacerlo siguiendo las instrucciones de estos dos documentos: