Se você estiver usando uma imagem conteinerizada para uma função do Lambda e quiser monitor seu aplicativo, será necessário adicionar New Relic ao seu Dockerfile. Por exemplo, suponha que você seja desenvolvedor de um aplicativo de orçamento e esteja usando uma função do Lambda para calcular saldos de contas toda vez que um cliente clica em See my balance. Você quer mergulhar fundo em qualquer latência potencial. Nesse caso, você precisará adicionar New Relic à sua função, para que cada vez que um cliente clicar em See my balance, sua função seja executada, e New Relic também.
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.
Exemplo
Aqui está um exemplo do Dockerfile original mesclado com a camada pré-construída do New Relic. Este exemplo usa um tempo de execução Node.js.
# 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 image:FROM public.ecr.aws/lambda/nodejs:20# Copy New Relic Layer codeCOPY /opt/ /opt/# Rest of your Dockerfile...Exemplos de Dockerfile baseados em tempo de execução
FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-java:17-arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-python:38-arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-nodejs:20-arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-ruby:32-arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-dotnet:arm64 AS layer# Layer codeCOPY /opt/ /opt/FROM public.ecr.aws/newrelic-lambda-layers-for-docker/newrelic-lambda-layers-lambdaextension:x86 as layer# Layer codeCOPY /opt/ /opt/
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 seu repositório AWS Elastic Container Registry para implantação.
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: