Se você estiver usando uma imagem em contêiner para uma função do Lambda e quiser monitor seu aplicativo, precisará adicionar uma camada pré-criadaNew Relic Lambda ao seu Dockerfile que corresponda ao tempo de execução da sua função.
Aqui está um diagrama que mostra o processo de adição New Relic ao Dockerfile para que você possa monitor sua função:

Se você estiver usando uma imagem em contêiner para sua função do Lambda, poderá adicionar New Relic à sua imagem.
Aqui está um guia para adicionar nossa camada pré-construída ao seu código.
Adicione New Relic ao seu Dockerfile
A New Relic oferece imagens pré-construídas que incluem os diferentes tempos de execução da nossa camada: Java, Node.js, Python e somente extensão.
Selecione a camada compatível com o tempo de execução e região específicos da sua função do Lambda:
Em seu Dockerfile de vários estágios, use a imagem pré-construída do New Relic como um estágio de construção intermediário. Em seguida, copie o agente e a extensão da New Relic da nossa imagem pré-construída para o estágio final de construção.
Exemplos de Dockerfile baseados em tempo de execução
# Define the New Relic pre-built imageFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-java:21 AS layer# Define the base imageFROM public.ecr.aws/lambda/java:21# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override to one of New Relic's handler wrappersCMD [ "com.newrelic.java.HandlerWrapper::handleRequest" ]# CMD [ "com.newrelic.java.HandlerWrapper::handleStreamsRequest" ]Experimente um exemplo prático de uma função Java em contêiner do Lambda usando SAM.
# Define the New Relic pre-built imageFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-python:311 AS layer# Define the base imageFROM public.ecr.aws/lambda/python:3.11# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override to New Relic's handler wrapperCMD [ "newrelic_lambda_wrapper.handler" ]Experimente um exemplo prático de uma função Python em contêiner do Lambda usando SAM.
# Define the New Relic pre-built imageFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-nodejs:20 AS layer# Define the base imageFROM public.ecr.aws/lambda/nodejs:20# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override to New Relic's handler wrapperCMD [ "newrelic-lambda-wrapper.handler" ]# If your lambda function is ESM, use the New Relic's Node.js ESM handler wrapper# CMD ["/opt/nodejs/node_modules/newrelic-esm-lambda-wrapper/index.handler"]Experimente um exemplo prático de uma função do Lambda em contêiner Node.js usando SAM.
# Define the New Relic pre-built imageFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:33 AS layer# Define the base imageFROM public.ecr.aws/lambda/ruby:3.3# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override to New Relic's handler wrapperCMD [ "newrelic_lambda_wrapper.handler" ]FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-dotnet:x86_64 AS layer# Define the base imageFROM public.ecr.aws/lambda/dotnet:8# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override not needed since the dotnet layer does not have a handler wrapperFROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-lambdaextension:x86 as layer# Any lambda base image can be used# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...# CMD override not needed since the extension layer does not have an agent
Crie uma imagem
- Depois de adicionar a referência à imagem pré-construída do New Relic ao seu Dockerfile, você precisará construir uma nova imagem a partir do Dockerfile modificado. Esta nova imagem terá seu código original e a imagem pré-construída do New Relic. Para isso, recomendamos seguir os passos listados no guia AWS , Criar uma função do Lambda usando uma imagem de contêiner.
- Envie a nova imagem para o repositório do AWS Elastic Container Registry para sua função usar.
Crie uma nova função do Lambda
Usando a imagem que você enviou para AWS ECR, crie uma nova função do Lambda. Para obter mais informações sobre a criação desta função, recomendamos voltar ao guia AWS : Create a função do Lambda.
Configure sua função do Lambda
Configure a função do Lambda com as mesmas configurações da sua função original, mas certifique-se de adicionar quaisquer variáveis de ambiente necessárias para o monitoramento do New Relic Lambda . Veja nossas Variáveis de ambiente para mais informações.
Atualize o manipulador da sua função para apontar para a camada recém-anexada na substituição
cmdda sua função. Você pode fazer isso usando as instruções nestes dois documentos:
Encontre e use dados
Após instrumentar sua função AWS do Lambda, você poderá encontrar e usar os dados na interface do New Relic APM. Os dados estão organizados em diversas áreas principais, cada uma fornecendo diferentes insights sobre o desempenho e a saúde da sua função Lambda.
Na interface APM, você pode explorar vários aspectos da sua função Lambda, incluindo distributed tracing, mapas de serviço, transações, análise de erros e muito mais. Cada uma dessas áreas fornece insights detalhadas sobre o desempenho, a latência e a taxa de erros da sua função Lambda, permitindo que você identifique e resolva problemas rapidamente.
Dica
A experiência de invocação agora está integrada ao rastreamento de transações do APM. Isso permite que você use um AWS RequestId específico para detalhar um trace APM de transação para obter informações detalhadas sobre aquela execução Lambda específica.
Para visualizar sua função Lambda na interface do New Relic APM :
- Vá para https://one.newrelic.com > APM & Services.
- Defina os critérios de pesquisa como
isLambdaFunction = true. - Na lista exibida, selecione sua função Lambda para visualizar os dados.