Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Instrumentación en contenedores

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:

A diagram demonstrating how New Relic integrates with your Lambda containerized function.

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.

  1. Seleccione la capa compatible con la región y el tiempo de ejecución de su función Lambda específica:

  2. 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 image
    FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-java:21 AS layer
    # Define the base image
    FROM public.ecr.aws/lambda/java:21
    # Copy New Relic Layer code
    COPY --from=layer /opt/ /opt/
    # Rest of your Dockerfile...
    # CMD override to one of New Relic's handler wrappers
    CMD [ "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 image
    FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-python:311 AS layer
    # Define the base image
    FROM public.ecr.aws/lambda/python:3.11
    # Copy New Relic Layer code
    COPY --from=layer /opt/ /opt/
    # Rest of your Dockerfile...
    # CMD override to New Relic's handler wrapper
    CMD [ "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 image
    FROM 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 code
    COPY --from=layer /opt/ /opt/
    # Rest of your Dockerfile...
    # CMD override to New Relic's handler wrapper
    CMD [ "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 image
    FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:33 AS layer
    # Define the base image
    FROM public.ecr.aws/lambda/ruby:3.3
    # Copy New Relic Layer code
    COPY --from=layer /opt/ /opt/
    # Rest of your Dockerfile...
    # CMD override to New Relic's handler wrapper
    CMD [ "newrelic_lambda_wrapper.handler" ]
    FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-dotnet:x86_64 AS layer
    # Define the base image
    FROM public.ecr.aws/lambda/dotnet:8
    # Copy New Relic Layer code
    COPY --from=layer /opt/ /opt/
    # Rest of your Dockerfile...
    # CMD override not needed since the dotnet layer does not have a handler wrapper
    FROM 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 code
    COPY --from=layer /opt/ /opt/
    # Rest of your Dockerfile...
    # CMD override not needed since the extension layer does not have an agent

Crear una imagen

  1. 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.
  2. 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

  1. 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.

  2. 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: