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" ]# 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" ]# 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" ]# 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 função original, mas certifique-se de adicionar quaisquer variáveis de ambiente necessárias para o monitoramento do New Relic Lambda. Consulte nossas variáveis de ambiente para obter mais informações.
Atualize o manipulador da sua função para apontar para a camada recém-anexada na substituição
cmd
da sua função. Você pode fazer isso usando as instruções nestes dois documentos: