• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

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

Criar um problema

Instrumentar sua própria função do Lambda

Esta é uma etapa para ativar o monitoramento AWS Lambda da New Relic.

Importante

Como existem vários passos para a integração, é importante que você teste o link da sua conta implantando e testando uma função de exemplo antes de implementar seu próprio código.

Estratégias de implantação

Existem muitas estratégias de implantação diferentes para a Função do Lambda. A New Relic oferece suporte direto para vários, mas não podemos cobrir todas as opções. Basicamente, a instrumentação New Relic Lambda depende do próprio serviço Lambda, em vez de qualquer estratégia ou ferramenta de implantação específica, por isso estamos confiantes de que ela pode funcionar em seu caso de uso.

newrelic-lambda Guia de início rápido da CLI

A ferramenta CLI que recomendamos para configurar o link da conta também pode reconfigurar sua função do Lambda para usar o New Relic.

Para instalar ou atualizar a camada de instrumentação New Relic, execute:

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

Este comando encontra automaticamente a camada disponível mais recente para a região e o tempo de execução do seu Lambda.

Essa é uma ótima maneira de iniciar rapidamente a instrumentação e essa ferramenta pode ser facilmente integrada aos seus processos de CI/CD existentes. No entanto, como ele modifica os recursos existentes da Função do Lambda, ao implantar uma atualização de código em sua função, você pode remover inadvertidamente a instrumentação do New Relic. Certifique-se de executar novamente o comando acima após cada atualização ou (melhor ainda) integre a camada e a configuração associada ao seu processo de implantação existente.

Observe que a CLI pode operar em muitas funções em um lote: use --function all, --function installed ou --function not-installed para operar em todas as funções em uma região ou apenas naquelas com ou sem instrumentação New Relic existente.

implantação contínua

No longo prazo, geralmente é menos trabalhoso integrar o New Relic ao seu processo de implantação contínua existente. Em vez de executar a CLI após atualizar sua função, você pode integrar o New Relic à sua framework de implantação contínua.

Integração incomum

Para a maioria, uma das opções acima funcionará bem. Há uma chance de você não poder usar nenhuma dessas soluções. Para obter orientação sobre como personalizar sua integração para atender às suas necessidades, continue lendo.

Telemetria CloudWatch

Conforme mencionado anteriormente, recomendamos o envio de sua telemetria por meio do log do CloudWatch. Este caminho ainda pode funcionar, embora esteja obsoleto.

  1. Desative a extensão adicionando a variável de ambiente NEW_RELIC_LAMBDA_EXTENSION_ENABLED à sua função, com o valor false.

  2. Crie um filtro de assinatura de log do CloudWatch para invocar a função newrelic-log-ingestion com o log da sua função.

    • A CLI pode fazer isso por você: newrelic-lambda subscriptions install --function FUNCTION_NAME
    • Como alternativa, use o Console AWS para criar um filtro de assinatura do grupo log do CloudWatch da sua função para invocar a newrelic-log-ingestion função do Lambda. Veja abaixo.

Configuração da interface do console Lambda

Embora seja mais propenso a erros e trabalhoso do que as abordagens acima, é possível alterar manualmente a configuração de uma função do Lambda para usar New Relic do AWS Lambda Console, para Node.js, Python, Ruby e Java.

  1. Encontre a camada que corresponde ao seu tempo de execução e região.

  2. Copie o nome de recurso da Amazon (ARN) da versão mais recente e adicione-o no console do AWS Lambda para sua função.

  3. Atualize o manipulador da sua função para apontar para a camada recém-anexada no console da sua função:

    • Python e Ruby: newrelic_lambda_wrapper.handler (sublinhados)

    • Nó: newrelic-lambda-wrapper.handler (hífens)

    • Java:

      • RequestHandler implementação: com.newrelic.java.HandlerWrapper::handleRequest
      • RequestStreamHandlerWrapper implementação: com.newrelic.java.HandlerWrapper::handleStreamsRequest
  4. Adicione estas variáveis de ambiente ao console do Lambda:

    • NEW_RELIC_ACCOUNT_ID: ID da sua conta
    • NEW_RELIC_LAMBDA_HANDLER: caminho para seu manipulador inicial.
  5. Modifique a função de execução para permitir acesso ao segredo da New Relic

    1. Encontre o ARN do segredo nomeado NEW_RELIC_LICENSE_KEY

    2. Adicione uma nova política in-line na função de execução da função semelhante a esta (substituindo SECRET_ARN pelo valor encontrado acima):

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

Observe que para o Go, você deve fazer alterações no código-fonte da sua função do Lambda para instrumentá-lo. As alterações de configuração não são suficientes.

Personalização de camadas

A camada contém vários componentes, dependendo do seu tempo de execução:

  1. Para todos os tempos de execução, o executável da extensão é empacotado na camada.

  2. Para Python, Ruby, Node.js e Java, também incluímos:

    1. O agente New Relic
    2. O pacote de instrumentação AWS SDK para o agente New Relic
    3. Um wrapper de manipulador, que configura o agente e intercepta invocações para iniciar o processo de instrumentação e, em seguida, invoca seu manipulador.
  3. Para .NET, também incluímos:

    1. O agente New Relic
    2. Instrumentação automática da sua função do manipulador Lambda.

Se precisar de um wrapper diferente, você pode construir sua própria camada, baseada na nossa. Consulte nosso repositório GitHub newrelic-lambda-layers para obter o código contido em nossa função wrapper. Ao criar sua própria camada com um wrapper substituto e aplicá-la depois do nosso, seu wrapper substituirá aquele que fornecemos. Da mesma forma, você pode incluir seu wrapper personalizado diretamente em sua função.

Da mesma forma, se você estiver testando uma construção personalizada do agente, talvez para resolver algum bug, você pode modificar nosso script de empacotamento de camada acima para empacotar a construção do seu agente e construir sua própria camada.

Não recomendamos explicitamente que você empacote o agente com sua função do Lambda. Embora isso seja possível, torna difícil atualizar o agente e receber correções de bugs. A camada pode entrar em conflito com o seu agente fornecedor. Tal configuração deve ser considerada não suportada, embora possa funcionar.

Este documento ajudou você na instalação?

Qual é o próximo?

Depois de concluir essas etapas, veja o que você pode fazer a seguir:

Copyright © 2024 New Relic Inc.

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