• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

Instrumentar tu propia función Lambda

Este es un paso para habilitar el monitoreo AWS Lambda de New Relic.

Importante

Debido a que hay varios pasos para la integración, es importante que pruebe el enlace de su cuenta implementando y probando una función de ejemplo antes de instrumentar su propio código.

Implementar estrategias

Existen muchas estrategias de implementación diferentes para la función Lambda. New Relic ofrece soporte directo para varios, pero no podemos cubrir todas las opciones. En esencia, la instrumentación de New Relic Lambda se basa en el servicio Lambda en sí, en lugar de cualquier estrategia o herramienta de despliegue particular, por lo que estamos seguros de que se puede hacer que funcione en su caso de uso.

newrelic-lambda CLI inicio rapido

La herramienta CLI que recomendamos para configurar el enlace de la cuenta también puede reconfigurar su función Lambda para usar New Relic.

Para instalar o actualizar la capa de instrumentación de New Relic, ejecute:

newrelic-lambda layers install --nr-account-id YOUR_NR_ACCOUNT_ID --function my-function --upgrade

Este comando encuentra automáticamente la capa más nueva disponible para la región y el tiempo de ejecución de Lambda.

Esta es una excelente manera de iniciar rápidamente la instrumentación y esta herramienta se puede integrar fácilmente en sus procesos de CI/CD existentes. Sin embargo, dado que modifica los recursos de la función Lambda existente, cuando implementa una actualización de código en su función, puede eliminar sin darse cuenta la instrumentación de New Relic. Asegúrese de volver a ejecutar el comando anterior después de cada actualización o (mejor aún) integre la capa y la configuración asociada con su proceso de implementación existente.

Tenga en cuenta que la CLI puede operar en muchas funciones en un lote: use --function all, --function installed o --function not-installed para operar en todas las funciones en una región, o solo aquellas con o sin instrumentación New Relic existente.

Despliegue continuo

A largo plazo, suele ser menos trabajo integrar New Relic en su proceso de despliegue continuo existente. En lugar de ejecutar la CLI después de actualizar su función, puede integrar New Relic en su framework de despliegue continuo.

Integración inusual

Para la mayoría, una de las opciones anteriores funcionará bien. Sin embargo, existe la posibilidad de que no puedas utilizar ninguna de estas soluciones. Para obtener orientación sobre cómo personalizar su integración para que se ajuste a sus necesidades, siga leyendo.

Telemetría CloudWatch

Como se mencionó anteriormente, solíamos recomendar enviar su telemetría a través del log de CloudWatch. Esta ruta aún puede funcionar, aunque está en desuso.

  1. Deshabilite la extensión agregando la variable de entorno NEW_RELIC_LAMBDA_EXTENSION_ENABLED a su función, con el valor false.

  2. Cree un filtro de suscripción de logs de CloudWatch para invocar la función newrelic-log-ingestion con el log de su función.

    • La CLI puede hacer esto por usted: newrelic-lambda subscriptions install --function FUNCTION_NAME
    • Como alternativa, utilice la consola de AWS para crear un filtro de suscripción desde el grupo log de CloudWatch de su función para invocar la función newrelic-log-ingestion Lambda. Vea abajo.

Configuración UI de la consola Lambda

Si bien es más propenso a errores y requiere más mano de obra que los enfoques anteriores, es posible modificar manualmente la configuración de una función Lambda para usar New Relic desde la consola AWS Lambda, para Node.js, Python, Ruby y Java.

  1. Busque la capa que coincida con su tiempo de ejecución y región.

  2. Copie el nombre de recurso de Amazon (ARN) de la versión más reciente y agréguelo en la consola de AWS Lambda para su función.

  3. Actualice el controlador de su función para que apunte a la capa recién adjunta en la consola para su función:

    • Python y Ruby: newrelic_lambda_wrapper.handler (guiones bajos)

    • Nodo: newrelic-lambda-wrapper.handler (guiones)

    • Java:

      • RequestHandler implementación: com.newrelic.java.HandlerWrapper::handleRequest
      • RequestStreamHandlerWrapper implementación: com.newrelic.java.HandlerWrapper::handleStreamsRequest
  4. Agregue estas variables de entorno a su consola Lambda:

    • NEW_RELIC_ACCOUNT_ID: Su ID de cuenta
    • NEW_RELIC_LAMBDA_HANDLER: Ruta a su controlador inicial.
  5. Modifique la función de ejecución para permitir el acceso al secreto de New Relic

    1. Encuentra el ARN del secreto nombrado NEW_RELIC_LICENSE_KEY

    2. Agregue una nueva política en línea en la función de ejecución de la función que se ve así (reemplazando SECRET_ARN con el valor que encontró arriba):

      "Statement": [
      {
      "Action": [
      "secretsmanager:GetSecretValue"
      ],
      "Resource": "SECRET_ARN",
      "Effect": "Allow"
      }
      ]

Tenga en cuenta que para Go, debe realizar cambios en el código fuente de su función Lambda para implementarla. Los cambios de configuración no son suficientes.

Personalización de capas

La capa contiene varios componentes, según su tiempo de ejecución:

  1. Para todos los tiempos de ejecución, el ejecutable de la extensión está empaquetado en la capa.

  2. Para Python, Ruby, Node.js y Java, también incluimos:

    1. El agente de New Relic
    2. El paquete de instrumentación del SDK de AWS para el agente New Relic
    3. Un contenedor de controlador, que configura el agente e intercepta las invocaciones para iniciar el proceso de instrumentación y luego invoca a su controlador.
  3. Para .NET, también incluimos:

    1. El agente de New Relic
    2. Instrumentación automática de su función Lambda handler.

Si necesita un contenedor diferente, puede crear su propia capa, basada en la nuestra. Consulte nuestro repositorio de GitHub newrelic-lambda-layers para ver el código contenido en nuestra función contenedora. Al crear su propia capa con un envoltorio de reemplazo y aplicarla después de la nuestra, su envoltorio sobrescribirá el que le proporcionamos. De manera similar, puede incluir su contenedor personalizado directamente en su función.

De manera similar, si está probando una compilación personalizada del agente, tal vez para solucionar algún error, puede modificar nuestro script de empaquetado de capas anterior para empaquetar la compilación de su agente y crear su propia capa.

No recomendamos explícitamente que empaquete el agente con su función Lambda. Si bien esto es posible, le resultará difícil actualizar el agente y recibir correcciones de errores. La capa puede entrar en conflicto con su agente proveedor. Esta configuración debe considerarse no compatible, aunque puede funcionar.

¿Te ha ayudado este documento con la instalación?

¿Que sigue?

Después de completar estos pasos, esto es lo que puede hacer a continuación:

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.