Configurazione del tracciamento nativo per le funzioni di AWS Lambda basate su .NET o .NET Core

È possibile configurare Instana AutoTrace per le funzioni AWS Lambda scritte in .NET o .NET Core.

Per ulteriori informazioni, consultare Instana AutoTrace.

Per configurare il tracciamento nativo per le funzioni AWS Lambda basate su .NET, è necessario aggiungere il layer Instana Lambda alle funzioni Lambda. Dopo aver abilitato il tracciamento, puoi visualizzare i dati di tracciamento delle tue funzioni Lambda nell'interfaccia utente di Instana.

Runtime supportati

Instana supporta il monitoraggio di applicazioni che funzionano su .NET 8 e versioni successive.

Prerequisiti

Configura l 'agente AWS per il monitoraggio di Lambda, in modo da raccogliere le versioni e le metriche di runtime che Instana non è in grado di rilevare dall'interno del runtime AWS Lambda.

Configurazione delle funzioni di tracciamento di AWS Lambda

A seconda dell'ambiente in uso, è possibile abilitare la tracciatura per le funzioni di AWS Lambda basate su .NET o .NET Core utilizzando una delle seguenti opzioni di configurazione:

Attivazione del tracciamento tramite la console web dell' AWS

Per abilitare il tracciamento delle funzioni Lambda su .NET o .NET Core, seguire questi passaggi nell'interfaccia utente di AWS Lambda :

  1. Aggiungi il livello Lambda di " Instana " alla tua funzione seguendo questi passaggi:

    1. Nella scheda Configurazione della funzione Lambda, fare clic su Livelli > Aggiungi un livello.

      livello

    2. Nella finestra "Aggiungi livello", selezionare Specifica un ARN.

    3. Copia e incolla il nome della risorsa Amazon (ARN) relativo al livello Lambda " Instana " corrispondente alla tua regione nel campo "Specifica un ARN ". È possibile trovare l'ARN corretto per il livello Lambda " Instana " nella sezione " Instana " dedicata ai livelli Lambda. Quindi, fare clic su Verifica.

    4. Fare clic su Aggiungi.

  2. Configurare le seguenti variabili d'ambiente per connettersi al backend Instana :

    Variabili di ambiente Valore
    CORECLR_ENABLE_PROFILING 1
    CORECLR_PROFILER {cf0d821e-299b-5307-a3d8-b283c03916dd}
    CORECLR_PROFILER_PATH /opt/instana_tracing/CoreProfiler.so
    DOTNET_STARTUP_HOOKS /opt/Instana.Tracing.Core.dll
    INSTANA_AGENT_KEY <your_instana_agent_key>
    INSTANA_ENDPOINT_URL <serverless_instana_endpoint>
    INSTANA_AWS_ACCOUNT_ID <your_aws_account_id>
    LAMBDA_HANDLER <Assembly::Namespace.ClassName::MethodName>

    Assicurati di utilizzare l'endpoint Instana corretto URL per la tua regione, che inizia con https://serverless-. Per ulteriori informazioni, consultare la sezione "Endpoint per il monitoraggio serverless ".

    Nota:
    Se il tuo gestore predefinito non utilizza il formato Assembly::Namespace.ClassName::MethodName , imposta il tuo gestore predefinito nel formato LAMBDA_HANDLER . Altrimenti, non impostare la variabile o lasciarla vuota. Se nell'interfaccia utente di Instana mancano i dati di correlazione, che mostrano la connessione tra le tracce e le entità dell'infrastruttura, utilizzare LAMBDA_HANDLER per impostare il formato corretto.

    È inoltre possibile ottenere i valori corretti per queste variabili d'ambiente dall'interfaccia utente di Instana. Per ottenere i valori corretti di queste variabili d'ambiente, fare clic su Altro > Agenti > Installa agenti > Piattaforma: AWS > Tecnologia: AWS Lambda nell'interfaccia utente di Instana.

Attivazione del tracciamento tramite l'interfaccia a riga di comando di AWS

Se desideri automatizzare l'integrazione con l' Instana delle tue funzioni Lambda su AWS, consulta il seguente esempio di comando della CLI di AWS :

# Do not copy and paste this verbatim!
# It will overwrite any previously defined collection of layers and
# environment variables.
aws --region $YOUR_REGION lambda update-function-configuration \
   --function-name $YOUR_LAMBDA_FUNCTION_NAME \
   --layers $INSTANA_LAYER_ARN \
   --environment "Variables={CORECLR_ENABLE_PROFILING=1, CORECLR_PROFILER=\"{cf0d821e-299b-5307-a3d8-b283c03916dd}\", CORECLR_PROFILER_PATH=/opt/instana_tracing/CoreProfiler.so, DOTNET_STARTUP_HOOKS=/opt/Instana.Tracing.Core.dll, INSTANA_ENDPOINT_URL=... , INSTANA_AGENT_KEY=... , ...}"
 

Instana Strati Lambda

Gli ARN della versione più recente dei livelli dell' AWS Lambda e per .NET, suddivisi per regione, sono i seguenti:

Regione ARN
af-south-1 arn:aws:lambda:af-south-1:410797082306:layer:instana-dotnetcore:45
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-dotnetcore:45
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-dotnetcore:45
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-dotnetcore:45
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-dotnetcore:45
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-dotnetcore:45
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-dotnetcore:45
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-dotnetcore:45
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-dotnetcore:45
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-dotnetcore:45
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-dotnetcore:45
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-dotnetcore:45
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-dotnetcore:41
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-dotnetcore:42
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-dotnetcore:44
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-dotnetcore:45
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-dotnetcore:45
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-dotnetcore:45
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-dotnetcore:45
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-dotnetcore:44
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-dotnetcore:45
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-dotnetcore:44
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-dotnetcore:45
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-dotnetcore:null
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-dotnetcore:null
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-dotnetcore:44
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-dotnetcore:45
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-dotnetcore:45
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-dotnetcore:44
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-dotnetcore:44

Ad esempio, il modello ARN è arn:aws:lambda:${region}:410797082306:layer:instana-dotnetcore:${layer-version}. Per le regioni AWS in Cina il modello ARN è arn:aws-cn:lambda:${region}:107998019096:layer:instana-dotnetcore:${layer-version}.

Nota:
Assicurati di utilizzare sempre l'ultima versione del Lambda Layer di Instana. Aggiornare la versione del livello utilizzata a intervalli regolari per beneficiare delle funzioni e delle fix fornite dalla nuova versione del livello.

Problemi noti

Durante l'esecuzione della funzione ` AWS Lambda `, nei log potrebbe comparire il seguente errore. Questo errore è un errore interno di Instana e non significa che la funzione Lambda abbia smesso di funzionare o abbia generato un errore. Se riesci a individuare le tracce nell'interfaccia utente di Instana, puoi ignorare questo messaggio.

Error sending traces. Exception: System.Threading.Tasks.TaskCanceledException, Message:The request was canceled due to the configured HttpClient.Timeout of 2 seconds elapsing. (calling https://serverless.instana.io/bundle), Original exception: A task was canceled., CallStack:   at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)
 

Installazione manuale del instana/aws-lambda pacchetto

Invece di utilizzare il livello Lambda di Instana, è necessario effettuare l'installazione @instana/aws-lambda manualmente per gli ambienti di FedRAMP-complaint.

Per abilitare il tracciamento delle funzioni Lambda su .NET o .NET Core, procedere come segue:

  1. Aggiungi i pacchetti Instana NuGet al tuo progetto di funzioni in Visual Studio:

  2. Nell'interfaccia utente di AWS Lambda, configurare le seguenti variabili d'ambiente per connettersi al backend Instana :

    Variabili di ambiente Valore
    CORECLR_ENABLE_PROFILING 1
    CORECLR_PROFILER {cf0d821e-299b-5307-a3d8-b283c03916dd}
    CORECLR_PROFILER_PATH <path to /instana_tracing/CoreProfiler.so file accessible from Lambda>
    DOTNET_STARTUP_HOOKS <path to /Instana.Tracing.Core.dll file accessible from Lambda>
    INSTANA_AGENT_KEY <your_instana_agent_key>
    INSTANA_ENDPOINT_URL <serverless_instana_endpoint>
    INSTANA_AWS_ACCOUNT_ID <your_aws_account_id>
    LAMBDA_HANDLER <Assembly::Namespace.ClassName::MethodName>

    Assicurati di utilizzare l'endpoint Instana corretto URL per la tua regione, che inizia con https://serverless-. Per ulteriori informazioni, consultare la sezione "Endpoint per il monitoraggio serverless ".

    Nota:
    Se il tuo gestore predefinito non utilizza il formato Assembly::Namespace.ClassName::MethodName , imposta il tuo gestore predefinito nel formato LAMBDA_HANDLER . Altrimenti, non impostare la variabile o lasciarla vuota. Se nell'interfaccia utente di Instana mancano i dati di correlazione, che mostrano la connessione tra le tracce e le entità dell'infrastruttura, utilizzare LAMBDA_HANDLER per impostare il formato corretto.

    È inoltre possibile ottenere i valori corretti per queste variabili d'ambiente dall'interfaccia utente di Instana. Per ottenere i valori corretti di queste variabili d'ambiente, fare clic su Altro > Agenti > Installa agenti > Piattaforma: AWS > Tecnologia: AWS Lambda nell'interfaccia utente di Instana.