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.
Ejemplo
A continuación se muestra un ejemplo del Dockerfile original fusionado con la capa prediseñada de New Relic. Este ejemplo emplea un tiempo de ejecución de 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...Ejemplos de Dockerfile basados en tiempo de ejecución
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 --from=layer /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-lambdaextension:x86 as layer# Layer codeCOPY /opt/ /opt/
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 AWS Elastic Container Registry para su implementació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: