From 8c310ede17daaef908de5d15f1cdfaaed89c802a Mon Sep 17 00:00:00 2001 From: Sammie downing Date: Tue, 26 Mar 2024 16:55:34 -0700 Subject: [PATCH 1/2] fix(serverless): deleting lambda containerized images docs --- .../enable-containerized-function.mdx | 176 ------------------ .../get-started.mdx | 50 ----- src/nav/serverless-function-monitoring.yml | 6 - 3 files changed, 232 deletions(-) delete mode 100644 src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx delete mode 100644 src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx diff --git a/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx b/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx deleted file mode 100644 index f976e2f8edb..00000000000 --- a/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx +++ /dev/null @@ -1,176 +0,0 @@ ---- -title: Create and deploy New Relic Lambda image layers -metaDescription: After enabling New Relic's containerized Lambda function, you can create a layer as an image. -redirects: -freshnessValidatedDate: never ---- - -With containerized Lambda functions, you can create Lambda layers using container images. As an alternative to deploying layers as .zip archives, container images allow for increased flexibility and improved security. - -## Prerequisites [#prereqs] - -Before you get started, make sure you've built a Dockerfile that includes your chosen runtime environment, installed your dependencies, and copied them into the correct directory structure. - -## Use a prebuilt New Relic Lambda layer [#prebuilt] - -First, you need to create your image layers. Once that's done, you can either create a regular or a public ECR function. To help you with this, we've created a [gallery of New Relic Lambda layers for Docker hosted on Amazon ECR](https://gallery.ecr.aws/x6n7b2o2?page=1). - -## Create your own New Relic layer from scratch [#create-lambda-layer] - -Follow these steps to create your own New Relic Lambda layer. - - - -### Create a New Relic Lambda layer - -Before you can deploy your image, you first need to create a New Relic Lambda layer. To do this, complete the following steps: - -1. Choose from the different [Amazon Resource Name (ARN) layers available to you](https://layers.newrelic-external.com/#/get-layers/get) to find the one that matches your system. -2. Create a new docker image using the following code: -``` -FROM alpine:latest as layer-copy -# Create a build stage to copy the files from S3 using credentials ARG AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-"region"} -ARG AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-"accessKey"} -ARG AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-"secretkey"} ENV AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION} -ENV AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} -ENV AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} -RUN apk add aws-cli curl unzip -RUN mkdir -p /opt -RUN curl $(aws lambda get-layer-version-by-arn --arn --query 'Content.Location' --output text) --output layer.zip -RUN unzip layer.zip -d /opt -RUN rm layer.zip -FROM scratch -# Start second stage from blank image to squash all previous history, including credentials. -WORKDIR /opt -COPY --from=layer-copy /opt . -``` -3. Push that image to Amazon ECR. - -``` -docker build -t layer-image1:latest . -``` - - - -### Deploy the image in AWS ECR [#deploy-image-ECR] - -Now that you've created the image, you can deploy it using the following steps: - -1. Make sure you've installed the [AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) on your system. -2. Authenticate your AWS account using the following command: - -``` -aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com -``` -3. Create a repository in Amazon ECR using the `create-repository` command: - -``` -aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE -``` -4. Copy the `repositoryUri` from the output in the previous step. -5. To tag your local image into your Amazon ECR repository as the latest version, run the docker tag command: -``` -Replace docker-image:test with the name and tag of your Docker image. -``` -6. Replace < ECRrepositoryUri > with the `repositoryUri` that you copied. Make sure to include `:latest` at the end of the URI. Here is an example: - -``` -docker tag docker-image:test :latest -``` -7. Run the docker push command to deploy your local image to the Amazon ECR repository. Make sure to include `:latest` at the end of the repository URI. -``` -docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest -``` - - - -## Create a Containerized Lambda function with New Relic layer image ECR [#lambda-function-image-layer] - -Now that you've created the image layer, you can need to create a Lambda function. You can create either a public or regular ECR layer. - - - -### Create a Lambda function with a New Relic image layer - -Now that you've created the image and deployed it to AWS ECR, now you need to create a Lambda function. To do this, complete the following steps: - -1. Use the image URI from either the New Relic layer you chose or your own image layer and add the image URI to your Dockerfile. Here's an example: -``` -FROM AS layer -``` -2. Add the directory for the layer. Here is an example: - -``` -# Layer code -WORKDIR /opt -COPY --from=layer /opt/ . -``` -3. Here is a complete example: - -``` -FROM AS layer -FROM public.ecr.aws/lambda/python:3.9 -# Layer code -WORKDIR /opt -COPY --from=layer /opt/ . -WORKDIR ${LAMBDA_TASK_ROOT} -# Copy requirements.txt -COPY requirements.txt ${LAMBDA_TASK_ROOT} -# Copy function code -COPY lambda_function.py ${LAMBDA_TASK_ROOT} -# Install the specified packages -RUN pip freeze > requirements.txt -# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) -CMD [ "lambda_function.handler" ] -``` -4. Push the image to Amazon ECR. -``` -docker build -t docker-image-sample:latest -``` - - -### Test the image locally (optional) [#test-image] - -While this step is optional, we recommend testing the image locally to ensure everything works correctly. - -1. Start the Docker image with the docker run command: -``` -docker run -p 9000:8080 docker-image-sample:latest -``` -2. From a new terminal window, post an event to the following endpoint using a curl command: - -``` -curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' -``` - - -### Create a container image Lambda function [#create-container-image] - -1. Choose the container image option. -2. Name your function. -3. Browse your ECR and select. -4. Choose your architecture and create. -5. Once you create the function, add the environment variable. Below are the environment variables that you can add: - -``` -NEW_RELIC_ACCOUNT_ID : -NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS : boolean value -NEW_RELIC_LAMBDA_EXTENSION_ENABLED : boolean value -NEW_RELIC_LAMBDA_HANDLER : index.handler -NEW_RELIC_LICENSE_KEY : -NEW_RELIC_LOG_ENDPOINT : -NEW_RELIC_TELEMETRY_ENDPOINT : -``` -6. The environment endpoints are: - * NEW_RELIC_TELEMETRY_ENDPOINT - * Production : https://cloud-collector.newrelic.com/aws/lambda/v1 - * Eu-production : https://cloud-collector.eu01.nr-data.net/aws/lambda/v1 - * NEW_RELIC_LOG_ENDPOINT - *Production : https://log-api.newrelic.com/log/v1 - * Eu-production : https://log-api.eu.newrelic.com/log/v1 -7. Now, add a CMD handler that based on your language. To learn more, see our [Lambda instrumentation documentation](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/) - - - - - diff --git a/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx b/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx deleted file mode 100644 index 4224b36e507..00000000000 --- a/src/content/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Get started with containerized Lambda functions" -metaDescription: Create containerized Lambda functions with New Relic. -redirects: -freshnessValidatedDate: never ---- - -import serverlessLambdaContainerizedFunctions from 'images/serverless_screenshot-full_lambda-containerized-functions.webp' - -Containerized Lambda functions offer an alternative way to deploy code within AWS Lambda while still enjoying the benefits of serverless computing. - -With New Relic, you can monitor AWS Lambda functions deployed using containerized images, so that you can: - -* **Increase flexibility**: Use familiar container tooling and leverage pre-built images for your code and dependencies. -* **Improve security**: Benefit from container isolation and potential security advantages associated with containerized environments. -* **Ensure consistent runtime**: Ensure a consistent development, testing, and deployment environment. - -A screenshot for containerized Lambda functions - -
- To view your containerized Lambda functions in the UI, Go to [**one.newrelic.com > All capabilities**](https://one.newrelic.com/all-capabilities) > Serverless functions. -
- -## Requirements [#Requirements] - -To create a containerized Lambda function using Node.js, you need the following: - -* [AWS Command Line Interface (AWS CLI) version 2] (https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) -* [Docker ](https://docs.docker.com/get-docker/) -* Node.js versions 16 or 18 -* Python version 3.9+ - - - After you've completed this setup, you can create a New Relic Lambda layer as an image - Review our Lambda monitoring capabilities. - - - - - - - - - - - diff --git a/src/nav/serverless-function-monitoring.yml b/src/nav/serverless-function-monitoring.yml index 1143475c10a..bb7901c3328 100644 --- a/src/nav/serverless-function-monitoring.yml +++ b/src/nav/serverless-function-monitoring.yml @@ -29,12 +29,6 @@ pages: path: /docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-layerless - title: Update serverless monitoring path: /docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/update-serverless-monitoring-aws-lambda - - title: Enable Lambda containerized functions - pages: - - title: Get started - path: /docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started - - title: Create and deploy - path: /docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function - title: OpenTelemetry pages: - title: Trace your Java Lambda functions with New Relic and OpenTelemetry From d7de206bd038410c36d4d5795f7b78faf210ad2a Mon Sep 17 00:00:00 2001 From: Sammie downing Date: Tue, 26 Mar 2024 17:08:28 -0700 Subject: [PATCH 2/2] fix(serverless): deleting i18n docs --- .../files/newrelic.ini_.mdx | 50 -- .../enable-containerized-function.mdx | 195 ------- .../get-started.mdx | 185 ------- ...erverless-monitoring-aws-lambda-legacy.mdx | 504 ------------------ .../enable-containerized-function.mdx | 195 ------- .../get-started.mdx | 185 ------- .../enable-containerized-function.mdx | 195 ------- .../get-started.mdx | 185 ------- .../files/newrelic.ini_.mdx | 50 -- .../enable-containerized-function.mdx | 195 ------- .../get-started.mdx | 185 ------- ...erverless-monitoring-aws-lambda-legacy.mdx | 504 ------------------ 12 files changed, 2628 deletions(-) delete mode 100644 src/i18n/content/es/docs/apm/agents/php-agent/advanced-installation/files/newrelic.ini_.mdx delete mode 100644 src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx delete mode 100644 src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx delete mode 100644 src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-legacy.mdx delete mode 100644 src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx delete mode 100644 src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx delete mode 100644 src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx delete mode 100644 src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx delete mode 100644 src/i18n/content/pt/docs/apm/agents/php-agent/advanced-installation/files/newrelic.ini_.mdx delete mode 100644 src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx delete mode 100644 src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx delete mode 100644 src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-legacy.mdx diff --git a/src/i18n/content/es/docs/apm/agents/php-agent/advanced-installation/files/newrelic.ini_.mdx b/src/i18n/content/es/docs/apm/agents/php-agent/advanced-installation/files/newrelic.ini_.mdx deleted file mode 100644 index 4838e50ee05..00000000000 --- a/src/i18n/content/es/docs/apm/agents/php-agent/advanced-installation/files/newrelic.ini_.mdx +++ /dev/null @@ -1,50 +0,0 @@ -\[newrelic] ; ; Setting: newrelic.enabled ; Type : boolean ; Scope : per-directory ; Default: true ; Info : Habilita o deshabilita el agente. Tenga en cuenta que no puede hacerlo globalmente; deshabilite el agente y luego habilítelo selectivamente por directorio; base. Si desactiva el agente en el archivo INI global, entonces el ; El agente no se inicializará en absoluto. Sin embargo, puede hacerlo de forma selectiva; deshabilite el agente por directorio. ; ;newrelic.enabled=true - -; ; Setting: newrelic.daemon.max_threads ; Type : integer ; Scope : system ; Default: 8 ; Info : establece el número de subprocesos en el "grupo de trabajadores" del daemon que serán; Se utiliza para procesar las solicitudes de cada agente. El mínimo es 4 y ; el máximo es 128. ; ;newrelic.daemon.max_threads = 8 - -; ; Setting: newrelic.daemon.ssl ; Type : boolean ; Scope : system ; Default: true (as of version 3.6) ; Info : Establece si hay comunicación o no con el recolector de datos New Relic; debe utilizar una conexión HTTP segura o no. ; ;newrelic.daemon.ssl = true - -; ; Setting: newrelic.daemon.proxy ; Type : string ; Scope : system ; Default: none ; Info : establece las credenciales del host y del usuario para usarlas como proxy de salida. Este ; sólo se utiliza si su sitio requiere un proxy para poder acceder; servidores externos en Internet, en este caso los datos de New Relic; servidores de recogida. Esto se expresa en una de las siguientes formas: ; hostname ; hostname:port ; user@hostname ; user@hostname:port ; user:password@hostname ; user:password@hostname:port ; ;newrelic.daemon.proxy = "" - -; ; Setting: newrelic.daemon.collector_host ; Type : string ; Scope : system ; Default: collector.newrelic.com ; Info : establece el nombre del host del recolector de datos de New Relic que se utilizará. ; Tenga en cuenta que esto NO es ningún tipo de anfitrión local. Se refiere a ; la New Relic proporcionó el anfitrión. Hay muy pocas razones para hacerlo alguna vez; cambie esto del valor predeterminado excepto en ciertos casos muy especiales; circunstancias, y entonces sólo siguiendo instrucciones de una venta New Relic ; persona o miembro del personal de apoyo. ; ;newrelic.daemon.collector_host = "collector.newrelic.com" - -; ; Setting: newrelic.capture_params ; Type : boolean ; Scope : per-directory ; Default: false ; Info : Activa o desactiva la captura del parámetro URL. Si está habilitado, entonces; cualquier variable pasada en la URL como (por ejemplo, ?id=12345) será ; guardado con la solicitud y visible en varios lugares de la UI web. ; Si tiende a pasar información confidencial directamente en la URL; entonces es una buena idea mantener esto deshabilitado. Sin embargo, si su URL; Los parámetros se usan simplemente para parámetros sin datos confidenciales pero; que sean significativos para cada transacción, entonces puedes habilitar esto. ; ;newrelic.capture_params = false - -; Configuración: newrelic.ignored_params ; Tipo: cadena; Alcance: por directorio; Valor predeterminado: ninguno; Información: una lista de parámetros separados por comas para excluir siempre if parámetro; La captura está habilitada arriba. Puede utilizar esto para filtrar datos sensibles; datos del usuario que pueden aparecer como parámetro de URL. ; ;newrelic.ignored_params = "" - -; ; Setting: newrelic.error_collector.enabled ; Type : boolean ; Scope : per-directory ; Default: true ; Info : habilite el recolector de errores de New Relic. Esto registrará los 20 más; errores severos por ciclo de recolección. Es raro querer desactivar esto. ; Tenga en cuenta también que su nivel de suscripción a New Relic puede obligarle; Esto se desactivará independientemente del valor que establezca. ; ;newrelic.error_collector.enabled = true - -; ; Setting: newrelic.error_collector.record_database_errors ; Type : boolean ; Scope : per-directory ; Default: false ; Info : Actualmente solo se admite para funciones de base de datos MySQL. Si está habilitado, ; esto provocará que varias funciones de MySQL devuelvan errores; tratados como si fueran errores de PHP y, por lo tanto, sujetos a errores; recopilación. Esto sólo se cumple si el recolector de errores está habilitado; arriba y el nivel de suscripción de la cuenta permite la captura de errores. ; ;newrelic.error_collector.record_database_errors = false - -; ; Setting: newrelic.error_collector.prioritize_api_errors ; Type : boolean ; Scope : per-directory ; Default: false ; Info : si el recolector de errores está habilitado y utiliza la API New Relic para; observe un error, si esto se establece en verdadero, asigne el más alto; prioridad a tales errores. ; ;newrelic.error_collector.prioritize_api_errors = false - -; ; Setting: newrelic.browser_monitoring.auto_instrument ; Type : boolean ; Scope : per-directory ; Default: true ; Info : Habilita o deshabilita el monitoreo automático de usuarios reales ("auto-RUM"). ; Cuando está habilitado, el agente insertará un encabezado y un pie de página; en salida HTML que cronometrará la experiencia real del usuario final. ; ;newrelic.browser_monitoring.auto_instrument = true - -; ; Setting: newrelic.transaction_tracer.enabled ; Type : boolean ; Scope : per-directory ; Default: true ; Info : Habilita o deshabilita el rastreador de transacciones. Cuando esté habilitado, esto será; producir un gráfico de llamadas detallado para cualquier transacción que exceda un ; cierto umbral (ver siguiente entrada). Sólo una traza de la transacción por ; la aplicación por ciclo de recolección se almacena y siempre es la más lenta; transacción durante ese ciclo. traza de la transacción son extremadamente ; útil para diagnosticar puntos problemáticos en su aplicación. Por favor ; tenga en cuenta que los TT pueden estar deshabilitados según el nivel de suscripción de su cuenta; independientemente de lo que establezca aquí. ; ;newrelic.transaction_tracer.enabled = true - -; ; Setting: newrelic.transaction_tracer.threshold ; Type : string with a time specification or the word "apdex_f" ; Scope : per-directory ; Default: "apdex_f" ; Info : Especifica el umbral por encima del cual una transacción se convierte en ; candidato para el rastreador de transacciones. Esto puede ser absoluto; valor de tiempo como "200ms" o "1s250ms" o "1h30m" o "750us" o el; palabra "apdex_f". Este último valor, "apdex_f", significa "4 veces apdex_t". ; Por lo tanto, el umbral cambia según su configuración de apdex_t. Este ; es el valor predeterminado. ; ;newrelic.transaction_tracer.threshold = "apdex_f" - -; ; Setting: newrelic.transaction_tracer.detail ; Type : integer in the range 0-2 ; Scope : per-directory ; Default: 1 ; Info : Establece el nivel de detalle en una traza de la transacción. Estableciendo esto en 0; sólo mostrará las relativamente pocas funciones PHP que tiene New Relic; considerado "interesante", así como cualquier función personalizada que establezca; (vea abajo). Un ajuste de 1 trazará y cronometrará todas las funciones del usuario; y una configuración de 2, que necesita que se establezca otra variable especial; para que surta efecto, se trazarán TODAS las funciones de PHP, incluyendo ; los internos implementados en módulos. Esta última configuración puede tener un ; impacto severo en el rendimiento, por lo que debe consultar al personal de soporte de New Relic en [support@newrelic.com](mailto:support@newrelic.com) para obtener el "especial"; Variable a configurar para habilitar la característica. Rara vez se necesita. ; ; En versiones anteriores del agente, esto se conocía como "top100". ; ;newrelic.transaction_tracer.detail = 1 - -; ; Setting: newrelic.transaction_tracer.slow_sql ; Type : boolean ; Scope : per-directory ; Default: true ; Info : habilita o deshabilita el rastreador de "SQL lento". Cuando esté habilitado, esto hará; registre las 10 llamadas SQL más lentas junto con un rastreo del stack de ; donde ocurrió la llamada en su código. ; ;newrelic.transaction_tracer.slow_sql = true - -; ; Setting: newrelic.transaction_tracer.stack_trace_threshold ; Type : time specification string ("500ms", "1s750ms" etc) ; Scope : per-directory ; Default: 500ms ; Info : establece el umbral por encima del cual el agente de New Relic registrará un; rastreo del stack para una traza de la transacción. ; ;newrelic.transaction_tracer.stack_trace_threshold = 500 - -; ; Setting: newrelic.transaction_tracer.explain_enabled ; Type : boolean ; Scope : per-directory ; Default: true ; Info : Habilita o deshabilita la solicitud de "explicar planes" desde MySQL y; Base de datos PostgreSQL para llamadas SQL lentas. El umbral para ; Solicitar planes explicativos se define a continuación. ; ;newrelic.transaction_tracer.explain_enabled = true - -; ; Setting: newrelic.transaction_tracer.explain_threshold ; Type : time specification string ("750ms", "1s 500ms" etc) ; Scope : per-directory ; Default: 500ms ; Info : Utilizado por el rastreador SQL lento para establecer el umbral por encima del cual un SQL; La declaración se considera "lenta" y para establecer el umbral por encima del cual; el rastreador de transacciones solicitará un "plan explicativo" de los datos; base para SQL lento. Es posible que esta última característica aún no esté activa, por favor; Consulte las notas de la versión del agente para ver cuándo estará disponible. ; Solo es relevante si el valor de explicó_enabled anterior está establecido en verdadero. ;newrelic.transaction_tracer.explain_threshold = 500 - -; ; Setting: newrelic.transaction_tracer.record_sql ; Type : "off", "raw" or "obfuscated" ; Scope : per-directory ; Default: "obfuscated" ; Info : establece cómo se registran las declaraciones SQL (si es que se registran). Si esto está configurado en ; "sin procesar", entonces no se intenta ofuscar las declaraciones SQL. ESTO ES ; ¡ALTAMENTE DESACONSEJADO EN entorno de producción! Estableciendo esto en bruto; tiene implicaciones de seguridad considerables ya que puede exponer datos sensibles; y datos privados de clientes. ; ;newrelic.transaction_tracer.record_sql = "obfuscated" - -; Escenario: newrelic.transacción.custom ; Tipo: cadena; Alcance: por directorio; Valor predeterminado: ninguno; Información: establece el nombre de las funciones adicionales que desea utilizar en el instrumento y; aparecer en la traza de la transacción. Esto sólo es significativo si tienes ; establezca newrelic.transacción.detail en 0. Puede ser una coma-; lista separada de nombres de métodos de función o clase. ; ;newrelic.transacción.custom="" - -; ; Setting: newrelic.framework ; Type : string ; Scope : per-directory ; Default: empty (auto-detect framework) ; Info : Fuerza que el framework sea uno de los marcos admitidos. Este ; solo debe usarse si falla la detección automática, en cuyo caso ; nosotros ([support@newrelic.com](mailto:support@newrelic.com)) Me gustaría mucho saber sobre ; fallo de detección. Debe ser uno de los siguientes valores: ; cakephp, codeigniter, drupal, joomla, kohana, magento, mediawiki, ; Symfony, WordPress, Yii, Zend o no_framework. ; ;newrelic.framework = "" - -; ; Setting: newrelic.webtransaction.name.remove_trailing_path ; Type : boolean ; Scope : per-directory ; Default: false ; Info : Se utiliza para ayudar a nombrar correctamente la transacción cuando no es compatible; se está utilizando framework . Esta opción causará cualquier cosa después de ; nombre del script que se eliminará de una URL. Por ejemplo, configurando esto; haría que "/xyz/zy" se elimine de una URL como ; "/path/to/foo.php/xyz/zy". ; ;newrelic.webtransaction.name.remove_trailing_path = false - -; ; Setting: newrelic.webtransaction.name.functions ; Type : string ; Scope : per-directory ; Default: none ; Info : A menos que se haya implementado un framework específico como Drupal o Wordpress; detectadas, las transacciones se nombran según el primer script; encontrado, como login.php. Sin embargo, si utiliza un despachador; archivo como index.php esto produce datos menos útiles. Si utiliza ; un despachador para redirigir a acciones como "iniciar sesión", "mostrar", "editar"; etc, puede configurar esto en las funciones de nivel superior para esas acciones; y los nombres de funciones especificados aquí se utilizarán para nombrar el; transacción. ; ;newrelic.webtransaction.name.functions = "" - -; ; Setting: newrelic.webtransaction.name.files ; Type : string ; Scope : per-directory ; Default: none ; Info : Igual que newrelic.webtransaction.name.functions arriba pero usando file; nombres en lugar de nombres de funciones. Acepta el estándar POSIX regular; expresiones. ; ;newrelic.webtransaction.name.files = "" - -; ; Setting: newrelic.analytics_events.enabled ; Type : boolean ; Scope : per-directory ; Default: true ; info : Recopile y reporte datos de eventos analíticos. Los datos del evento permiten; New Relic UI de Relic para mostrar información adicional como histograma en; el costo de la memoria adicional daemon y la comunicación del recolector. ; -;newrelic.analytics_events.enabled = true \ No newline at end of file diff --git a/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx b/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx deleted file mode 100644 index 78eb0539ec5..00000000000 --- a/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: Crear y desplegar capas de imágenes New Relic Lambda -metaDescription: 'After enabling New Relic''s containerized Lambda function, you can create a layer as an image.' -freshnessValidatedDate: never -translationType: machine ---- - -Con la función Lambda en contenedor, puede crear capas Lambda utilizando imágenes de contenedor. Como alternativa para desplegar capas como .zip Los archivos, las imágenes del contenedor permiten una mayor flexibilidad y una seguridad mejorada. - -## Requisitos previos [#prereqs] - -Antes de comenzar, asegúrese de haber creado un Dockerfile que incluya el entorno de ejecución elegido, haber instalado su dependencia y haberlo copiado en la estructura de directorio correcta. - -## Utilice una capa New Relic Lambda prediseñada [#prebuilt] - -Primero, necesitas crear tus capas de imagen. Una vez hecho esto, puede crear una función ECR regular o pública. Para ayudarlo con esto, hemos creado una [galería de capas New Relic Lambda para docker alojado en Amazon ECR](https://gallery.ecr.aws/x6n7b2o2?page=1). - -## Crea tu propia capa New Relic desde cero [#create-lambda-layer] - -Siga estos pasos para crear su propia capa New Relic Lambda. - - - - ### Crear una capa New Relic Lambda - - Antes de poder desplegar su imagen, primero debe crear una capa New Relic Lambda. Para hacer esto, complete los siguientes pasos: - - 1. Elija entre las diferentes [capas de Nombre de recurso de Amazon (ARN) disponibles](https://layers.newrelic-external.com/#/get-layers/get) para encontrar la que coincida con su sistema. - 2. Cree una nueva imagen docker usando el siguiente código: - - ``` - FROM alpine:latest as layer-copy - # Create a build stage to copy the files from S3 using credentials ARG AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-"region"} - ARG AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-"accessKey"} - ARG AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-"secretkey"} ENV AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION} - ENV AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - ENV AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - RUN apk add aws-cli curl unzip - RUN mkdir -p /opt - RUN curl $(aws lambda get-layer-version-by-arn --arn --query 'Content.Location' --output text) --output layer.zip - RUN unzip layer.zip -d /opt - RUN rm layer.zip - FROM scratch - # Start second stage from blank image to squash all previous history, including credentials. - WORKDIR /opt - COPY --from=layer-copy /opt . - ``` - - 3. Envíe esa imagen a Amazon ECR. - - ``` - docker build -t layer-image1:latest . - ``` - - - - ### Desplegar la imagen en AWS ECR [#deploy-image-ECR] - - Ahora que has creado la imagen, puedes desplegarla siguiendo los siguientes pasos: - - 1. Asegúrese de haber instalado [AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) en su sistema. - 2. Autentique su cuenta de AWS utilizando el siguiente comando: - - ``` - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com - ``` - - 3. Cree un repositorio en Amazon ECR usando el comando `create-repository` : - - ``` - aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE - ``` - - 4. Copie el `repositoryUri` del resultado del paso anterior. - 5. Para etiquetar su imagen local en su repositorio de Amazon ECR como la última versión, ejecute el comando docker etiqueta: - - ``` - Replace docker-image:test with the name and tag of your Docker image. - ``` - - 6. Reemplace < ECRrepositoryUri > con el `repositoryUri` que copió. Asegúrese de incluir `:latest` al final del URI. Aquí hay un ejemplo: - - ``` - docker tag docker-image:test :latest - ``` - - 7. Ejecute el comando docker push para desplegar su imagen local en el repositorio de Amazon ECR. Asegúrese de incluir `:latest` al final del URI del repositorio. - - ``` - docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - - -## Cree una función Lambda en contenedor con la imagen de capa New Relic ECR [#lambda-function-image-layer] - -Ahora que ha creado la capa de imagen, es posible que necesite crear una función Lambda. Puede crear una capa ECR pública o normal. - - - - ### Cree una función Lambda con una capa de imagen New Relic - - Ahora que ha creado la imagen y la ha implementado en AWS ECR, ahora necesita crear una función Lambda. Para hacer esto, complete los siguientes pasos: - - 1. Utilice el URI de la imagen de la capa New Relic que eligió o su propia capa de imagen y agregue el URI de la imagen a su Dockerfile. He aquí un ejemplo: - - ``` - FROM AS layer - ``` - - 2. Agregue el directorio para la capa. Aquí hay un ejemplo: - - ``` - # Layer code - WORKDIR /opt - COPY --from=layer /opt/ . - ``` - - 3. Aquí tienes un ejemplo completo: - - ``` - FROM AS layer - FROM public.ecr.aws/lambda/python:3.9 - # Layer code - WORKDIR /opt - COPY --from=layer /opt/ . - WORKDIR ${LAMBDA_TASK_ROOT} - # Copy requirements.txt - COPY requirements.txt ${LAMBDA_TASK_ROOT} - # Copy function code - COPY lambda_function.py ${LAMBDA_TASK_ROOT} - # Install the specified packages - RUN pip freeze > requirements.txt - # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) - CMD [ "lambda_function.handler" ] - ``` - - 4. Envíe la imagen a Amazon ECR. - - ``` - docker build -t docker-image-sample:latest - ``` - - - - ### Pruebe la imagen localmente (opcional) [#test-image] - - Si bien este paso es opcional, recomendamos probar la imagen localmente para garantizar que todo funcione correctamente. - - 1. Inicie la imagen de Docker con el comando docker run: - - ``` - docker run -p 9000:8080 docker-image-sample:latest - ``` - - 2. Desde una nueva ventana de terminal, publique un evento en el siguiente extremo usando un comando curl: - - ``` - curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' - ``` - - - - ### Crear una función Lambda de imagen de contenedor [#create-container-image] - - 1. Elija la opción de imagen del contenedor. - 2. Nombra tu función. - 3. Explore su ECR y seleccione. - 4. Elige tu arquitectura y crea. - 5. Una vez que cree la función, agregue la variable de entorno. A continuación se muestran las variables de entorno que puede agregar: - - ``` - NEW_RELIC_ACCOUNT_ID : - NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS : boolean value - NEW_RELIC_LAMBDA_EXTENSION_ENABLED : boolean value - NEW_RELIC_LAMBDA_HANDLER : index.handler - NEW_RELIC_LICENSE_KEY : - NEW_RELIC_LOG_ENDPOINT : - NEW_RELIC_TELEMETRY_ENDPOINT : - ``` - - 6. El entorno extremo son: - - * NEW_RELIC_TELEMETRY_ENDPOINT - - * Producción: [https://cloud-collector.newrelic.com/aws/lambda/v1](https://cloud-collector.newrelic.com/aws/lambda/v1) - * Producción europea: [https://cloud-collector.eu01.nr-data.net/aws/lambda/v1](https://cloud-collector.eu01.nr-data.net/aws/lambda/v1) - - * NEW_RELIC_LOG_ENDPOINT \*Producción: [https://log-api.newrelic.com/log/v1](https://log-api.newrelic.com/log/v1) - - * Producción europea: [https://log-api.eu.newrelic.com/log/v1](https://log-api.eu.newrelic.com/log/v1) - - 7. Ahora, agregue un controlador CMD basado en su idioma. Para obtener más información, consulte nuestra [documentación sobre instrumentación Lambda.](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/) - - \ No newline at end of file diff --git a/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx b/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx deleted file mode 100644 index 18556d1b15f..00000000000 --- a/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Comience con la función Lambda en contenedores -metaDescription: Create containerized Lambda functions with New Relic. -freshnessValidatedDate: never -translationType: machine ---- - -import serverlessLambdaContainerizedFunctions from 'images/serverless_screenshot-full_lambda-containerized-functions.webp' - -La función Lambda en contenedores ofrece una forma alternativa de desplegar código dentro de AWS Lambda y al mismo tiempo disfrutar de los beneficios de la informática sin servidor. - -Con New Relic, puede monitor la función Lambda desplegar de AWS utilizando imágenes en contenedores, de modo que pueda: - -* **Aumente la flexibilidad**: utilice herramientas de contenedor familiares y aproveche las imágenes prediseñadas para su código y dependencia. -* **Mejore la seguridad**: benefíciese del aislamiento de contenedores y de las posibles ventajas de seguridad asociadas con los entornos en contenedores. -* **Garantice un tiempo de ejecución coherente**: garantice un entorno de desarrollo, prueba y despliegue coherente. - -A screenshot for containerized Lambda functions - -
- Para ver su función Lambda en contenedor en la UI, vaya a [**one.newrelic.com > All capabilities**](https://one.newrelic.com/all-capabilities) > función serverless. -
- -## Requisitos [#Requirements] - -Para crear una función Lambda en contenedor usando Node.js, necesitas lo siguiente: - -* \[Interfaz de línea de comando de AWS (AWS CLI) versión 2] ([https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)) -* [Docker](https://docs.docker.com/get-docker/) -* Node.js versiones 16 o 18 -* Versión de Python 3.9+ - - - - - - ## Crear un directorio de proyecto [#project-directory] - - Cuando crea una función en contenedores, el primer paso es crear un directorio de proyecto. Puede hacerlo completando estos pasos: - - 1. Correr: - - ``` - mkdir example_node - cd example_node - npm init - vi index.js and add the following code. - exports.handler = async (event) => { - const response = { - statusCode: 200, - body: JSON.stringify('Hello from Lambda!'), - }; - return response; - }; - ``` - - 2. Una vez que haya terminado, cree un nuevo archivo docker con la siguiente configuración: - - ``` - FROM public.ecr.aws/lambda/nodejs:18 - # Copy function code COPY index.js - ${LAMBDA_TASK_ROOT} - # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) - CMD [ "index.handler" ] - - ``` - - 3. A continuación, cree la imagen de la docker con la compilación de la docker : - - ``` - docker build --platform linux/amd64 -t docker-image:test - ``` - - - - ## Pruebe la imagen localmente (opcional) [#test-image] - - Antes de continuar, recomendamos probar la imagen localmente para asegurarse de que todo funcione como se esperaba. Para ello complete lo siguiente: - - 1. Inicie la imagen de Docker con el comando docker run: - - ``` - docker run -p 9000:8080 docker-image:test - ``` - - 2. Desde una nueva ventana de terminal, publique un evento en el siguiente extremo usando un comando curl: - - ``` - curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' - ``` - - 3. Obtenga la identificación del contenedor. - - ``` - docker ps - ``` - - 4. Utilice el comando docker Kill para detener el contenedor. Cuando utilice este comando, reemplace `3766c4ab331c` con el ID del contenedor del paso anterior. - - ``` - docker kill 3766c4ab331c - ``` - - - - ## Desplegar la imagen [#deploy-image] - - Ahora que ha creado correctamente la imagen, deberá cargarla en Amazon ECR y crear la función Lambda. Para hacer esto, complete lo siguiente: - - 1. Ejecute el comando `get-login-password` para autenticar la CLI docker en su registro de Amazon ECR. - 2. Establezca el valor `--region` en la región de AWS donde desea crear el repositorio de Amazon ECR. - 3. Reemplace 111122223333 con su ID de cuenta de AWS. - - ``` - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com - ``` - - 4. Cree un repositorio en Amazon ECR mediante el comando create-respositorio. - - ``` - aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE - ``` - - 5. Copie el `repositoryUri` del resultado del paso anterior. - 6. Ejecute el comando [docker etiqueta](https://docs.docker.com/reference/cli/docker/image/tag/) para etiquetar su imagen local en su repositorio de Amazon ECR como la última versión. En este comando, reemplace `docker-image:test` con el nombre y la etiqueta de su imagen docker . Luego reemplace < ECRrepositoryUri > con el `repositoryUri` que copió. Asegúrese de incluir `:latest` al final del URI. - - ``` - docker tag docker-image:test :latest - EX: docker tag docker-image:test 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - 7. Ahora, ejecute el comando docker push para desplegar su imagen local en el repositorio de Amazon ECR. Asegúrese de incluir `:latest` al final del URI del repositorio. - - ``` - docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - - - ## Crear una función Lambda en contenedor [#create-containerized-function] - - Ahora está listo para crear una función Lambda en contenedor. - - Asegúrese de crear un rol de ejecución para su función, si aún no tiene uno. Para obtener más información sobre esto, consulte la [documentación de AWS sobre la creación de un rol de ejecución](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html#with-userapp-walkthrough-custom-events-create-iam-role). Para el siguiente paso, necesitará el nombre del recurso de Amazon, o ARN, del rol. - - Ahora está listo para crear la función Lambda. Al completar el siguiente comando, debe especificar el URI del repositorio anterior para los campos `Image` y `ImageUri` . Asegúrese de incluir `:latest` al final del URI. - - ``` - aws lambda create-function \ --function-name hello-world \ --package-type Image \ --code ImageUri=111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest \ --role arn:aws:iam::111122223333:role/lambda-ex - ``` - - A continuación, invocas la función: - - ``` - aws Lambda invoke --function-name hello-world response.json - ``` - - Si tiene alguna pregunta, consulte [la documentación de AWS para desplegar función Lambda con imágenes de contenedor](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-image.html). - - - - - - - - Una vez que haya completado esta configuración, puede crear una capa New Relic Lambda como una imagen. - - - - Revise nuestras capacidades de monitoreo Lambda. - - \ No newline at end of file diff --git a/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-legacy.mdx b/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-legacy.mdx deleted file mode 100644 index 63406f12277..00000000000 --- a/src/i18n/content/es/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-legacy.mdx +++ /dev/null @@ -1,504 +0,0 @@ ---- -title: Instrumentación manual legacy para monitoreo Lambda -metaDescription: Legacy instructions for manually enabling New Relic monitoring for AWS Lambda. -freshnessValidatedDate: never -translationType: machine ---- - -En esta página, aprenderá cómo instrumentar manualmente su función Lambda. Está organizado por lenguaje de ejecución. Si aún no lo ha hecho, cree su cuenta New Relic gratuita a continuación para comenzar a monitorear sus datos hoy. - - - - - - Para instrumentar su Lambda en lenguaje Go: - - 1. Descargue nuestro paquete de agente Go y colóquelo en el mismo directorio que su función. - - 1. Instale el agente ejecutando: - - ```shell - go get -u github.com/newrelic/go-agent/v3/newrelic - ``` - - 2. Instale la integración `nrlambda` ejecutando: - - ```shell - go get -u github.com/newrelic/go-agent/v3/integrations/nrlambda - ``` - - 2. En su código Lambda, importe nuestros componentes, cree una aplicación y actualice cómo inicia su Lambda. Vea nuestros ejemplos de instrumentación: - - * [Repositorio de extensiones](https://github.com/newrelic/newrelic-lambda-extension/tree/main/examples/sam/go) - * [Repositorio de agente Go](https://github.com/newrelic/go-agent/blob/master/v3/integrations/nrlambda/example/main.go) - - 3. Opcionalmente, agregue [un evento personalizado](/docs/using-new-relic/welcome-new-relic/getting-started/glossary#custom-event) que se asociará con su invocación de Lambda mediante la [API`RecordCustomEvent` ](/docs/agents/go-agent/features/create-custom-events-insights-go). Por ejemplo: - - ```go - func handler(ctx context.Context) { - if txn := newrelic.FromContext(ctx); nil != txn { - txn.Application().RecordCustomEvent("MyEvent", map[string]interface{}{ - "zip": "zap", - }) - } - fmt.Println("hello world!") - } - ``` - - 4. Cree y comprima su función Lambda y cárguela en AWS. - - - - Aquí hay sugerencias para comprimir y cargar Lambda: - - 1. Compile el binario para su ejecución en Linux. Esto produce un archivo binario llamado `main`. Puedes usar: - - ```bash - GOOS=linux go build -o main - ``` - - 2. Comprima el binario en un paquete desplegable usando: - - ```bash - zip deployment.zip main - ``` - - 3. Cargue el archivo zip en AWS mediante la consola de AWS Lambda o la CLI de AWS. Nombra el controlador `main` (para que coincida con el nombre dado durante la compilación binaria). - - - - 5. Las siguientes variables de entorno no son necesarias para que funcione el monitoreo de Lambda, pero sí si desea que su función Lambda se incluya en rastreo distribuido. Para habilitar [rastreo distribuido](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing), configure estas [variables de entorno](https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html) en la consola de AWS: - - * `NEW_RELIC_ACCOUNT_ID`. Su [ID de cuenta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY.` Este también es su [ID de cuenta](/docs/accounts/install-new-relic/account-setup/account-id). Si su cuenta es una cuenta infantil, este es el ID de cuenta para la cuenta raíz/principal. - - 6. Opcionalmente, para configurar el registro, consulte [al registro del agente Go](/docs/agents/go-agent/configuration/go-agent-logging). - - 7. Invoque Lambda al menos una vez. Esto crea un grupo log de CloudWatch, que debe estar presente para que funcione el siguiente paso. - - Nuestro contenedor recopila datos sobre la ejecución de Lambda, genera un mensaje JSON y lo registra en el registro de CloudWatch. A continuación, [configurará CloudWatch para enviar esos registros a New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - - - El monitoreo para AWS Lambda en Java no utiliza nuestro [APM agente de Java](/docs/agents/java-agent). En su lugar, utiliza estas dos dependencias de OpenTracing: - - * AWS Lambda OpenTracing Java SDK: instrumentación [de OpenTracing](https://github.com/opentracing) para AWS Lambda RequestHandler y RequestStreamHandler. - - * Nuestro rastreador AWS Lambda OpenTracing: una implementación de rastreador OpenTracing diseñada para monitor AWS Lambda. Genera spans, evento de error, evento de transacción, error traza y brinda soporte de rastreo distribuido. - - - - **Supported OpenTracing Versions** - - - * **OpenTracing 0.31.0** - - : - - * Lambda rastreador: [com.newrelic.opentracing:newrelic-java-lambda:1.1.1](https://search.maven.org/artifact/com.newrelic.opentracing/newrelic-java-lambda/1.1.1/jar) - * SDK de Lambda: [com.newrelic.opentracing:java-aws-lambda:1.0.0](https://search.maven.org/artifact/com.newrelic.opentracing/java-aws-lambda/1.0.0/jar) - - * **OpenTracing 0.32.0, 0.33.0** - - : - - * Lambda rastreador: [com.newrelic.opentracing:newrelic-java-lambda:2.2.1](https://search.maven.org/artifact/com.newrelic.opentracing/newrelic-java-lambda) - * SDK de Lambda: [com.newrelic.opentracing:java-aws-lambda:2.1.0](https://search.maven.org/artifact/com.newrelic.opentracing/java-aws-lambda) - - - Para instrumentar su Java Lambda: - - 1. En el archivo `build.gradle` de su proyecto, incluya nuestro OpenTracing AWS Lambda Tracer y la dependencia del SDK de AWS Lambda OpenTracing: - - ```java - dependencies { - compile("com.newrelic.opentracing:java-aws-lambda:2.1.0") - compile("com.newrelic.opentracing:newrelic-java-lambda:2.2.1") - compile("io.opentracing:opentracing-util:0.33.0") - } - ``` - - 2. Implemente la interfaz AWS Lambda `RequestHandler` como se muestra en el [ejemplo de Java Lambda](https://github.com/newrelic/newrelic-lambda-tracer-java#usage) y anule el método `doHandleRequest` . - - 3. En el método `doHandleRequest` , llame a la API `LambdaTracing.instrument(...)` para crear un intervalo de raíz para trazar la ejecución de la función Lambda. Aquí también es donde definirá su lógica de negocios para la función Lambda. - - 4. Registre un `LambdaTracer.INSTANCE` como rastreador de OpenTracing Global, como se muestra en el [ejemplo de Java Lambda](https://github.com/newrelic/newrelic-lambda-tracer-java#usage). - - 5. [Cree un paquete ZIP desplegable](https://docs.aws.amazon.com/lambda/latest/dg/java-package.html) y cárguelo en AWS Lambda. O desplegarlo por otros medios. - - 6. En la consola de AWS Lambda, configure el controlador. Para el [ejemplo Java Lambda](https://github.com/newrelic/newrelic-lambda-tracer-java#usage), el controlador sería `com.handler.example.MyLambdaHandler::handleRequest`. Como se supone `handleRequest` , también puedes usar `com.handler.example.MyLambdaHandler`. - - 7. Las siguientes [variables de entorno de la consola de AWS](https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html) son necesarias si desea que su función Lambda se incluya en [rastreo distribuido](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing). Esto es recomendable. - - * `NEW_RELIC_ACCOUNT_ID`. Su [ID de cuenta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_PRIMARY_APPLICATION_ID`. Este también es su [ID de cuenta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY`. Este también es su [ID de cuenta](/docs/accounts/install-new-relic/account-setup/account-id). Si su cuenta es una cuenta secundaria, este debe ser el ID de la cuenta raíz/principal. - - 8. Opcional: en la consola de Lambda, habilite el registro de depuración agregando esta variable de entorno: `NEW_RELIC_DEBUG` es `true`. - - 9. Invoque Lambda al menos una vez. Esto crea un grupo log de CloudWatch, que debe estar presente para que funcione el siguiente paso. - - Nuestro contenedor recopila datos sobre la ejecución de Lambda, genera un mensaje JSON y lo registra en el registro de CloudWatch. A continuación, [configurará CloudWatch para enviar esos registros a New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - Consulte el [ejemplo de rastreo distribuido de AWS Lambda](https://github.com/newrelic/newrelic-lambda-tracer-java/tree/main/examples/distributed-tracing-example) para ver un proyecto completo que ilustra casos de uso comunes como: - - * Rastreo distribuido entre función Lambda - * Creación manual de tramos (también conocida como instrumentación personalizada) - * Seguimiento de llamadas externas - * Agregar atributo personalizado (también conocido como etiqueta) a los tramos - - - - Nuestro monitoreo de la función Lambda de AWS basada en .NET Core no utiliza nuestro [agente APM de .NET Core](/docs/agents/net-agent/installation/compatibility-requirements-net-core-agent) estándar. En su lugar, utiliza un paquete NuGet. - - Para instrumentar su .NET Core Lambda: - - 1. En su proyecto función Lambda, instale el paquete `NewRelic.OpenTracing.AmazonLambda.Tracer` NuGet. - - Nota: `NewRelic.OpenTracing.AmazonLambda.Tracer` depende de la versión 1.2.0+ del paquete `Amazon.Lambda.APIGatewayEvent` NuGet. Si el entorno ya utiliza una versión inferior de `Amazon.Lambda.APIGatewayEvent`, el paquete New Relic puede producir errores como `System.MissingMethodException` . - - 2. Importe el paquete NuGet y las utilidades OpenTracing: - - ```cs - using OpenTracing.Util; - using NewRelic.OpenTracing.AmazonLambda; - ``` - - 3. Instrumentado su función, como se muestra en este ejemplo: - - ```cs - public class Function - { - static Function() - { - // Register The NewRelic Lambda Tracer Instance - GlobalTracer.Register(NewRelic.OpenTracing.AmazonLambda.LambdaTracer.Instance); - } - - public object FunctionWrapper(ILambdaContext context) - { - // Instantiate NewRelic TracingWrapper and pass your FunctionHandler as - // an argument - return new TracingRequestHandler().LambdaWrapper(FunctionHandler, context); - } - - /// - /// A simple function that takes a string and does a ToUpper - /// - /// - /// - /// - public object FunctionHandler(ILambdaContext context) - { ... } - - } - ``` - - - Los argumentos pasados a `FunctionWrapper` deben coincidir con la firma de `FunctionHandler`. - - - Si su función de controlador devuelve una Tarea, el contenedor Lambda bloqueará la tarea devuelta hasta que se complete, de modo que pueda medir la duración y capturar excepciones, si hay alguna presente. Además, también puedes heredar del `APIGatewayProxyFunction`. - - Para ver un ejemplo, consulte a continuación: - - - - ```cs - public async Task FunctionHandlerAsync(ILambdaContext lambdaContext) - { - return await new TracingRequestHandler().LambdaWrapper( - ActualFunctionHandlerAsync, lambdaContext); - } - - public async Task ActualFunctionHandlerAsync(ILambdaContext - lambdaContext) - { - // Function can make other async operations here - ... - } - ``` - - - - ```cs - public class LambdaFunction : APIGatewayProxyFunction - { - static LambdaFunction() - { - // Register The NewRelic Lambda Tracer Instance - OpenTracing.Util.GlobalTracer.Register(NewRelic.OpenTracing.AmazonLambda.LambdaTracer.Instance); - } - - public override Task FunctionHandlerAsync(APIGatewayProxyRequest request, ILambdaContext lambdaContext) - { - Task task = new TracingRequestHandler().LambdaWrapper(ActualFunctionHandlerAsync, request, lambdaContext); - return task; - } - - public Task ActualFunctionHandlerAsync(APIGatewayProxyRequest request, ILambdaContext lambdaContext) - { - return base.FunctionHandlerAsync(request, lambdaContext); - } - } - ``` - - - - 4. Opcional para SQS y SNS: a partir de la versión 1.0 de nuestro rastreador .NET Lambda, se agregó soporte [de rastreo distribuido](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing) para SQS y SNS. Para habilitar rastreo distribuido para SQS o SNS, deberá completar los elementos de este paso, así como configurar las variables de entorno en el paso siguiente a este. - - - Habilitar el soporte de rastreo distribuido para SQS y SNS deshabilitará la instrumentación automática tanto para SQS como para SNS y requerirá el uso de estos contenedores para instrumentarlos. - - - 1. Establezca la variable de entorno `NEW_RELIC_USE_DT_WRAPPER` en `true`. - 2. Para instrumentar llamadas SQS y SNS, deberá utilizar los envoltorios proporcionados. - - - - El contenedor SQS admite el empaquetado de los siguientes métodos: - - * Amazon.SQS.AmazonSQSClient.SendMessageAsync(...) - - * Amazon.SQS.AmazonSQSClient.SendMessageBatchAsync(...) - - Ejemplos - - ```cs - - // SQS Client - AmazonSQSClient client = new AmazonSQSClient("AWS_SECRET_ACCESS_KEY", AWS_REGION); - - // SendMessageRequest - SendMessageRequest sendRequest = new SendMessageRequest("QUEUE_URI_STRING", "An SQS Message"); - Task responseOne = SQSWrapper.WrapRequest(client.SendMessageAsync, sendRequest); - - // String-based - Task responseTwo = SQSWrapper.WrapRequest(client.SendMessageAsync, "QUEUE_URI_STRING", "Another SQS Message"); - - // SendMessageBatchRequest - List batchEntries = new List(); - batchEntries.Add(new SendMessageBatchRequestEntry("id1", "First SQS Message")); - batchEntries.Add(new SendMessageBatchRequestEntry("id2", "Second SQS Message")); - batchEntries.Add(new SendMessageBatchRequestEntry("id3", "Third SQS Message")); - SendMessageBatchRequest sendBatchRequest = new SendMessageBatchRequest(QUEUE_URI, batchEntries); - Task response = SQSWrapper.WrapRequest(client.SendMessageBatchAsync, sendBatchRequest); - - // SendMessageBatchRequestEntry List - List moreBatchEntries = new List(); - batchEntries.Add(new SendMessageBatchRequestEntry("id4", "Fourth SQS Message")); - batchEntries.Add(new SendMessageBatchRequestEntry("id5", "Fifth SQS Message")); - batchEntries.Add(new SendMessageBatchRequestEntry("id6", "Sixth SQS Message")); - Task response = SQSWrapper.WrapRequest(client.SendMessageBatchAsync, moreBatchEntries); - - ``` - - - - El contenedor SNS admite el empaquetado de los siguientes métodos: - - * Amazon.SimpleNotificationService.AmazonSimpleNotificationServiceClient.PublishAsync(...) - - Ejemplos - - ```cs - - // SNS Client - AmazonSimpleNotificationServiceClient client = new Amazon.SimpleNotificationService.AmazonSimpleNotificationServiceClient("AWS_SECRET_ACCESS_KEY", AWS_REGION); - - // PublishRequest - Phone Number - PublishRequest phonePublishRequest = new PublishRequest(); - phonePublishRequest.PhoneNumber = +1XXX5555100; - phonePublishRequest.Message = "An SNS Message for phones"; - Task phoneResponse = SNSWrapper.WrapRequest(client.PublishAsync, phonePublishRequest); - - // PublishRequest - ARN - PublishRequest publishRequest = new PublishRequest("TOPIC_ARN", "An SNS Message"); - Task publishResponse = SNSWrapper.WrapRequest(client.PublishAsync, publishRequest); - - // String-based without subject - Task responseOne = SNSWrapper.WrapRequest(client.PublishAsync, "TOPIC_ARN", "Another SNS Message"); - - // String-based with subject - Task responseTwo = SNSWrapper.WrapRequest(client.PublishAsync, "TOPIC_ARN", "Yet Another SNS Message", "A Subject"); - - ``` - - - - 5. Las siguientes variables de entorno no son necesarias para que funcione el monitoreo de Lambda, pero sí si desea que su función Lambda se incluya en rastreo distribuido. Para habilitar [rastreo distribuido](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing), configure estas variables de entorno en la [consola de AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html): - - * `NEW_RELIC_ACCOUNT_ID`: el [ID de la cuenta](/docs/accounts/install-new-relic/account-setup/account-id) a la que informa Lambda. - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY`: Este es también el [ID de la cuenta](/docs/accounts/install-new-relic/account-setup/account-id). Si su cuenta es una cuenta infantil, este debe ser el ID de la cuenta raíz/principal. - - 6. Asegúrese de que la función contenedora (`FunctionWrapper` en el ejemplo anterior) esté configurada como controlador de funciones. - - 7. Invoque Lambda al menos una vez. Esto crea un grupo log de CloudWatch, que debe estar presente para que funcione el siguiente paso. - - Nuestro contenedor recopila datos sobre la ejecución de Lambda, genera un mensaje JSON y lo registra en el registro de CloudWatch. A continuación [, configurará CloudWatch para enviar esos registros a New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - - - Para instrumentar su Lambda Node.js: - - 1. Descargue nuestro paquete de agente Node.js y colóquelo en el mismo directorio que su función, asegurándose de que el agente esté instalado como una dependencia en el directorio `node_modules` . Utilice el Nodo administrador de paquetes: - - ```bash - - npm install newrelic --save - - ``` - - 2. En su código Lambda, solicite el módulo de agente en la parte superior del archivo y ajuste la función del controlador. Por ejemplo: - - ```js - - const newrelic = require('newrelic'); - - // Other module loads go under the require statement above - - module.exports.handler = newrelic.setLambdaHandler((event, context, callback) => { - // This is your handler function code - console.log('Lambda executed'); - callback(); - }); - - ``` - - 3. Opcional: también puede agregar [un evento personalizado](/docs/using-new-relic/welcome-new-relic/getting-started/glossary#custom-event) a su Lambda mediante la [API`recordCustomEvent` ](/docs/agents/nodejs-agent/api-guides/nodejs-agent-api#record_custom_event). Por ejemplo: - - ```js - module.exports.handler = newrelic.setLambdaHandler((event, context, callback) => { - newrelic.recordCustomEvent('MyEventType', { foo: 'bar' }); - console.log('Lambda executed'); - callback(); - }); - ``` - - 4. Comprima su función Lambda y la carpeta del agente Node.js juntas. Requisitos y recomendaciones: - - * No es necesario incluir los archivos de New Relic fuera de la carpeta del agente de New Relic. - * Si el nombre de su archivo de función Lambda es, por ejemplo, `lambda_function.node`, le recomendamos nombrar su archivo zip `lambda_function.zip`. No utilice un tarball. - * Su Lambda y sus módulos asociados deben estar en el directorio raíz del archivo zip. Esto significa que si comprime una carpeta que contiene los archivos, no funcionará. - - 5. Cargue el archivo comprimido en su cuenta de AWS Lambda. - - 6. En la consola de AWS, configure estas [variables de entorno](https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html): - - * `NEW_RELIC_NO_CONFIG_FILE`. Establezca en `true` si no utiliza un archivo de configuración. - * `NEW_RELIC_APP_NAME`: el nombre de su aplicación. - * `NEW_RELIC_ACCOUNT_ID`. Su [ID de cuenta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY`. Este también es su [ID de cuenta](/docs/accounts/install-new-relic/account-setup/account-id). Si su cuenta es una cuenta infantil, este debe ser el ID de la cuenta raíz/principal. - - 7. Opcional: para ejecutar el agente en modo serverless fuera de AWS en un entorno local, establezca la variable de entorno `NEW_RELIC_SERVERLESS_MODE_ENABLED` en `true`. (Al ejecutar esto en un entorno AWS Lambda, el agente se ejecutará automáticamente en modo serverless. **Do not use this variable if you're running in AWS**.) - - 8. Opcional: para habilitar el registro en modo serverless, configure estas variables de entorno: - - * Establezca `NEW_RELIC_LOG_ENABLED` en `true`. - * Establezca `NEW_RELIC_LOG` en `stdout` para la salida a CloudWatch o configúrelo en cualquier ubicación de archivo que se pueda escribir. - * `NEW_RELIC_LOG_LEVEL` está configurado en `info` de forma predeterminada y solo se usa cuando se envía el registro de funciones en su Lamba. Ver [otros niveles de log](/docs/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration#logging_config). - - 9. Opcional: si su función Lambda utiliza módulos ES, establezca la variable de entorno `NEW_RELIC_USE_ESM` en `true`. Tenga en cuenta que si usa módulos ES, debe usar async/await o promesas para su función. Las funciones basadas en devolución de llamada no son compatibles. - - 10. Invoque Lambda al menos una vez. Esto crea un grupo log de CloudWatch, que debe estar presente para que funcione el siguiente paso. - - Nuestro contenedor recopila datos sobre la ejecución de Lambda, genera un mensaje JSON y lo registra en el registro de CloudWatch. A continuación [, configurará CloudWatch para enviar esos registros a New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - Lea más sobre cómo [enviar registros de funciones con Lambda](https://github.com/newrelic/newrelic-lambda-extension). - - - - Para instrumentar su Python Lambda: - - 1. Descargue nuestro paquete de agente Python y colóquelo en el mismo directorio que su función. Para hacer esto, use pip: - - ```bash - - pip install -t . newrelic - - ``` - - - Si utiliza Homebrew, puede recibir este error: `DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both`. Para obtener más información, consulte la [publicación de Homebrew en GitHub](https://github.com/Homebrew/brew/blob/master/docs/Homebrew-and-Python.md#note-on-pip-install---user). - - - 2. En su código Lambda, importe el módulo del agente Python y decore la función del controlador utilizando el decorador New Relic. **The New Relic package must be imported first in your code.** A continuación se muestra un ejemplo: - - ```py - - import newrelic.agent - newrelic.agent.initialize() - @newrelic.agent.lambda_handler() - def handler(event, context): - ... - - ``` - - 3. Opcional: también puede agregar [un evento personalizado](/docs/using-new-relic/welcome-new-relic/getting-started/glossary#custom-event) a su Lambda mediante la [API`record_custom_event` ](/docs/agents/python-agent/python-agent-api/record_custom_event). He aquí un ejemplo: - - ```py - - @newrelic.agent.lambda_handler() - def handler(event, context): - newrelic.agent.record_custom_event('CustomEvent', {'foo': 'bar'}) - ... - - ``` - - 4. Comprima sus carpetas `lambda_function.py` y `newrelic/` juntas siguiendo estas pautas: - - * No es necesario incluir los archivos New Relic fuera de la carpeta `newrelic/` . - * Si el nombre de su archivo de función Lambda es, por ejemplo, `lambda_function.py`, asigne a su archivo zip el nombre `lambda_function.zip`. No utilice un tarball. - * Su Lambda y sus módulos asociados deben estar en el directorio raíz del archivo zip. Esto significa que si comprime una carpeta que contiene los archivos, no funcionará. - - 5. Cargue el archivo comprimido en su cuenta de AWS Lambda. - - 6. En la consola de AWS, configure esta [variable de entorno](https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html): - - * `NEW_RELIC_SERVERLESS_MODE_ENABLED`. Ajustado a `true` - - 7. Las siguientes variables de entorno no son necesarias para que funcione el monitoreo de Lambda, pero sí si desea que su función Lambda se incluya en rastreo distribuido. Para habilitar [rastreo distribuido](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing), configure estas [variables de entorno](https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html) en la consola de AWS: - - * `NEW_RELIC_DISTRIBUTED_TRACING_ENABLED`. Establecer en verdadero. - * `NEW_RELIC_ACCOUNT_ID`. Su [ID de cuenta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY`. Este también es su [ID de cuenta](/docs/accounts/install-new-relic/account-setup/account-id). Si su cuenta es una cuenta infantil, este debe ser el ID de la cuenta raíz/principal. - - 8. Opcional: para configurar el registro, utilice las [variables de entorno`NEW_RELIC_LOG` y `NEW_RELIC_LOG_LEVEL` ](/docs/agents/python-agent/configuration/python-agent-configuration#environment-variables)en la consola de AWS. - - 9. Invoque Lambda al menos una vez. Esto crea un grupo log de CloudWatch, que debe estar presente para que funcione el siguiente paso. - - El decorador de New Relic recopila datos sobre la ejecución de Lambda, genera un mensaje JSON y lo registra en el registro de CloudWatch. A continuación, [configure CloudWatch para enviar esos registros a New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - - - \ No newline at end of file diff --git a/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx b/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx deleted file mode 100644 index 48e3a156761..00000000000 --- a/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: New Relic Lambda イメージレイヤーを作成してデプロイする -metaDescription: 'After enabling New Relic''s containerized Lambda function, you can create a layer as an image.' -freshnessValidatedDate: never -translationType: machine ---- - -コンテナ化された Lambda関数を使用すると、コンテナイメージを使用して Lambda レイヤーを作成できます。 デプロイ レイヤーの代替として .zip として アーカイブ、コンテナ イメージにより、柔軟性が向上し、セキュリティが向上します。 - -## 前提条件 [#prereqs] - -始める前に、選択したランタイム環境を含む Dockerfile を構築し、依存関係をインストールし、それらを正しいディレクトリ構造にコピーしたことを確認してください。 - -## 事前に構築された New Relic Lambda レイヤーを使用する [#prebuilt] - -まず、画像レイヤーを作成する必要があります。 それが完了したら、通常の ECR 関数またはパブリック ECR 関数を作成できます。 これを支援するために、 [Amazon ECR でホストされているdocker用の New Relic Lambda レイヤーのギャラリーを](https://gallery.ecr.aws/x6n7b2o2?page=1)作成しました。 - -## 独自の New Relic レイヤーを最初から作成する [#create-lambda-layer] - -以下の手順に従って、独自の New Relic Lambda レイヤーを作成します。 - - - - ### New Relic Lambda レイヤーを作成する - - イメージをデプロイする前に、まず New Relic Lambda レイヤーを作成する必要があります。 これを行うには、次の手順を実行します。 - - 1. [利用可能なさまざまな Amazon リソースネーム (ARN) レイヤー](https://layers.newrelic-external.com/#/get-layers/get)から選択して、システムに一致するものを見つけます。 - 2. 次のコードを使用して、新しいdockerイメージを作成します。 - - ``` - FROM alpine:latest as layer-copy - # Create a build stage to copy the files from S3 using credentials ARG AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-"region"} - ARG AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-"accessKey"} - ARG AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-"secretkey"} ENV AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION} - ENV AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - ENV AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - RUN apk add aws-cli curl unzip - RUN mkdir -p /opt - RUN curl $(aws lambda get-layer-version-by-arn --arn --query 'Content.Location' --output text) --output layer.zip - RUN unzip layer.zip -d /opt - RUN rm layer.zip - FROM scratch - # Start second stage from blank image to squash all previous history, including credentials. - WORKDIR /opt - COPY --from=layer-copy /opt . - ``` - - 3. そのイメージを Amazon ECR にプッシュします。 - - ``` - docker build -t layer-image1:latest . - ``` - - - - ### AWS ECR にイメージをデプロイする [#deploy-image-ECR] - - イメージを作成したので、次の手順を使用してそれをデプロイできます。 - - 1. システムに[AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html)がインストールされていることを確認してください。 - 2. 次のコマンドを使用して AWS アカウントを認証します。 - - ``` - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com - ``` - - 3. `create-repository`コマンドを使用して、Amazon ECR にリポジトリを作成します。 - - ``` - aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE - ``` - - 4. 前のステップの出力から`repositoryUri`をコピーします。 - 5. ローカルイメージを最新バージョンとして Amazon ECR リポジトリにタグ付けするには、docker タグ コマンドを実行します。 - - ``` - Replace docker-image:test with the name and tag of your Docker image. - ``` - - 6. < ECRrepositoryUri > を、コピーした`repositoryUri`に置き換えます。 URI の末尾には必ず`:latest`を含めてください。 以下に例を示します。 - - ``` - docker tag docker-image:test :latest - ``` - - 7. docker Push コマンドを実行して、ローカル イメージを Amazon ECR リポジトリにデプロイします。 リポジトリ URI の末尾には必ず`:latest`を含めてください。 - - ``` - docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - - -## New Relic レイヤーイメージ ECR を使用してコンテナ化された Lambda関数を作成する [#lambda-function-image-layer] - -画像レイヤーを作成したので、Lambda関数を作成する必要があります。 パブリックまたは通常の ECR レイヤーを作成できます。 - - - - ### New Relic イメージレイヤーを使用して Lambda関数を作成する - - イメージを作成して AWS ECR にデプロイしたので、次は Lambda関数を作成する必要があります。 これを行うには、次の手順を実行します。 - - 1. 選択した New Relic レイヤーまたは独自のイメージレイヤーのイメージ URI を使用し、そのイメージ URI を Dockerfile に追加します。 以下に例を示します。 - - ``` - FROM AS layer - ``` - - 2. レイヤーのディレクトリを追加します。 以下に例を示します。 - - ``` - # Layer code - WORKDIR /opt - COPY --from=layer /opt/ . - ``` - - 3. 完全な例を次に示します。 - - ``` - FROM AS layer - FROM public.ecr.aws/lambda/python:3.9 - # Layer code - WORKDIR /opt - COPY --from=layer /opt/ . - WORKDIR ${LAMBDA_TASK_ROOT} - # Copy requirements.txt - COPY requirements.txt ${LAMBDA_TASK_ROOT} - # Copy function code - COPY lambda_function.py ${LAMBDA_TASK_ROOT} - # Install the specified packages - RUN pip freeze > requirements.txt - # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) - CMD [ "lambda_function.handler" ] - ``` - - 4. イメージを Amazon ECR にプッシュします。 - - ``` - docker build -t docker-image-sample:latest - ``` - - - - ### イメージをローカルでテストする (オプション) [#test-image] - - この手順はオプションですが、イメージをローカルでテストして、すべてが正しく動作することを確認することをお勧めします。 - - 1. docker run コマンドを使用して Docker イメージを開始します。 - - ``` - docker run -p 9000:8080 docker-image-sample:latest - ``` - - 2. 新しいターミナル ウィンドウから、curlコマンドを使用して次のエンドポイントにイベントを投稿します。 - - ``` - curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' - ``` - - - - ### コンテナイメージのLambda関数を作成する [#create-container-image] - - 1. コンテナー イメージのオプションを選択します。 - 2. 関数に名前を付けます。 - 3. ECR を参照して選択します。 - 4. アーキテクチャーを選択して作成します。 - 5. 関数を作成したら、環境変数を追加します。 追加できる環境変数は次のとおりです。 - - ``` - NEW_RELIC_ACCOUNT_ID : - NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS : boolean value - NEW_RELIC_LAMBDA_EXTENSION_ENABLED : boolean value - NEW_RELIC_LAMBDA_HANDLER : index.handler - NEW_RELIC_LICENSE_KEY : - NEW_RELIC_LOG_ENDPOINT : - NEW_RELIC_TELEMETRY_ENDPOINT : - ``` - - 6. 環境エンドポイントは次のとおりです。 - - * NEW_RELIC_TELEMETRY_ENDPOINT - - * 本番環境 : [https://cloud-collector.newrelic.com/aws/lambda/v1](https://cloud-collector.newrelic.com/aws/lambda/v1) - * EU プロダクション: [https://cloud-collector.eu01.nr-data.net/aws/lambda/v1](https://cloud-collector.eu01.nr-data.net/aws/lambda/v1) - - * NEW_RELIC_LOG_ENDPOINT \*制作: [https://log-api.newrelic.com/log/v1](https://log-api.newrelic.com/log/v1) - - * EU プロダクション: [https://log-api.eu.newrelic.com/log/v1](https://log-api.eu.newrelic.com/log/v1) - - 7. 次に、言語に基づいた CMD ハンドラーを追加します。 詳細については、 [Lambda インストゥルメンテーションのドキュメントを](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/)参照してください。 - - \ No newline at end of file diff --git a/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx b/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx deleted file mode 100644 index 35d29005ec6..00000000000 --- a/src/i18n/content/jp/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: コンテナ化された Lambda関数を使ってみる -metaDescription: Create containerized Lambda functions with New Relic. -freshnessValidatedDate: never -translationType: machine ---- - -import serverlessLambdaContainerizedFunctions from 'images/serverless_screenshot-full_lambda-containerized-functions.webp' - -コンテナ化された Lambda関数は、サーバーレス コンピューティングのメリットを享受しながら、AWS Lambda 内にコードをデプロイするための代替方法を提供します。 - -New Relic を使用すると、コンテナ化されたイメージを使用してデプロイされた AWS Lambda関数を監視できるため、次のことが可能になります。 - -* **柔軟性の向上**: 使い慣れたコンテナ ツールを使用し、コードと依存関係に事前に構築されたイメージを活用します。 -* **セキュリティの向上**: コンテナの分離と、コンテナ化された環境に関連する潜在的なセキュリティ上の利点の恩恵を受けます。 -* **一貫したランタイムを確保する**: 一貫した開発、テスト、デプロイメント環境を確保します。 - -A screenshot for containerized Lambda functions - -
- コンテナ化された Lambda関数を UI で表示するには、 [**one.newrelic.com > All capabilities**](https://one.newrelic.com/all-capabilities) > Serverless functions \[サーバーレス機能] に移動します。 -
- -## 要件 [#Requirements] - -Node.js を使用してコンテナ化された Lambda関数を作成するには、 次のものが必要です。 - -* \[AWS コマンドラインインターフェイス ( AWS CLI) バージョン 2] ( [https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) ) -* [Docker](https://docs.docker.com/get-docker/) -* Node.js バージョン 16 または 18 -* Python バージョン 3.9 以降 - - - - - - ## プロジェクトディレクトリを作成する [#project-directory] - - コンテナー化された関数を構築する場合、最初のステップはプロジェクト ディレクトリを作成することです。 これを行うには、次の手順を実行します。 - - 1. 以下を実行します。 - - ``` - mkdir example_node - cd example_node - npm init - vi index.js and add the following code. - exports.handler = async (event) => { - const response = { - statusCode: 200, - body: JSON.stringify('Hello from Lambda!'), - }; - return response; - }; - ``` - - 2. 完了したら、次の設定で新しいdockerファイルを作成します。 - - ``` - FROM public.ecr.aws/lambda/nodejs:18 - # Copy function code COPY index.js - ${LAMBDA_TASK_ROOT} - # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) - CMD [ "index.handler" ] - - ``` - - 3. 次に、 docker build を使用してdockerイメージをビルドします。 - - ``` - docker build --platform linux/amd64 -t docker-image:test - ``` - - - - ## イメージをローカルでテストする (オプション) [#test-image] - - 次に進む前に、イメージをローカルでテストして、すべてが期待どおりに動作することを確認することをお勧めします。 これを行うには、次の手順を実行します。 - - 1. docker run コマンドを使用して Docker イメージを開始します。 - - ``` - docker run -p 9000:8080 docker-image:test - ``` - - 2. 新しいターミナル ウィンドウから、curlコマンドを使用して次のエンドポイントにイベントを投稿します。 - - ``` - curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' - ``` - - 3. コンテナIDを取得します。 - - ``` - docker ps - ``` - - 4. docker kill コマンドを使用してコンテナを停止します。 このコマンドを使用する場合は、 `3766c4ab331c`を前の手順のコンテナ ID に置き換えます。 - - ``` - docker kill 3766c4ab331c - ``` - - - - ## 画像をデプロイする [#deploy-image] - - イメージが正常に作成されたので、イメージを Amazon ECR にアップロードして Lambda関数を作成する必要があります。 これを行うには、次の手順を実行します。 - - 1. `get-login-password` コマンドを実行して、Amazon ECR レジストリに対してdocker CLI を認証します。 - 2. `--region`値を、Amazon ECR リポジトリを作成する AWS リージョンに設定します。 - 3. 111122223333 を AWS アカウント ID に置き換えます。 - - ``` - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com - ``` - - 4. create-リポジトリ コマンドを使用して、Amazon ECR にリポジトリを作成します。 - - ``` - aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE - ``` - - 5. 前のステップの出力から`repositoryUri`をコピーします。 - 6. [docker タグ](https://docs.docker.com/reference/cli/docker/image/tag/)コマンドを実行して、ローカルイメージを最新バージョンとして Amazon ECR リポジトリにタグ付けします。 このコマンドでは、`docker-image:test` をdockerイメージの名前とタグに置き換えます。 次に、< ECRrepositoryUri > をコピーした`repositoryUri`に置き換えます。 URI の末尾に必ず`:latest`を含めてください。 - - ``` - docker tag docker-image:test :latest - EX: docker tag docker-image:test 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - 7. 次に、 docker Push コマンドを実行して、ローカル イメージを Amazon ECR リポジトリにデプロイします。 リポジトリ URI の末尾に必ず`:latest`を含めてください。 - - ``` - docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - - - ## コンテナ化された Lambda関数を作成する [#create-containerized-function] - - これで、コンテナ化された Lambda関数を作成する準備が整いました。 - - 関数の実行ロールをまだ作成していない場合は、必ず作成してください。 詳細については、 [実行ロールの作成に関する AWS ドキュメントを](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html#with-userapp-walkthrough-custom-events-create-iam-role)参照してください。 次のステップでは、ロールの Amazon リソースネーム (ARN) が必要になります。 - - これで、Lambda関数を作成する準備ができました。 次のコマンドを完了するときは、前に作成したリポジトリ URI を`Image`フィールドと`ImageUri`フィールドに指定する必要があります。 URI の末尾に必ず`:latest`を含めてください。 - - ``` - aws lambda create-function \ --function-name hello-world \ --package-type Image \ --code ImageUri=111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest \ --role arn:aws:iam::111122223333:role/lambda-ex - ``` - - 次に、関数を呼び出します。 - - ``` - aws Lambda invoke --function-name hello-world response.json - ``` - - ご質問がある場合は、[コンテナイメージを使用した Lambda関数のデプロイに関する AWS のドキュメントを](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-image.html)参照してください。 - - - - - - - - このセットアップが完了したら、New Relic Lambda レイヤーをイメージとして作成できます。 - - - - Lambda 監視機能を確認してください。 - - \ No newline at end of file diff --git a/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx b/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx deleted file mode 100644 index 576207155fd..00000000000 --- a/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: '생성 및 구현하다, 배포하다 뉴렐릭 Lambda 이미지 레이어' -metaDescription: 'After enabling New Relic''s containerized Lambda function, you can create a layer as an image.' -freshnessValidatedDate: never -translationType: machine ---- - -컨테이너화된 Lambda 함수를 사용하면 컨테이너 이미지를 사용하여 Lambda 계층을 생성할 수 있습니다. 구현하다의 대안으로, 배포하다 레이어를 .zip으로 아카이브, 컨테이너 이미지를 사용하면 유연성이 향상되고 보안이 향상됩니다. - -## 전제 조건 [#prereqs] - -시작하기 전에 선택한 런타임 환경을 포함하는 Dockerfile을 빌드하고 의존성/종속성을 설치하고 올바른 디렉터리 구조에 복사했는지 확인하세요. - -## 사전 구축된 뉴렐릭 Lambda 레이어 사용 [#prebuilt] - -먼저 이미지 레이어를 생성해야 합니다. 완료되면 일반 또는 공개 ECR 기능을 생성할 수 있습니다. 이를 돕기 위해 [Amazon ECR에서 호스팅되는 docker 용 뉴렐릭 Lambda 레이어 갤러리를](https://gallery.ecr.aws/x6n7b2o2?page=1) 만들었습니다. - -## 나만의 뉴렐릭 레이어를 처음부터 만들어보세요 [#create-lambda-layer] - -다음 단계에 따라 나만의 블루렐릭 Lambda 레이어를 생성하세요. - - - - ### 뉴렐릭 Lambda 레이어 생성 - - 이미지를 구현하고 배포하기 전에 먼저 뉴렐릭 Lambda 레이어를 생성해야 합니다. 이렇게 하려면 다음 단계를 완료하세요. - - 1. [사용 가능한 다양한 Amazon 리소스 이름(ARN) 계층](https://layers.newrelic-external.com/#/get-layers/get) 중에서 선택하여 시스템과 일치하는 계층을 찾으세요. - 2. 다음 코드를 사용하여 새 docker 이미지를 만듭니다. - - ``` - FROM alpine:latest as layer-copy - # Create a build stage to copy the files from S3 using credentials ARG AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-"region"} - ARG AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-"accessKey"} - ARG AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-"secretkey"} ENV AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION} - ENV AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - ENV AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - RUN apk add aws-cli curl unzip - RUN mkdir -p /opt - RUN curl $(aws lambda get-layer-version-by-arn --arn --query 'Content.Location' --output text) --output layer.zip - RUN unzip layer.zip -d /opt - RUN rm layer.zip - FROM scratch - # Start second stage from blank image to squash all previous history, including credentials. - WORKDIR /opt - COPY --from=layer-copy /opt . - ``` - - 3. 해당 이미지를 Amazon ECR에 푸시합니다. - - ``` - docker build -t layer-image1:latest . - ``` - - - - ### 구현하다, 배포하다 AWS ECR의 이미지 [#deploy-image-ECR] - - 이제 이미지를 생성했으므로 다음 단계를 사용하여 이미지를 구현하고 배포할 수 있습니다. - - 1. 시스템에 [AWS CLI를](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) 설치했는지 확인하십시오. - 2. 다음 명령을 사용하여 AWS 계정을 인증합니다. - - ``` - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com - ``` - - 3. `create-repository` 명령을 사용하여 Amazon ECR에 저장소를 생성합니다. - - ``` - aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE - ``` - - 4. 이전 단계의 출력에서 `repositoryUri` 를 복사합니다. - 5. 로컬 이미지를 Amazon ECR에 최신 버전으로 태그 지정하려면 docker 태그 명령을 실행하세요. - - ``` - Replace docker-image:test with the name and tag of your Docker image. - ``` - - 6. < ECRrepositoryUri > 를 복사한 `repositoryUri` 으로 바꿉니다. URI 끝에 `:latest` 포함해야 합니다. 예는 다음과 같습니다. - - ``` - docker tag docker-image:test :latest - ``` - - 7. docker push 명령을 실행하여 로컬 이미지를 Amazon ECR 대상에 구현, 배포합니다. 저장소 URI 끝에 `:latest` 포함해야 합니다. - - ``` - docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - - -## 뉴렐릭 레이어 이미지 ECR을 사용하여 컨테이너화된 Lambda 함수 생성 [#lambda-function-image-layer] - -이제 이미지 계층을 생성했으므로 Lambda 함수를 생성해야 할 수 있습니다. 공용 또는 일반 ECR 레이어를 생성할 수 있습니다. - - - - ### 블루베리 이미지 레이어를 사용하여 Lambda 함수 생성 - - 이제 이미지를 생성하고 구현하고 이를 AWS ECR에 배포했으므로 이제 Lambda 함수를 생성해야 합니다. 이렇게 하려면 다음 단계를 완료하세요. - - 1. 선택한 블루베리 레이어 또는 자체 이미지 레이어의 이미지 URI를 사용하고 이미지 URI를 Dockerfile에 추가하세요. 예는 다음과 같습니다. - - ``` - FROM AS layer - ``` - - 2. 레이어의 디렉터리를 추가합니다. 예는 다음과 같습니다. - - ``` - # Layer code - WORKDIR /opt - COPY --from=layer /opt/ . - ``` - - 3. 완전한 예는 다음과 같습니다. - - ``` - FROM AS layer - FROM public.ecr.aws/lambda/python:3.9 - # Layer code - WORKDIR /opt - COPY --from=layer /opt/ . - WORKDIR ${LAMBDA_TASK_ROOT} - # Copy requirements.txt - COPY requirements.txt ${LAMBDA_TASK_ROOT} - # Copy function code - COPY lambda_function.py ${LAMBDA_TASK_ROOT} - # Install the specified packages - RUN pip freeze > requirements.txt - # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) - CMD [ "lambda_function.handler" ] - ``` - - 4. 이미지를 Amazon ECR로 푸시합니다. - - ``` - docker build -t docker-image-sample:latest - ``` - - - - ### 로컬에서 이미지 테스트(선택 사항) [#test-image] - - 이 단계는 선택 사항이지만 이미지를 로컬에서 테스트하여 모든 것이 올바르게 작동하는지 확인하는 것이 좋습니다. - - 1. docker run 명령을 사용하여 Docker 이미지를 시작합니다. - - ``` - docker run -p 9000:8080 docker-image-sample:latest - ``` - - 2. 새 터미널 창에서 컬조합을 사용하여 다음 엔드포인트에 이벤트를 게시합니다. - - ``` - curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' - ``` - - - - ### 컨테이너 이미지 Lambda 함수 생성 [#create-container-image] - - 1. 컨테이너 이미지 옵션을 선택합니다. - 2. 함수의 이름을 지정합니다. - 3. ECR을 찾아보고 선택합니다. - 4. 아키텍처를 선택하고 생성하세요. - 5. 함수를 생성한 후 환경 변수를 추가합니다. 다음은 추가할 수 있는 환경 변수입니다. - - ``` - NEW_RELIC_ACCOUNT_ID : - NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS : boolean value - NEW_RELIC_LAMBDA_EXTENSION_ENABLED : boolean value - NEW_RELIC_LAMBDA_HANDLER : index.handler - NEW_RELIC_LICENSE_KEY : - NEW_RELIC_LOG_ENDPOINT : - NEW_RELIC_TELEMETRY_ENDPOINT : - ``` - - 6. 환경 엔드포인트는 다음과 같습니다. - - * NEW_RELIC_TELEMETRY_ENDPOINT - - * 프로덕션 : [https://cloud-collector.newrelic.com/aws/lambda/v1](https://cloud-collector.newrelic.com/aws/lambda/v1) - * Eu-프로덕션: [https://cloud-collector.eu01.nr-data.net/aws/lambda/v1](https://cloud-collector.eu01.nr-data.net/aws/lambda/v1) - - * NEW_RELIC_LOG_ENDPOINT \*제작 : [https://log-api.newrelic.com/log/v1](https://log-api.newrelic.com/log/v1) - - * Eu-프로덕션 : [https://log-api.eu.newrelic.com/log/v1](https://log-api.eu.newrelic.com/log/v1) - - 7. 이제 귀하의 언어를 기반으로 하는 CMD 핸들러를 추가하십시오. 자세한 내용은 [Lambda 측정, 로그 문서를](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/)참조하세요. - - \ No newline at end of file diff --git a/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx b/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx deleted file mode 100644 index 7bb37ab1b59..00000000000 --- a/src/i18n/content/kr/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: 컨테이너화된 Lambda 함수 시작하기 -metaDescription: Create containerized Lambda functions with New Relic. -freshnessValidatedDate: never -translationType: machine ---- - -import serverlessLambdaContainerizedFunctions from 'images/serverless_screenshot-full_lambda-containerized-functions.webp' - -컨테이너화된 Lambda 함수는 서버리스 컴퓨팅의 이점을 계속 누리면서 AWS Lambda 내에서 코드를 구현하고 배포하는 대체 방법을 제공합니다. - -뉴렐릭을 사용하면 컨테이너화된 이미지를 사용하여 AWS Lambda 함수를 구현하고 배포하며 다음을 수행할 수 있습니다. - -* **유연성 향상**: 친숙한 컨테이너 도구를 사용하고 코드 및 의존성/종속성에 대해 사전 빌드된 이미지를 활용합니다. -* **보안 향상**: 컨테이너화된 환경과 관련된 컨테이너 격리 및 잠재적인 보안 이점을 활용하세요. -* **일관된 런타임 보장**: 일관된 개발, 테스트 및 구현, 배포 환경을 보장합니다. - -A screenshot for containerized Lambda functions - -
- UI에서 컨테이너화된 Lambda 함수를 보려면 [**one.newrelic.com > All capabilities**](https://one.newrelic.com/all-capabilities) > Serverless functions 으로 이동하세요. -
- -## 요구 사항 [#Requirements] - -Node.js를 사용하여 컨테이너화된 Lambda 함수를 생성하려면, 다음이 필요합니다: - -* \[AWS 명령줄 인터페이스(AWS CLI) 버전 2] ([https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)) -* [도커](https://docs.docker.com/get-docker/) -* Node.js 버전 16 또는 18 -* 파이썬 버전 3.9+ - - - - - - ## 프로젝트 디렉토리 생성 [#project-directory] - - 컨테이너화된 함수를 빌드할 때 첫 번째 단계는 프로젝트 디렉터리를 만드는 것입니다. 다음 단계를 완료하면 됩니다. - - 1. 운영: - - ``` - mkdir example_node - cd example_node - npm init - vi index.js and add the following code. - exports.handler = async (event) => { - const response = { - statusCode: 200, - body: JSON.stringify('Hello from Lambda!'), - }; - return response; - }; - ``` - - 2. 완료되면 다음 설정을 사용하여 새 docker 파일을 만듭니다. - - ``` - FROM public.ecr.aws/lambda/nodejs:18 - # Copy function code COPY index.js - ${LAMBDA_TASK_ROOT} - # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) - CMD [ "index.handler" ] - - ``` - - 3. 다음으로, docker 빌드를 사용하여 docker 이미지를 빌드합니다. - - ``` - docker build --platform linux/amd64 -t docker-image:test - ``` - - - - ## 로컬에서 이미지 테스트(선택 사항) [#test-image] - - 더 진행하기 전에 이미지를 로컬에서 테스트하여 모든 것이 예상대로 작동하는지 확인하는 것이 좋습니다. 이렇게 하려면 다음을 완료하세요. - - 1. docker run 명령을 사용하여 Docker 이미지를 시작합니다. - - ``` - docker run -p 9000:8080 docker-image:test - ``` - - 2. 새 터미널 창에서 컬조합을 사용하여 다음 엔드포인트에 이벤트를 게시합니다. - - ``` - curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' - ``` - - 3. 컨테이너 ID를 가져옵니다. - - ``` - docker ps - ``` - - 4. docker kill 명령을 사용하여 컨테이너를 중지합니다. 이 명령을 사용할 때 `3766c4ab331c` 이전 단계의 컨테이너 ID로 바꿉니다. - - ``` - docker kill 3766c4ab331c - ``` - - - - ## 이미지를 구현하다, 배포하다 [#deploy-image] - - 이제 이미지를 성공적으로 생성했으므로 Amazon ECR에 이미지를 업로드하고 Lambda 함수를 생성해야 합니다. 이렇게 하려면 다음을 완료하세요. - - 1. `get-login-password` 명령을 실행하여 Amazon ECR 레지스트리에 대해 docker CLI를 인증합니다. - 2. Amazon ECR 저장소를 생성하려는 AWS 리전으로 `--region` 값을 설정합니다. - 3. 111122223333을 AWS 계정 ID로 바꿉니다. - - ``` - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com - ``` - - 4. create-저장소 명령을 사용하여 Amazon ECR에서 클립을 생성합니다. - - ``` - aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE - ``` - - 5. 이전 단계의 출력에서 `repositoryUri` 를 복사합니다. - 6. [docker 태그](https://docs.docker.com/reference/cli/docker/image/tag/) 명령을 실행하여 로컬 이미지를 Amazon ECR에 최신 버전으로 태그 지정합니다. 이 명령에서 `docker-image:test` 를 docker 이미지의 이름과 태그로 바꿉니다. 그런 다음 < ECRrepositoryUri > 를 복사한 `repositoryUri` 로 바꾸세요. URI 끝에 `:latest` 포함했는지 확인하세요. - - ``` - docker tag docker-image:test :latest - EX: docker tag docker-image:test 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - 7. 이제 docker push 명령을 실행하여 로컬 이미지를 Amazon ECR에 구현하고 배포합니다. 저장소 URI 끝에 `:latest` 포함했는지 확인하세요. - - ``` - docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - - - ## 컨테이너화된 Lambda 함수 생성 [#create-containerized-function] - - 이제 컨테이너화된 Lambda 함수를 생성할 준비가 되었습니다. - - 아직 함수가 없다면 함수에 대한 실행 역할을 생성해야 합니다. 이에 대한 자세한 내용은 [실행 역할 생성에 대한 AWS 설명서를](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html#with-userapp-walkthrough-custom-events-create-iam-role) 참조하십시오. 다음 단계에서는 역할의 Amazon 리소스 이름(ARN)이 필요합니다. - - 이제 Lambda 함수를 생성할 준비가 되었습니다. 다음 명령을 완료할 때 `Image` 및 `ImageUri` 필드에 대해 이전의 저장소 URI를 지정해야 합니다. URI 끝에 `:latest` 포함했는지 확인하세요. - - ``` - aws lambda create-function \ --function-name hello-world \ --package-type Image \ --code ImageUri=111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest \ --role arn:aws:iam::111122223333:role/lambda-ex - ``` - - 다음으로 함수를 호출합니다. - - ``` - aws Lambda invoke --function-name hello-world response.json - ``` - - 질문이 있는 경우 [컨테이너 이미지를 사용하여 구현하다, 배포하다 Lambda 함수에 대한 AWS 설명서를](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-image.html) 참조하세요. - - - - - - - - 이 설정을 완료한 후에는 뉴렐릭 Lambda 레이어를 이미지로 생성할 수 있습니다. - - - - Lambda 모니터링 기능을 검토하십시오. - - \ No newline at end of file diff --git a/src/i18n/content/pt/docs/apm/agents/php-agent/advanced-installation/files/newrelic.ini_.mdx b/src/i18n/content/pt/docs/apm/agents/php-agent/advanced-installation/files/newrelic.ini_.mdx deleted file mode 100644 index 67287f02ac2..00000000000 --- a/src/i18n/content/pt/docs/apm/agents/php-agent/advanced-installation/files/newrelic.ini_.mdx +++ /dev/null @@ -1,50 +0,0 @@ -\[newrelic] ; ; Setting: newrelic.enabled ; Type : boolean ; Scope : per-directory ; Default: true ; Info : Habilite ou desabilite o agente. Observe que você não pode globalmente; desabilitar o agente e então habilitá-lo seletivamente em um diretório por diretório; base. Se você desabilitar o agente no arquivo INI global, então o ; o agente não será inicializado. No entanto, você pode seletivamente; desabilitar o agente por diretório. ; ;newrelic.enabled=true - -; ; Setting: newrelic.daemon.max_threads ; Type : integer ; Scope : system ; Default: 8 ; Info : Define o número de threads no daemon "worker pool" que serão ; usado para processar solicitações de cada agente. O mínimo é 4 e ; o máximo é 128. ; ;newrelic.daemon.max_threads = 8 - -; ; Setting: newrelic.daemon.ssl ; Type : boolean ; Scope : system ; Default: true (as of version 3.6) ; Info : Define se há ou não comunicação com o coletor de dados New Relic; deve usar uma conexão HTTP segura ou não. ; ;newrelic.daemon.ssl = true - -; ; Setting: newrelic.daemon.proxy ; Type : string ; Scope : system ; Default: none ; Info : define as credenciais do host e do usuário para usar como proxy de saída. Esse ; só é usado se o seu site exigir um proxy para acessar; servidores externos na internet, neste caso os dados da New Relic; servidores de coleta. Isto é expresso em uma das seguintes formas: ; hostname ; hostname:port ; user@hostname ; user@hostname:port ; user:password@hostname ; user:password@hostname:port ; ;newrelic.daemon.proxy = "" - -; ; Setting: newrelic.daemon.collector_host ; Type : string ; Scope : system ; Default: collector.newrelic.com ; Info : define o nome do host do coletor de dados New Relic a ser usado. ; Observe que esta NÃO é qualquer forma de host local. Isso se refere a ; o anfitrião fornecido pela New Relic. Há muito pouca razão para isso; altere isso do padrão, exceto em alguns casos muito especiais; circunstâncias, e somente sob instrução de um vendedor da New Relic; pessoa ou membro da equipe de apoio. ; ;newrelic.daemon.collector_host = "collector.newrelic.com" - -; ; Setting: newrelic.capture_params ; Type : boolean ; Scope : per-directory ; Default: false ; Info : Habilita ou desabilita a captura do parâmetro URL. Se habilitado, então ; quaisquer variáveis passadas na URL como (por exemplo ?id=12345) serão ; salvo com a solicitação e visível em vários locais na interface da web. ; Se você tende a transmitir informações confidenciais diretamente na URL; então é uma boa ideia manter isso desativado. No entanto, se o seu URL ; parâmetro são usados simplesmente para parâmetro sem dados confidenciais, mas; que são significativos para cada transação, você pode ativar isso. ; ;newrelic.capture_params = false - -; Setting: newrelic.ignored_params ; Type : string ; Scope : per-directory ; Default: none ; Info : Uma lista de parâmetros separados por vírgula para sempre excluir if parâmetro ; a captura está habilitada acima. Você pode usar isso para filtrar itens sensíveis; dados do usuário que podem aparecer como um parâmetro de URL. ; ;newrelic.ignored_params = "" - -; ; Configuração: newrelic.error_collector.enabled; ; Setting: newrelic.error_collector.enabled ; Type : boolean ; Scope : per-directory ; Default: true ; Info : ; Tipo: booleano; Escopo: por diretório; Padrão: verdadeiro; Informações: Habilite o coletor de erros New Relic. Isso registrará os 20 mais; erros graves por ciclo de coleta. É raro querer desabilitar isso. ; Observe também que o nível de assinatura da sua New Relic pode forçar; isso deve ser desabilitado independentemente de qualquer valor que você definir para ele. ; ;newrelic.error_collector.enabled = true - -; ; Setting: newrelic.error_collector.record_database_errors ; Type : boolean ; Scope : per-directory ; Default: false ; Info : Atualmente compatível apenas com funções de banco de dados MySQL. Se habilitado, ; isso fará com que erros retornados por várias funções do MySQL sejam ; tratados como se fossem erros de PHP, e portanto sujeitos a erro; coleção. Isto só é obedecido se o coletor de erros estiver habilitado; acima e o nível de assinatura da conta permite captura de erros. ; ;newrelic.error_collector.record_database_errors = false - -; ; Setting: newrelic.error_collector.prioritize_api_errors ; Type : boolean ; Scope : per-directory ; Default: false ; Info : Se o coletor de erros estiver ativado e você usar a API New Relic para; observe um erro, se estiver definido como verdadeiro, atribua o valor mais alto; prioridade a tais erros. ; ;newrelic.error_collector.prioritize_api_errors = false - -; ; Setting: newrelic.browser_monitoring.auto_instrument ; Type : boolean ; Scope : per-directory ; Default: true ; Info : Habilita ou desabilita o monitoramento automático de usuário real ("auto-RUM"). ; Quando habilitado fará com que o agente insira um cabeçalho e um rodapé; na saída HTML que cronometrará a experiência real do usuário final. ; ;newrelic.browser_monitoring.auto_instrument = true - -; ; Setting: newrelic.transaction_tracer.enabled ; Type : boolean ; Scope : per-directory ; Default: true ; Info : Habilita ou desabilita o tracer de transação. Quando ativado, isso irá; produza um gráfico de chamadas detalhado para qualquer transação que exceda a; determinado limite (veja a próxima entrada). Apenas um rastreamento da transação por; o aplicativo per ciclo de coleta é armazenado e é sempre o mais lento; transação durante esse ciclo. O rastreamento da transação é extremamente ; útil ao diagnosticar pontos problemáticos em seu aplicativo. Por favor ; note que os TT's podem ser desativados pela sua conta nível da assinatura; independentemente do que você definir aqui. ; ;newrelic.transaction_tracer.enabled = true - -; ; Configuração: newrelic.transaction_tracer.limite; Type : string com especificação de tempo ou a palavra "apdex_f" ; Escopo: por diretório; Padrão: "apdex_f"; Info: Especifica o limite acima do qual uma transação se torna uma transação; candidato ao tracer de transação. Isso pode ser absoluto; valor de tempo como "200ms" ou "1s250ms" ou "1h30m" ou "750us" ou o ; palavra "apdex_f". Este último valor, "apdex_f", significa "4 vezes apdex_t". ; Assim, o limite muda de acordo com a configuração do seu apdex_t. Esse ; é o padrão. ; ;newrelic.transação.limite = "apdex_f" - -; ; Configuração: newrelic.transaction_tracer.detail ; Tipo: inteiro no intervalo 0-2; Escopo: por diretório; Padrão: 1; Info: Define o nível de detalhe em um rastreamento da transação. Definir isso como 0 ; mostrará apenas as relativamente poucas funções PHP que o New Relic possui; considerados "interessantes", bem como quaisquer funções personalizadas que você definir; (Veja abaixo). Uma configuração de 1 trace e cronometrará todas as funções do usuário; e uma configuração de 2, que precisa de outra variável especial para ser definida; para ter efeito, trace TODAS as funções do PHP, incluindo ; internos implementados em módulos. Esta última configuração pode ter um ; impacto severo no desempenho e é por isso que você precisa consultar a equipe de suporte da New Relic em [support@newrelic.com](mailto:support@newrelic.com) para obter o "especial"; variável a ser definida para ativar o recurso. Muito raramente é necessário. ; ; Nas versões anteriores do agente, isso era conhecido como "top100". ; ;newrelic.transação.detail = 1 - -; ; Configuração: newrelic.transação.slow_sql ; Tipo: booleano; Escopo: por diretório; Padrão: verdadeiro; Info: Habilita ou desabilita o tracer "SQL lento". Quando ativado, isso irá; registre as 10 chamadas SQL mais lentas junto com um stack trace de; onde a chamada ocorreu em seu código. ; ;newrelic.transação.slow_sql = true - -; ; Configuração: newrelic.transaction_tracer.stack ; Tipo: string de especificação de tempo ("500ms", "1s750ms" etc); Escopo: por diretório; Padrão: 500ms; Informações: Define o limite acima do qual o agente New Relic registrará um; stack trace para um rastreamento da transação. ; ;newrelic.transação.stack = 500 - -; ; Configuração: newrelic.transação.explain_enabled ; Tipo: booleano; Escopo: por diretório; Padrão: verdadeiro; Info : Habilita ou desabilita a solicitação de "explicar planos" do MySQL e ; Banco de dados PostgreSQL para chamadas SQL lentas. O limite para; a solicitação de planos de explicação é definida abaixo. ; ;newrelic.transação.explain_enabled = true - -; ; Configuração: newrelic.transaction_tracer.explain_threshold ; Tipo: string de especificação de tempo ("750ms", "1s 500ms" etc); Escopo: por diretório; Padrão: 500ms; Informações: Usado pelo tracer SQL lento para definir o limite acima do qual um SQL; declaração é considerada "lenta" e para definir o limite acima do qual; o tracer de transação solicitará um “plano explicativo” dos dados; base para SQL lento. Este último recurso pode não estar ativo ainda, por favor; consulte as notas de versão do agente para ver quando ele estará disponível. ; Relevante apenas se o explica_enabled acima estiver definido como verdadeiro. ; ;newrelic.transação.explain_threshold = 500 - -; ; Configuração: newrelic.transação.record_sql ; Digite: "off", "raw" ou "ofuscado"; Escopo: por diretório; Padrão: "ofuscado"; Info: Define como as instruções SQL são registradas (se houver). Se estiver definido como ; "bruto", então nenhuma tentativa será feita para ofuscar as instruções SQL. ISSO É ; ALTAMENTE DESCANSO NO ambiente de produção! Definir isso como raw ; tem implicações de segurança consideráveis, pois pode expor informações confidenciais; e dados privados de clientes. ; ;newrelic.transação.record_sql = "ofuscado" - -; Setting: newrelic.transaction_tracer.custom ; Type : string ; Scope : per-directory ; Default: none ; Info : Define o(s) nome(s) das funções adicionais que você deseja usar no instrumento e ; aparecem no rastreamento da transação. Isso só é significativo se você tiver; defina newrelic.transação.detail como 0. Pode ser uma vírgula- ; lista separada de nomes de funções ou métodos de classe. ; ;newrelic.transaction_tracer.custom = "" - -; ; Ambiente: newrelic.framework ; Tipo: string; Escopo: por diretório; Padrão: vazio ( framework de detecção automática); Info: Força o framework a ser um dos frameworks suportados. Esse ; só deve ser usado se a detecção automática falhar, nesse caso; nós ([suporte@newrelic.com](mailto:support@newrelic.com)) gostaria muito de saber sobre o ; falha de detecção. Deve ser um dos seguintes valores: ; cakephp, codeigniter, drupal, joomla, kohana, magento, mediawiki, ; symfony, wordpress, yii, zend ou no_framework. ; ;newrelic.framework = "" - -; ; Configuração: newrelic.webtransaction.name.remove_trailing_path ; Tipo: booleano; Escopo: por diretório; Padrão: falso; Info: Utilizado para auxiliar na nomeação correta da transação quando não há suporte; framework está sendo usada. Esta opção causará qualquer coisa após o ; nome do script a ser removido de uma URL. Por exemplo, definir isto ; faria com que "/xyz/zy" fosse removido de uma URL como; "/caminho/para/foo.php/xyz/zy". ; ;newrelic.webtransaction.name.remove_trailing_path = falso - -; ; Configuração: newrelic.webtransaction.name.functions ; Tipo: string; Escopo: por diretório; Padrão: nenhum; Info: A menos que um framework específico como Drupal ou Wordpress tenha sido; detectadas, as transações são nomeadas de acordo com o primeiro script; encontrado, como login.php. No entanto, se você usar um dispatcher ; arquivo como index.php isso produz dados menos úteis. Se você usar ; um despachante para redirecionar para ações como "login", "show", "edit" ; etc, você pode definir isso para as funções de nível superior para essas ações; e os nomes das funções especificados aqui serão usados para nomear o ; transação. ; ;newrelic.webtransaction.name.functions = "" - -; ; Configuração: newrelic.webtransaction.name.files ; Tipo: string; Escopo: por diretório; Padrão: nenhum; Info: O mesmo que newrelic.webtransaction.name.functions acima, mas usando file; nomes em vez de nomes de funções. Aceita padrão POSIX regular; expressões. ; ;newrelic.webtransaction.name.files = "" - -; ; Configuração: newrelic.analytics_events.enabled ; Tipo: booleano; Escopo: por diretório; Padrão: verdadeiro; info: Colete e relate dados de eventos analíticos. Os dados do evento permitem o ; Interface New Relic para mostrar informações adicionais como histograma em; o custo de memória adicional do daemon e comunicação do coletor. ; -;newrelic.analytics_events.enabled = verdadeiro \ No newline at end of file diff --git a/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx b/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx deleted file mode 100644 index 7c840de51ba..00000000000 --- a/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/enable-containerized-function.mdx +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: Criar e implantar camadas de imagem New Relic Lambda -metaDescription: 'After enabling New Relic''s containerized Lambda function, you can create a layer as an image.' -freshnessValidatedDate: never -translationType: machine ---- - -Com a função do Lambda em contêiner, você pode criar camadas Lambda usando imagens de contêiner. Como alternativa às camadas implantares como .zip arquivos, as imagens de contêiner permitem maior flexibilidade e maior segurança. - -## Pré-requisitos [#prereqs] - -Antes de começar, certifique-se de ter criado um Dockerfile que inclua o ambiente de execução escolhido, instalado sua dependência e copiado na estrutura de diretórios correta. - -## Use uma camada New Relic Lambda pré-construída [#prebuilt] - -Primeiro, você precisa criar suas camadas de imagem. Feito isso, você pode criar uma função ECR regular ou pública. Para ajudá-lo com isso, criamos uma [galeria de camadas New Relic Lambda para docker hospedadas no Amazon ECR](https://gallery.ecr.aws/x6n7b2o2?page=1). - -## Crie sua própria camada New Relic do zero [#create-lambda-layer] - -Siga estas etapas para criar sua própria camada New Relic Lambda. - - - - ### Crie uma camada New Relic Lambda - - Antes de implantar sua imagem, primeiro você precisa criar uma camada New Relic Lambda. Para fazer isso, conclua as seguintes etapas: - - 1. Escolha entre as diferentes [camadas de nome de recurso da Amazon (ARN) disponíveis](https://layers.newrelic-external.com/#/get-layers/get) para encontrar aquela que corresponde ao seu sistema. - 2. Crie uma nova imagem docker usando o seguinte código: - - ``` - FROM alpine:latest as layer-copy - # Create a build stage to copy the files from S3 using credentials ARG AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-"region"} - ARG AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-"accessKey"} - ARG AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-"secretkey"} ENV AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION} - ENV AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - ENV AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - RUN apk add aws-cli curl unzip - RUN mkdir -p /opt - RUN curl $(aws lambda get-layer-version-by-arn --arn --query 'Content.Location' --output text) --output layer.zip - RUN unzip layer.zip -d /opt - RUN rm layer.zip - FROM scratch - # Start second stage from blank image to squash all previous history, including credentials. - WORKDIR /opt - COPY --from=layer-copy /opt . - ``` - - 3. Envie essa imagem para o Amazon ECR. - - ``` - docker build -t layer-image1:latest . - ``` - - - - ### Implantar a imagem no AWS ECR [#deploy-image-ECR] - - Agora que você criou a imagem, você pode implantá-la seguindo os seguintes passos: - - 1. Certifique-se de ter instalado a [AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) em seu sistema. - 2. Autentique sua conta AWS usando o seguinte comando: - - ``` - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com - ``` - - 3. Crie um repositório no Amazon ECR usando o comando `create-repository` : - - ``` - aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE - ``` - - 4. Copie o `repositoryUri` da saída na etapa anterior. - 5. Para tag sua imagem local no repositório do Amazon ECR como a versão mais recente, execute o comando docker tag : - - ``` - Replace docker-image:test with the name and tag of your Docker image. - ``` - - 6. Substitua < ECRrepositoryUri > pelo `repositoryUri` que você copiou. Certifique-se de incluir `:latest` no final do URI. Aqui está um exemplo: - - ``` - docker tag docker-image:test :latest - ``` - - 7. Execute o comando docker push para implantar sua imagem local no repositório do Amazon ECR. Certifique-se de incluir `:latest` no final do URI do repositório. - - ``` - docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - - -## Crie uma função Containerized do Lambda com ECR de imagem de camada New Relic [#lambda-function-image-layer] - -Agora que você criou a camada de imagem, pode ser necessário criar uma função do Lambda. Você pode criar uma camada ECR pública ou regular. - - - - ### Crie uma função do Lambda com uma camada de imagem New Relic - - Agora que você criou a imagem e a implantou no AWS ECR, agora você precisa criar uma função do Lambda. Para fazer isso, conclua as seguintes etapas: - - 1. Use o URI da imagem da camada New Relic que você escolheu ou de sua própria camada de imagem e adicione o URI da imagem ao seu Dockerfile. Aqui está um exemplo: - - ``` - FROM AS layer - ``` - - 2. Adicione o diretório da camada. Aqui está um exemplo: - - ``` - # Layer code - WORKDIR /opt - COPY --from=layer /opt/ . - ``` - - 3. Aqui está um exemplo completo: - - ``` - FROM AS layer - FROM public.ecr.aws/lambda/python:3.9 - # Layer code - WORKDIR /opt - COPY --from=layer /opt/ . - WORKDIR ${LAMBDA_TASK_ROOT} - # Copy requirements.txt - COPY requirements.txt ${LAMBDA_TASK_ROOT} - # Copy function code - COPY lambda_function.py ${LAMBDA_TASK_ROOT} - # Install the specified packages - RUN pip freeze > requirements.txt - # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) - CMD [ "lambda_function.handler" ] - ``` - - 4. Envie a imagem para o Amazon ECR. - - ``` - docker build -t docker-image-sample:latest - ``` - - - - ### Teste a imagem localmente (opcional) [#test-image] - - Embora esta etapa seja opcional, recomendamos testar a imagem localmente para garantir que tudo funcione corretamente. - - 1. Inicie a imagem do Docker com o comando docker run: - - ``` - docker run -p 9000:8080 docker-image-sample:latest - ``` - - 2. Em uma nova janela de terminal, poste um evento no seguinte endpoint usando um comando curl: - - ``` - curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' - ``` - - - - ### Criar uma imagem de contêiner função do Lambda [#create-container-image] - - 1. Escolha a opção de imagem do contêiner. - 2. Nomeie sua função. - 3. Navegue em seu ECR e selecione. - 4. Escolha sua arquitetura e crie. - 5. Depois de criar a função, adicione a variável de ambiente. Abaixo estão as variáveis de ambiente que você pode adicionar: - - ``` - NEW_RELIC_ACCOUNT_ID : - NEW_RELIC_EXTENSION_SEND_FUNCTION_LOGS : boolean value - NEW_RELIC_LAMBDA_EXTENSION_ENABLED : boolean value - NEW_RELIC_LAMBDA_HANDLER : index.handler - NEW_RELIC_LICENSE_KEY : - NEW_RELIC_LOG_ENDPOINT : - NEW_RELIC_TELEMETRY_ENDPOINT : - ``` - - 6. O endpoint do ambiente é: - - * NEW_RELIC_TELEMETRY_ENDPOINT - - * Produção: [https://cloud-collector.newrelic.com/aws/lambda/v1](https://cloud-collector.newrelic.com/aws/lambda/v1) - * Produção da UE: [https://cloud-collector.eu01.nr-data.net/aws/lambda/v1](https://cloud-collector.eu01.nr-data.net/aws/lambda/v1) - - * NEW_RELIC_LOG_ENDPOINT \*Produção: [https://log-api.newrelic.com/log/v1](https://log-api.newrelic.com/log/v1) - - * Produção da UE: [https://log-api.eu.newrelic.com/log/v1](https://log-api.eu.newrelic.com/log/v1) - - 7. Agora, adicione um manipulador CMD baseado no seu idioma. Para saber mais, consulte nossa [documentação de instrumentação Lambda](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/) - - \ No newline at end of file diff --git a/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx b/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx deleted file mode 100644 index b2e0ac58827..00000000000 --- a/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-containerized-function-monitoring/get-started.mdx +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Comece com a função conteinerizada do Lambda -metaDescription: Create containerized Lambda functions with New Relic. -freshnessValidatedDate: never -translationType: machine ---- - -import serverlessLambdaContainerizedFunctions from 'images/serverless_screenshot-full_lambda-containerized-functions.webp' - -A Função do Lambda em contêiner oferece uma maneira alternativa de implantar código no AWS Lambda enquanto ainda aproveita os benefícios da computação sem servidor. - -Com o New Relic, você pode monitor a função de implantação do Lambda da AWS usando imagens em contêineres, para que você possa: - -* **Aumente a flexibilidade**: use ferramentas de contêiner conhecidas e aproveite imagens pré-construídas para seu código e dependência. -* **Melhorar a segurança**: Beneficie-se do isolamento de contêineres e das possíveis vantagens de segurança associadas a ambientes em contêineres. -* **Garanta um tempo de execução consistente**: Garanta um ambiente consistente de desenvolvimento, teste e implantação. - -A screenshot for containerized Lambda functions - -
- Para visualizar sua função do Lambda em contêiner na interface, vá para [**one.newrelic.com > All capabilities**](https://one.newrelic.com/all-capabilities) > função serverless. -
- -## Requisitos [#Requirements] - -Para criar uma função do Lambda em contêiner usando Node.js, você precisa do seguinte: - -* \[AWS linha de comando Interface (AWS CLI) versão 2] ([https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)) -* [Docker](https://docs.docker.com/get-docker/) -* Node.js versões 16 ou 18 -* Python versão 3.9+ - - - - - - ## Crie um diretório de projeto [#project-directory] - - Ao construir uma função em contêiner, a primeira etapa é criar um diretório de projeto. Você pode fazer isso concluindo estas etapas: - - 1. Correr: - - ``` - mkdir example_node - cd example_node - npm init - vi index.js and add the following code. - exports.handler = async (event) => { - const response = { - statusCode: 200, - body: JSON.stringify('Hello from Lambda!'), - }; - return response; - }; - ``` - - 2. Quando terminar, crie um novo arquivo docker com a seguinte configuração: - - ``` - FROM public.ecr.aws/lambda/nodejs:18 - # Copy function code COPY index.js - ${LAMBDA_TASK_ROOT} - # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) - CMD [ "index.handler" ] - - ``` - - 3. Em seguida, crie a imagem docker com o docker build: - - ``` - docker build --platform linux/amd64 -t docker-image:test - ``` - - - - ## Teste a imagem localmente (opcional) [#test-image] - - Antes de prosseguir, recomendamos testar a imagem localmente para garantir que tudo funcione conforme o esperado. Para fazer isso, complete o seguinte: - - 1. Inicie a imagem do Docker com o comando docker run: - - ``` - docker run -p 9000:8080 docker-image:test - ``` - - 2. Em uma nova janela de terminal, poste um evento no seguinte endpoint usando um comando curl: - - ``` - curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' - ``` - - 3. Obtenha o ID do contêiner. - - ``` - docker ps - ``` - - 4. Use o comando docker kill para parar o contêiner. Ao usar esse comando, substitua `3766c4ab331c` pelo ID do contêiner da etapa anterior. - - ``` - docker kill 3766c4ab331c - ``` - - - - ## Implantar a imagem [#deploy-image] - - Agora que você criou a imagem com sucesso, será necessário fazer upload da imagem para o Amazon ECR e criar a função do Lambda. Para fazer isso, faça o seguinte: - - 1. Execute o comando `get-login-password` para autenticar a CLI do docker no registro do Amazon ECR. - 2. Defina o valor `--region` para a região da AWS onde você deseja criar o repositório do Amazon ECR. - 3. Substitua 111122223333 pelo ID da sua conta da AWS. - - ``` - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com - ``` - - 4. Crie um repositório no Amazon ECR usando o comando create-repositório. - - ``` - aws ecr create-repository --repository-name hello-world --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE - ``` - - 5. Copie o `repositoryUri` da saída na etapa anterior. - 6. Execute o comando [docker tag](https://docs.docker.com/reference/cli/docker/image/tag/) para marcar sua imagem local no repositório do Amazon ECR como a versão mais recente. Neste comando, substitua `docker-image:test` pelo nome e tag da sua imagem docker . Em seguida, substitua < ECRrepositoryUri > pelo `repositoryUri` que você copiou. Certifique-se de incluir `:latest` no final do URI. - - ``` - docker tag docker-image:test :latest - EX: docker tag docker-image:test 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - 7. Agora, execute o comando docker push para implantar sua imagem local no repositório Amazon ECR. Certifique-se de incluir `:latest` no final do URI do repositório. - - ``` - docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest - ``` - - - - ## Crie uma função do Lambda em contêiner [#create-containerized-function] - - Agora, você está pronto para criar uma função do Lambda em contêiner. - - Certifique-se de criar uma função de execução para sua função, caso ainda não tenha uma. Para obter mais informações sobre isso, consulte a [documentação da AWS sobre como criar uma função de execução](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html#with-userapp-walkthrough-custom-events-create-iam-role). Para a próxima etapa, você precisará do nome de recurso da Amazon, ou ARN, da função. - - Agora você está pronto para criar a função do Lambda. Ao concluir o comando a seguir, você deve especificar o URI do repositório anterior para os campos `Image` e `ImageUri` . Certifique-se de incluir `:latest` no final do URI. - - ``` - aws lambda create-function \ --function-name hello-world \ --package-type Image \ --code ImageUri=111122223333.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest \ --role arn:aws:iam::111122223333:role/lambda-ex - ``` - - Em seguida, você invoca a função: - - ``` - aws Lambda invoke --function-name hello-world response.json - ``` - - Caso tenha alguma dúvida, consulte [a documentação da AWS para implantar função do Lambda com imagens de contêiner](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-image.html). - - - - - - - - Depois de concluir esta configuração, você pode criar uma camada New Relic Lambda como uma imagem - - - - Revise nossos recursos de monitoramento Lambda. - - \ No newline at end of file diff --git a/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-legacy.mdx b/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-legacy.mdx deleted file mode 100644 index 30357cac72c..00000000000 --- a/src/i18n/content/pt/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/enable-serverless-monitoring-aws-lambda-legacy.mdx +++ /dev/null @@ -1,504 +0,0 @@ ---- -title: Instrumentação manual herdada para monitoramento Lambda -metaDescription: Legacy instructions for manually enabling New Relic monitoring for AWS Lambda. -freshnessValidatedDate: never -translationType: machine ---- - -Nesta página você aprenderá como instrumentar manualmente sua função do Lambda. É organizado por linguagem de tempo de execução. Se ainda não o fez, crie sua conta New Relic gratuita abaixo para começar a monitorar seus dados hoje mesmo. - - - - - - Para instrumentar seu Lambda da linguagem Go: - - 1. Baixe nosso pacote de agente Go e coloque-o no mesmo diretório da sua função. - - 1. Instale o agente executando: - - ```shell - go get -u github.com/newrelic/go-agent/v3/newrelic - ``` - - 2. Instale a integração `nrlambda` executando: - - ```shell - go get -u github.com/newrelic/go-agent/v3/integrations/nrlambda - ``` - - 2. Em seu código Lambda, importe nossos componentes, crie um aplicativo e atualize como você inicia seu Lambda. Veja nossos exemplos de instrumentação: - - * [Repositório de extensão](https://github.com/newrelic/newrelic-lambda-extension/tree/main/examples/sam/go) - * [Repositório do agente Go](https://github.com/newrelic/go-agent/blob/master/v3/integrations/nrlambda/example/main.go) - - 3. Opcionalmente, adicione [o evento personalizado](/docs/using-new-relic/welcome-new-relic/getting-started/glossary#custom-event) que será associado à invocação do Lambda usando a [API`RecordCustomEvent` ](/docs/agents/go-agent/features/create-custom-events-insights-go). Por exemplo: - - ```go - func handler(ctx context.Context) { - if txn := newrelic.FromContext(ctx); nil != txn { - txn.Application().RecordCustomEvent("MyEvent", map[string]interface{}{ - "zip": "zap", - }) - } - fmt.Println("hello world!") - } - ``` - - 4. Crie e compacte sua função do Lambda e carregue-a na AWS. - - - - Aqui estão sugestões para compactar e fazer upload do Lambda: - - 1. Construa o binário para execução no Linux. Isso produz um arquivo binário chamado `main`. Você pode usar: - - ```bash - GOOS=linux go build -o main - ``` - - 2. Compacte o binário em um pacote de implantação usando: - - ```bash - zip deployment.zip main - ``` - - 3. Faça upload do arquivo zip para a AWS usando o console do AWS Lambda ou a AWS CLI. Nomeie o manipulador `main` (para corresponder ao nome fornecido durante a compilação binária). - - - - 5. As variáveis de ambiente a seguir não são necessárias para que o monitoramento do Lambda funcione, mas serão necessárias se você quiser que sua função do Lambda seja incluída no rastreamento distribuído. Para habilitar [distributed tracing](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing), defina estas [variáveis de ambiente](https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html) no console AWS: - - * `NEW_RELIC_ACCOUNT_ID`. [O ID da sua conta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY.` Este também é [o ID da sua conta](/docs/accounts/install-new-relic/account-setup/account-id). Se sua conta for uma conta infantil, este é o ID da conta raiz/pai. - - 6. Opcionalmente, para configurar o registro em log, consulte [Registro em log do agente Go](/docs/agents/go-agent/configuration/go-agent-logging). - - 7. Invoque o Lambda pelo menos uma vez. Isso cria um grupo log do CloudWatch, que deve estar presente para que a próxima etapa funcione. - - Nosso wrapper coleta dados sobre a execução do Lambda, gera uma mensagem JSON e registra-a no log do CloudWatch. A seguir, você [configurará o CloudWatch para enviar esses logs para o New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - - - O monitoramento do AWS Lambda em Java não usa nosso [agente Java APM](/docs/agents/java-agent). Em vez disso, ele usa estas duas dependências do OpenTracing: - - * AWS Lambda OpenTracing Java SDK: instrumentação [OpenTracing](https://github.com/opentracing) para AWS Lambda RequestHandler e RequestStreamHandler. - - * Nosso tracer AWS Lambda OpenTracing: uma implementação tracer OpenTracing projetada para monitor o AWS Lambda. Ele gera spans, eventos de erro, eventos de transação, rastreamento de erros e fornece suporte distributed tracing . - - - - **Supported OpenTracing Versions** - - - * **OpenTracing 0.31.0** - - : - - * Tracer Lambda: [com.newrelic.opentracing:newrelic-java-lambda:1.1.1](https://search.maven.org/artifact/com.newrelic.opentracing/newrelic-java-lambda/1.1.1/jar) - * SDK do Lambda: [com.newrelic.opentracing:java-AWS Lambda:1.0.0](https://search.maven.org/artifact/com.newrelic.opentracing/java-aws-lambda/1.0.0/jar) - - * **OpenTracing 0.32.0, 0.33.0** - - : - - * Tracer Lambda: [com.newrelic.opentracing:newrelic-java-lambda:2.2.1](https://search.maven.org/artifact/com.newrelic.opentracing/newrelic-java-lambda) - * SDK do Lambda: [com.newrelic.opentracing:java-AWS Lambda:2.1.0](https://search.maven.org/artifact/com.newrelic.opentracing/java-aws-lambda) - - - Para instrumentar seu Java Lambda: - - 1. No arquivo `build.gradle` do seu projeto, inclua nosso tracer OpenTracing AWS Lambda e a dependência do AWS Lambda OpenTracing SDK: - - ```java - dependencies { - compile("com.newrelic.opentracing:java-aws-lambda:2.1.0") - compile("com.newrelic.opentracing:newrelic-java-lambda:2.2.1") - compile("io.opentracing:opentracing-util:0.33.0") - } - ``` - - 2. Implemente a interface `RequestHandler` do AWS Lambda conforme mostrado no [exemplo do Java Lambda](https://github.com/newrelic/newrelic-lambda-tracer-java#usage) e substitua o método `doHandleRequest` . - - 3. No método `doHandleRequest`, chame a API `LambdaTracing.instrument(...)` para criar um intervalo raiz para trace a execução da função do Lambda. É aqui também que você definirá sua lógica de negócio para a função do Lambda. - - 4. Registre um `LambdaTracer.INSTANCE` como o rastreador OpenTracing Global, conforme mostrado no [exemplo do Java Lambda](https://github.com/newrelic/newrelic-lambda-tracer-java#usage). - - 5. [Crie um pacote de implantação ZIP](https://docs.aws.amazon.com/lambda/latest/dg/java-package.html) e carregue-o no AWS Lambda. Ou implantá-lo por outros meios. - - 6. No console do AWS Lambda, defina o manipulador. Para o [exemplo Java Lambda](https://github.com/newrelic/newrelic-lambda-tracer-java#usage), o manipulador seria `com.handler.example.MyLambdaHandler::handleRequest`. Como `handleRequest` é assumido, você também pode usar `com.handler.example.MyLambdaHandler`. - - 7. As seguintes [variáveis de ambiente do console AWS](https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html) são necessárias se você deseja que sua função do Lambda seja incluída no [distributed tracing](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing). Isto é recomendado. - - * `NEW_RELIC_ACCOUNT_ID`. [O ID da sua conta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_PRIMARY_APPLICATION_ID`. Este também é [o ID da sua conta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY`. Este também é [o ID da sua conta](/docs/accounts/install-new-relic/account-setup/account-id). Se sua conta for infantil, esse deverá ser o ID da conta raiz/pai. - - 8. Opcional: no console do Lambda, habilite o registro de depuração adicionando esta variável de ambiente: `NEW_RELIC_DEBUG` is `true`. - - 9. Invoque o Lambda pelo menos uma vez. Isso cria um grupo log do CloudWatch, que deve estar presente para que a próxima etapa funcione. - - Nosso wrapper coleta dados sobre a execução do Lambda, gera uma mensagem JSON e registra-a no log do CloudWatch. A seguir, você [configurará o CloudWatch para enviar esses logs para o New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - Consulte o [exemplo distributed tracing do AWS Lambda](https://github.com/newrelic/newrelic-lambda-tracer-java/tree/main/examples/distributed-tracing-example) para ver um projeto completo que ilustra casos de uso comuns, como: - - * Distributed tracing entre função do Lambda - * Criação manual de span (também conhecida como instrumentação personalizada) - * Rastreando chamadas externas - * Adicionando atributo personalizado (também conhecido como tag) aos spans - - - - Nosso monitoramento da função do Lambda da AWS baseada em .NET Core não usa nosso [agente APM .NET Core](/docs/agents/net-agent/installation/compatibility-requirements-net-core-agent) padrão. Em vez disso, ele usa um pacote NuGet. - - Para instrumentar seu .NET Core Lambda: - - 1. No projeto Função do Lambda, instale o pacote NuGet `NewRelic.OpenTracing.AmazonLambda.Tracer` . - - Observação: `NewRelic.OpenTracing.AmazonLambda.Tracer` depende da versão 1.2.0+ do pacote NuGet `Amazon.Lambda.APIGatewayEvent` . Se o ambiente já usar uma versão inferior de `Amazon.Lambda.APIGatewayEvent`, o pacote New Relic poderá produzir erros como `System.MissingMethodException` . - - 2. Importe o pacote NuGet e os utilitários OpenTracing: - - ```cs - using OpenTracing.Util; - using NewRelic.OpenTracing.AmazonLambda; - ``` - - 3. Instrumento sua função, conforme mostrado neste exemplo: - - ```cs - public class Function - { - static Function() - { - // Register The NewRelic Lambda Tracer Instance - GlobalTracer.Register(NewRelic.OpenTracing.AmazonLambda.LambdaTracer.Instance); - } - - public object FunctionWrapper(ILambdaContext context) - { - // Instantiate NewRelic TracingWrapper and pass your FunctionHandler as - // an argument - return new TracingRequestHandler().LambdaWrapper(FunctionHandler, context); - } - - /// - /// A simple function that takes a string and does a ToUpper - /// - /// - /// - /// - public object FunctionHandler(ILambdaContext context) - { ... } - - } - ``` - - - Os argumentos passados para `FunctionWrapper` devem corresponder à assinatura de `FunctionHandler`. - - - Se sua função manipuladora retornar uma tarefa, o wrapper do Lambda bloqueará a tarefa de retorno até que ela seja concluída, para que possa medir a duração e capturar exceções, se houver alguma presente. Além disso, você também pode herdar de `APIGatewayProxyFunction`. - - Para um exemplo, veja abaixo: - - - - ```cs - public async Task FunctionHandlerAsync(ILambdaContext lambdaContext) - { - return await new TracingRequestHandler().LambdaWrapper( - ActualFunctionHandlerAsync, lambdaContext); - } - - public async Task ActualFunctionHandlerAsync(ILambdaContext - lambdaContext) - { - // Function can make other async operations here - ... - } - ``` - - - - ```cs - public class LambdaFunction : APIGatewayProxyFunction - { - static LambdaFunction() - { - // Register The NewRelic Lambda Tracer Instance - OpenTracing.Util.GlobalTracer.Register(NewRelic.OpenTracing.AmazonLambda.LambdaTracer.Instance); - } - - public override Task FunctionHandlerAsync(APIGatewayProxyRequest request, ILambdaContext lambdaContext) - { - Task task = new TracingRequestHandler().LambdaWrapper(ActualFunctionHandlerAsync, request, lambdaContext); - return task; - } - - public Task ActualFunctionHandlerAsync(APIGatewayProxyRequest request, ILambdaContext lambdaContext) - { - return base.FunctionHandlerAsync(request, lambdaContext); - } - } - ``` - - - - 4. Opcional para SQS e SNS: a partir da versão 1.0 do nosso tracer.NET Lambda, o suporte [distributed tracing](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing) foi adicionado para SQS e SNS. Para habilitar distributed tracing para SQS ou SNS, você precisará concluir os itens nesta etapa, bem como configurar as variáveis de ambiente na etapa seguinte a esta. - - - A ativação do suporte distributed tracing para SQS e SNS desativará a instrumentação automática para SQS e SNS e exigirá o uso desses wrappers para instrumentá-los. - - - 1. Defina a variável de ambiente `NEW_RELIC_USE_DT_WRAPPER` como `true`. - 2. Para chamadas do instrumento SQS e SNS você precisará utilizar os wrappers fornecidos. - - - - O wrapper SQS oferece suporte ao empacotamento dos seguintes métodos: - - * Amazon.SQS.AmazonSQSClient.SendMessageAsync(...) - - * Amazon.SQS.AmazonSQSClient.SendMessageBatchAsync(...) - - Exemplos - - ```cs - - // SQS Client - AmazonSQSClient client = new AmazonSQSClient("AWS_SECRET_ACCESS_KEY", AWS_REGION); - - // SendMessageRequest - SendMessageRequest sendRequest = new SendMessageRequest("QUEUE_URI_STRING", "An SQS Message"); - Task responseOne = SQSWrapper.WrapRequest(client.SendMessageAsync, sendRequest); - - // String-based - Task responseTwo = SQSWrapper.WrapRequest(client.SendMessageAsync, "QUEUE_URI_STRING", "Another SQS Message"); - - // SendMessageBatchRequest - List batchEntries = new List(); - batchEntries.Add(new SendMessageBatchRequestEntry("id1", "First SQS Message")); - batchEntries.Add(new SendMessageBatchRequestEntry("id2", "Second SQS Message")); - batchEntries.Add(new SendMessageBatchRequestEntry("id3", "Third SQS Message")); - SendMessageBatchRequest sendBatchRequest = new SendMessageBatchRequest(QUEUE_URI, batchEntries); - Task response = SQSWrapper.WrapRequest(client.SendMessageBatchAsync, sendBatchRequest); - - // SendMessageBatchRequestEntry List - List moreBatchEntries = new List(); - batchEntries.Add(new SendMessageBatchRequestEntry("id4", "Fourth SQS Message")); - batchEntries.Add(new SendMessageBatchRequestEntry("id5", "Fifth SQS Message")); - batchEntries.Add(new SendMessageBatchRequestEntry("id6", "Sixth SQS Message")); - Task response = SQSWrapper.WrapRequest(client.SendMessageBatchAsync, moreBatchEntries); - - ``` - - - - O wrapper SNS oferece suporte aos seguintes métodos: - - * Amazon.SimpleNotificationService.AmazonSimpleNotificationServiceClient.PublishAsync(...) - - Exemplos - - ```cs - - // SNS Client - AmazonSimpleNotificationServiceClient client = new Amazon.SimpleNotificationService.AmazonSimpleNotificationServiceClient("AWS_SECRET_ACCESS_KEY", AWS_REGION); - - // PublishRequest - Phone Number - PublishRequest phonePublishRequest = new PublishRequest(); - phonePublishRequest.PhoneNumber = +1XXX5555100; - phonePublishRequest.Message = "An SNS Message for phones"; - Task phoneResponse = SNSWrapper.WrapRequest(client.PublishAsync, phonePublishRequest); - - // PublishRequest - ARN - PublishRequest publishRequest = new PublishRequest("TOPIC_ARN", "An SNS Message"); - Task publishResponse = SNSWrapper.WrapRequest(client.PublishAsync, publishRequest); - - // String-based without subject - Task responseOne = SNSWrapper.WrapRequest(client.PublishAsync, "TOPIC_ARN", "Another SNS Message"); - - // String-based with subject - Task responseTwo = SNSWrapper.WrapRequest(client.PublishAsync, "TOPIC_ARN", "Yet Another SNS Message", "A Subject"); - - ``` - - - - 5. As variáveis de ambiente a seguir não são necessárias para que o monitoramento do Lambda funcione, mas serão necessárias se você quiser que sua função do Lambda seja incluída no rastreamento distribuído. Para habilitar [distributed tracing](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing), defina estas variáveis de ambiente no [console do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html): - - * `NEW_RELIC_ACCOUNT_ID`: o [ID da conta](/docs/accounts/install-new-relic/account-setup/account-id) à qual o Lambda está se reportando. - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY`: Este também é o [ID da conta](/docs/accounts/install-new-relic/account-setup/account-id). Se sua conta for infantil, esse precisa ser o ID da conta raiz/pai. - - 6. Certifique-se de que a função wrapper (`FunctionWrapper` no exemplo acima) esteja configurada como o manipulador de função. - - 7. Invoque o Lambda pelo menos uma vez. Isso cria um grupo log do CloudWatch, que deve estar presente para que a próxima etapa funcione. - - Nosso wrapper coleta dados sobre a execução do Lambda, gera uma mensagem JSON e registra-a no log do CloudWatch. Em seguida, você [configurará o CloudWatch para enviar esses logs para o New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - - - Para instrumentar seu Node.js Lambda: - - 1. Faça download do nosso pacote de agente Node.js e coloque-o no mesmo diretório da sua função, garantindo que o agente seja instalado como uma dependência no diretório `node_modules` . Use o gerenciador de pacote Node: - - ```bash - - npm install newrelic --save - - ``` - - 2. No seu código Lambda, exija o módulo do agente na parte superior do arquivo e envolva a função do manipulador. Por exemplo: - - ```js - - const newrelic = require('newrelic'); - - // Other module loads go under the require statement above - - module.exports.handler = newrelic.setLambdaHandler((event, context, callback) => { - // This is your handler function code - console.log('Lambda executed'); - callback(); - }); - - ``` - - 3. Opcional: você também pode adicionar [eventos personalizados](/docs/using-new-relic/welcome-new-relic/getting-started/glossary#custom-event) ao seu Lambda usando a [API`recordCustomEvent` ](/docs/agents/nodejs-agent/api-guides/nodejs-agent-api#record_custom_event). Por exemplo: - - ```js - module.exports.handler = newrelic.setLambdaHandler((event, context, callback) => { - newrelic.recordCustomEvent('MyEventType', { foo: 'bar' }); - console.log('Lambda executed'); - callback(); - }); - ``` - - 4. Compacte sua função do Lambda e a pasta do agente Node.js. Requisitos e recomendações: - - * Os arquivos New Relic fora da pasta do agente New Relic não precisam ser incluídos. - * Se o nome do arquivo da função do Lambda for, por exemplo, `lambda_function.node`, recomendamos nomear seu arquivo zip `lambda_function.zip`. Não use um tarball. - * Seu Lambda e seus módulos associados devem estar todos no diretório raiz do arquivo zip. Isso significa que se você compactar uma pasta que contém os arquivos, não funcionará. - - 5. Carregue o arquivo compactado em sua conta do AWS Lambda. - - 6. No console AWS, defina estas [variáveis de ambiente](https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html): - - * `NEW_RELIC_NO_CONFIG_FILE`. Defina como `true` se não estiver usando um arquivo de configuração. - * `NEW_RELIC_APP_NAME`: o nome do seu aplicativo. - * `NEW_RELIC_ACCOUNT_ID`. [O ID da sua conta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY`. Este também é [o ID da sua conta](/docs/accounts/install-new-relic/account-setup/account-id). Se sua conta for infantil, esse precisa ser o ID da conta raiz/pai. - - 7. Opcional: para executar o agente no modo serverless fora da AWS em um ambiente local, defina a variável de ambiente `NEW_RELIC_SERVERLESS_MODE_ENABLED` como `true`. (Ao executar isso em um ambiente AWS Lambda, o agente será executado automaticamente no modo serverless. **Do not use this variable if you're running in AWS**.) - - 8. Opcional: para ativar a criação de log no modo serverless, configure estas variáveis de ambiente: - - * Defina `NEW_RELIC_LOG_ENABLED` como `true`. - * Defina `NEW_RELIC_LOG` como `stdout` para saída para o CloudWatch ou defina como qualquer local de arquivo gravável. - * `NEW_RELIC_LOG_LEVEL` é definido como `info` por padrão e é usado apenas ao enviar o log da função no seu Lamba. Veja [outro nível de log](/docs/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration#logging_config). - - 9. Opcional: se sua função do Lambda estiver usando Módulos ES, defina a variável de ambiente `NEW_RELIC_USE_ESM` como `true`. Observe que se estiver usando módulos ES, você deve usar async/await ou promessas para sua função. Funções baseadas em retorno de chamada não são suportadas. - - 10. Invoque o Lambda pelo menos uma vez. Isso cria um grupo log do CloudWatch, que deve estar presente para que a próxima etapa funcione. - - Nosso wrapper coleta dados sobre a execução do Lambda, gera uma mensagem JSON e registra-a no log do CloudWatch. Em seguida, você [configurará o CloudWatch para enviar esses logs para o New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - Leia mais sobre como [enviar log de funções com Lambda](https://github.com/newrelic/newrelic-lambda-extension). - - - - Para instrumentar seu Python Lambda: - - 1. Baixe nosso pacote de agente Python e coloque-o no mesmo diretório da sua função. Para fazer isso, use pip: - - ```bash - - pip install -t . newrelic - - ``` - - - Se você usa o Homebrew, poderá receber este erro: `DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both`. Para obter detalhes, consulte a [postagem do Homebrew GitHub](https://github.com/Homebrew/brew/blob/master/docs/Homebrew-and-Python.md#note-on-pip-install---user). - - - 2. Em seu código Lambda, importe o módulo do agente Python e decore a função do manipulador usando o decorador New Relic. **The New Relic package must be imported first in your code.** Aqui está um exemplo: - - ```py - - import newrelic.agent - newrelic.agent.initialize() - @newrelic.agent.lambda_handler() - def handler(event, context): - ... - - ``` - - 3. Opcional: você também pode adicionar [eventos personalizados](/docs/using-new-relic/welcome-new-relic/getting-started/glossary#custom-event) ao seu Lambda usando a [API`record_custom_event` ](/docs/agents/python-agent/python-agent-api/record_custom_event). Aqui está um exemplo: - - ```py - - @newrelic.agent.lambda_handler() - def handler(event, context): - newrelic.agent.record_custom_event('CustomEvent', {'foo': 'bar'}) - ... - - ``` - - 4. Compacte suas pastas `lambda_function.py` e `newrelic/` usando estas diretrizes: - - * Os arquivos New Relic fora da pasta `newrelic/` não precisam ser incluídos. - * Se o nome do arquivo da função do Lambda for, por exemplo, `lambda_function.py`, nomeie seu arquivo zip `lambda_function.zip`. Não use um tarball. - * Seu Lambda e seus módulos associados devem estar todos no diretório raiz do arquivo zip. Isso significa que se você compactar uma pasta que contém os arquivos, não funcionará. - - 5. Carregue o arquivo compactado em sua conta do AWS Lambda. - - 6. No console AWS, defina esta [variável de ambiente](https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html): - - * `NEW_RELIC_SERVERLESS_MODE_ENABLED`. Definido como `true` - - 7. As variáveis de ambiente a seguir não são necessárias para que o monitoramento do Lambda funcione, mas serão necessárias se você quiser que sua função do Lambda seja incluída no rastreamento distribuído. Para habilitar [distributed tracing](/docs/apm/distributed-tracing/getting-started/introduction-distributed-tracing), defina estas [variáveis de ambiente](https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html) no console AWS: - - * `NEW_RELIC_DISTRIBUTED_TRACING_ENABLED`. Defina como verdadeiro. - * `NEW_RELIC_ACCOUNT_ID`. [O ID da sua conta](/docs/accounts/install-new-relic/account-setup/account-id). - * `NEW_RELIC_TRUSTED_ACCOUNT_KEY`. Este também é [o ID da sua conta](/docs/accounts/install-new-relic/account-setup/account-id). Se sua conta for infantil, esse precisa ser o ID da conta raiz/pai. - - 8. Opcional: para configurar o registro em log, use as [variáveis de ambiente`NEW_RELIC_LOG` e `NEW_RELIC_LOG_LEVEL` ](/docs/agents/python-agent/configuration/python-agent-configuration#environment-variables)no Console AWS. - - 9. Invoque o Lambda pelo menos uma vez. Isso cria um grupo log do CloudWatch, que deve estar presente para que a próxima etapa funcione. - - O decorador New Relic coleta dados sobre a execução do Lambda, gera uma mensagem JSON e registra-a no log do CloudWatch. Em seguida, [configure o CloudWatch para enviar esses logs para o New Relic](/docs/serverless-function-monitoring/aws-lambda-monitoring/enable-lambda-monitoring/instrument-your-own/#manual-stream-logs). - - - - \ No newline at end of file