Si está empleando una imagen en contenedor para una función Lambda y desea monitor su aplicación, deberá agregar New Relic a su Dockerfile. Por ejemplo, suponga que es desarrollador de una aplicación de cotización y está empleando una función Lambda para calcular los saldos de las cuentas cada vez que un cliente hace clic en See my balance. Quieres profundizar en cualquier posible latencia. En ese caso, deberá agregar New Relic a su función, de modo que cada vez que un cliente haga clic en See my balance, su función se ejecutará y New Relic también lo hará.
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" ]# 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" ]# 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" ]# 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.
- 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: