Configuration du traçage natif pour les fonctions d' AWS Lambda basées sur .NET ou .NET Core

Vous pouvez configurer Instana AutoTrace pour les fonctions AWS Lambda écrites en .NET ou .NET Core.

Pour plus d'informations, consultez Instana AutoTrace.

Pour configurer le traçage natif pour les fonctions AWS Lambda basées sur .NET, vous devez ajouter la couche Instana Lambda à vos fonctions Lambda. Une fois le traçage activé, vous pouvez consulter les données de traçage de vos fonctions Lambda dans l'interface utilisateur d' Instana.

Environnements d'exécution pris en charge

Instana prend en charge la surveillance des applications exécutées sur .NET 8 et versions ultérieures.

Prérequis

Configurez l 'agent AWS pour la surveillance Lambda afin de collecter les versions et les métriques d'exécution qu' Instana ne peut pas récupérer depuis l'environnement d'exécution AWS Lambda.

Configuration des fonctions d' AWS Lambda s pour le traçage

En fonction de votre environnement, vous pouvez activer le traçage pour les fonctions AWS Lambda basées sur .NET ou .NET Core en utilisant l'une des options de configuration suivantes :

Activation du traçage via la console Web d' AWS

Pour activer le traçage des fonctions Lambda de .NET ou .NET Core, procédez comme suit dans l'interface utilisateur d' AWS Lambda :

  1. Ajoutez la couche Lambda d' Instana à votre fonction en suivant les étapes ci-dessous :

    1. Dans l'onglet Configuration de votre fonction Lambda, cliquez sur Couches > Ajouter une couche.

      couche

    2. Dans la fenêtre "Ajouter une couche", sélectionnez Spécifier un ARN.

    3. Copiez-collez le nom de ressource Amazon (ARN) de la couche Lambda « Instana » correspondant à votre région dans le champ « Spécifier un ARN ». Vous trouverez l'ARN correspondant à la couche Lambda « Instana » dans la section « Couches Lambda » du site Instana. Cliquez ensuite sur Vérifier.

    4. Cliquez sur Ajouter.

  2. Configurez les variables d'environnement suivantes pour vous connecter au backend Instana :

    Variables d'environnement Valeur
    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>

    Assurez-vous d'utiliser le point de terminaison Instana URL correspondant à votre région, qui commence par https://serverless-. Pour plus d'informations, consultez la section « Points de terminaison pour la surveillance sans serveur ».

    Remarque : si votre gestionnaire par défaut n'utilise pas le Assembly::Namespace.ClassName::MethodName format, configurez-le pour qu'il utilise ce LAMBDA_HANDLER format. Sinon, ne définissez pas la variable ou ne la laissez pas vide. Si les données de corrélation, qui indiquent le lien entre les traces et les entités d'infrastructure, sont absentes de l'interface utilisateur d' Instana, utilisez LAMBDA_HANDLER pour définir le format approprié.

    Vous pouvez également obtenir les valeurs correctes de ces variables d'environnement depuis l'interface utilisateur d' Instana. Pour obtenir les valeurs correctes de ces variables d'environnement, cliquez sur Plus > Agents > Installer des agents > Plateforme : AWS > Technologie : AWS Lambda dans l'interface utilisateur d' Instana.

Activation du traçage via l'interface de ligne de commande d' AWS

Si vous souhaitez automatiser l'intégration d' Instana s pour vos fonctions Lambda de l' AWS, consultez l'exemple de commande CLI suivant : 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=... , ...}"
 

Couches Instana Lambda

Les ARN de la dernière version des couches de l' AWS Lambda pour .NET, classés par région, sont les suivants :

Région ARN
af-south-1 arn:aws:lambda:af-south-1:410797082306:layer:instana-dotnetcore:40
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-dotnetcore:40
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-dotnetcore:40
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-dotnetcore:40
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-dotnetcore:40
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-dotnetcore:40
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-dotnetcore:40
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-dotnetcore:40
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-dotnetcore:40
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-dotnetcore:40
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-dotnetcore:40
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-dotnetcore:40
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-dotnetcore:37
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-dotnetcore:37
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-dotnetcore:39
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-dotnetcore:40
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-dotnetcore:40
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-dotnetcore:40
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-dotnetcore:40
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-dotnetcore:39
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-dotnetcore:40
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-dotnetcore:39
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-dotnetcore:40
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-dotnetcore:39
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:39
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-dotnetcore:40
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-dotnetcore:40
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-dotnetcore:39
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-dotnetcore:39

Par exemple, le modèle ARN est arn:aws:lambda:${region}:410797082306:layer:instana-dotnetcore:${layer-version}. Pour les régions AWS en Chine, le modèle ARN est arn:aws-cn:lambda:${region}:107998019096:layer:instana-dotnetcore:${layer-version}.

Remarque : veillez à toujours utiliser la dernière version de la couche Lambda d' Instana. Mettez à jour la version de couche que vous utilisez à intervalles réguliers pour bénéficier des fonctions et des correctifs fournis par la nouvelle version de la couche.

Problèmes connus

Lors de l'exécution de la fonction ` AWS Lambda `, l'erreur suivante peut apparaître dans les journaux. Cette erreur est une erreur interne d' Instana; elle ne signifie pas que la fonction Lambda a cessé de fonctionner ou qu'elle a généré une erreur. Si vous trouvez des traces dans l'interface utilisateur d' Instana, vous pouvez ignorer ce message.

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)
 

Installation manuelle du instana/aws-lambda paquet

Au lieu d'utiliser la couche Lambda d' Instana, vous devez procéder à une installation @instana/aws-lambda manuelle pour les environnements d' FedRAMP-complaint.

Pour activer le traçage des fonctions Lambda sur .NET ou .NET Core, procédez comme suit :

  1. Ajoutez les packages Instana et NuGet à votre projet de fonction dans Visual Studio :

  2. Dans l'interface utilisateur d' AWS Lambda, configurez les variables d'environnement suivantes pour vous connecter au backend Instana :

    Variables d'environnement Valeur
    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>

    Assurez-vous d'utiliser le point de terminaison Instana URL correspondant à votre région, qui commence par https://serverless-. Pour plus d'informations, consultez la section « Points de terminaison pour la surveillance sans serveur ».

    Remarque : si votre gestionnaire par défaut n'utilise pas le Assembly::Namespace.ClassName::MethodName format, configurez-le pour qu'il utilise ce LAMBDA_HANDLER format. Sinon, ne définissez pas la variable ou ne la laissez pas vide. Si les données de corrélation, qui indiquent le lien entre les traces et les entités d'infrastructure, sont absentes de l'interface utilisateur d' Instana, utilisez LAMBDA_HANDLER pour définir le format approprié.

    Vous pouvez également obtenir les valeurs correctes de ces variables d'environnement depuis l'interface utilisateur d' Instana. Pour obtenir les valeurs correctes de ces variables d'environnement, cliquez sur Plus > Agents > Installer des agents > Plateforme : AWS > Technologie : AWS Lambda dans l'interface utilisateur d' Instana.