Fonction de trace AWS Lambda native pour Node.js

Vous pouvez configurer Instana Tracing pour AWS Lambda functions qui est écrit en Node.js.

Prérequis

Configurez l' agent AWS pour la surveillance Lambda afin d'assurer la collecte des informations nécessaires sur les versions et certaines métriques d'exécution qu'Instana ne peut pas collecter à l'intérieur de l'exécution Lambda AWS.

Remarque : la configuration de l'agent AWS est facultative.

Mise en place d'un suivi pour les fonctions Lambda sur Node.js

Instana propose plusieurs façons d'activer le traçage pour les fonctions Lambda de AWS. Les options de configuration suivantes sont disponibles :

Note : Instana n'offre pas de couches Lambda dans les régions GovCloud (us-gov-west-1 et us-gov-east-1). Si vous souhaitez utiliser Instana dans les régions GovCloud, installez manuellement le paquet Instana Node.js @instana/aws-lambda et enveloppez votre fonction de gestion comme décrit dans la section Installation manuelle de @instana/aws-lambda.

Configuration d'Instana AutoTrace

La configuration d'Instana AutoTrace pour Node.js vous permet de suivre les fonctions AWS Lambda en utilisant la couche Instana Lambda et un gestionnaire de fonctions personnalisé. Cette approche ne nécessite aucune modification de code de la fonction Lambda et s'effectue par le biais d'une simple configuration. Cette configuration peut parfaitement être automatisée ou incluse dans un pipeline de déploiement Lambda.

Pour activer le suivi des fonctions Lambda Node.js, procédez comme suit :

  1. Ajoutez la couche Instana Lambda à votre fonction.

    1. Dans la page de configuration de votre fonction Lambda, cliquez sur la Layers case, puis sur Add a layer. couche
    2. Dans la fenêtre contextuelle qui s'ouvre, sélectionnez Fournir un ARN de version de couche, puis copiez et collez l'ARN correspondant à votre région pour la couche Instana Lambda. Vous trouverez l'ARN approprié pour la couche Instana Lambda dans la section Couches Instana Lambda. sélection des couches
  2. Configurez le gestionnaire Lambda. Définissez le gestionnaire à instana-aws-lambda-auto-wrap.handler si vous utilisez CommonJS. Définir le gestionnaire sur instana-aws-lambda-auto-wrap-esm.handler si vous utilisez les modules ES ( ES6 ) (disponibles à partir de la version de couche 223).

    Pour modifier les paramètres du gestionnaire Lambda, consultez la section "Paramètres de base" sur la page de configuration.

    section paramètres de base bouton modifier

    Cliquez sur Editer et insérez instana-aws-lambda-auto-wrap.handler dans la zone "Gestionnaire".

    modifier les paramètres de base pour définir le gestionnaire d'Instana

    La couche Instana Lambda déclenche automatiquement le gestionnaire d'exécution par défaut Node.js index.handler. Si vous utilisez un gestionnaire personnalisé, spécifiez votre gestionnaire dans la variable d'environnement LAMBDA_HANDLER pour notifier la couche Lambda d'Instana. Voir la section suivante pour toutes les variables d'environnement qui doivent être définies.

    La page de configuration Lambda peut afficher un avertissement tel que Lambda ne peut pas trouver le fichier instana-aws-lambda-auto-wrap.js. Cet avertissement peut également s'afficher ultérieurement lors du retour à la page de configuration. Ne vous laissez pas distraire par cet avertissement. Le gestionnaire réside dans la couche Instana Lambda, mais la page de configuration d'AWS Lambda n'en tient pas compte.

  3. Configurez les variables d'environnement. Ajoutez les variables d'environnement suivantes :

    • INSTANA_ENDPOINT_URL: Il s'agit de votre point final de surveillance sans serveur. Veillez à utiliser la valeur correcte pour votre région qui commence par https://serverless-.
    • INSTANA_AGENT_KEY: Votre clé d'agent.
    • LAMBDA_HANDLER: Définissez votre gestionnaire personnalisé. Si votre fichier principal est myModule.js, qui exporte la fonction myHandler, définissez la variable d'environnement myModule.myHandler. La valeur par défaut est index.handler.

    Dans l'exemple suivant, le gestionnaire Lambda principal d'origine est index.js, et vous n'avez donc pas besoin de définir la variable d'environnement LAMBDA_HANDLER. paramètres pour les variables env par défaut

    Dans l'exemple suivant, le gestionnaire Lambda principal d'origine est server.js, et vous devez donc définir la variable d'environnement LAMBDA_HANDLER sur server.handler. paramètres pour les variables env personnalisées

    Vous pouvez également obtenir les valeurs correctes pour ces variables d'environnement en allant dans votre installation Instana, cliquez sur... More -> Agents -> Installation des agents Instana -> Plate-forme : AWS -> Technologie : AWS Lambda.

  4. Enregistrez la définition de la fonction Lambda. sauvegarder

Toutes les étapes décrites précédemment peuvent être effectuées soit via la console web AWS, soit via l'un des outils de gestion habituels de AWS, comme par exemple :

Voici un exemple de commande CLI aws qui pourrait servir de point de départ si vous souhaitez automatiser l'intégration d'Instana de vos instances AWS Lambda :

# 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 \
  --handler instana-aws-lambda-auto-wrap.handler \
  --environment ""Variables={INSTANA_ENDPOINT_URL=... , INSTANA_AGENT_KEY=... , ...}""
 

Installation manuelle de @instana/aws-lambda

Au lieu d'utiliser la couche Instana Lambda, vous pouvez également envisager d'installer manuellement le package npm @instana/aws-lambda :

  1. Ajoutez la dépendance @instana/aws-lambda à votre projet en exécutant npm install -S @instana/aws-lambda (ou yarn add @instana/aws-lambda) dans le répertoire de votre projet. Cette commande ajouter le package à votre dossier node_modules et enregistre la dépendance dans votre fichier package.json.
  2. Ajouter les variables d'environnement INSTANA_ENDPOINT_URL et INSTANA_AGENT_KEY avec les valeurs requises.
  3. Modifiez le code de la fonction conformément à la section Enveloppe manuelle du gestionnaire.

Encapsulation manuelle du gestionnaire

Si vous ne voulez pas ou ne parvenez pas à utiliser l'auto-wrap handler, vous devez modifier légèrement le code de votre fonction Lambda Node.js AWS pour activer le traçage d'Instana.

Remarque : les modifications de code décrites dans cette section ne sont pas nécessaires si vous utilisez la couche Instana Lambda et le gestionnaire d'enveloppement automatique comme décrit dans la section AutoTrace AWS Lambdas.
Remarque : Si vous regroupez votre gestionnaire Lambda avec Webpack, cette approche n'est pas recommandée, car le package de base d'Instana ne prend pas en charge le prétraitement avec Webpack. L'approche AutoTrace AWS Lambdas est adaptée aux Lambdas utilisant webpack. En guise d'alternative, vous pouvez utiliser l'encapsulation manuelle et exclure, au moins, le package @instana/aws-lambda (ou toutes les dépendances) du prétraitement avec Webpack. Voir cette section dans la documentation Node.js; pour le framework serverless, se référer également à la section Serverless framework.
  1. Ajoutez la ligne const instana = require('@instana/aws-lambda'); au tout début du fichier JavaScript de votre gestionnaire.
  2. Ecapsulez la fonction de gestionnaire dans un appel instana.wrap().
  3. Configurez les variables d'environnement pour la connexion au backend Instana comme décrit dans la documentation Instana AutoTrace pour AWS Lambda.

Voici quelques exemples avant et après pour les différents styles de fonction de gestionnaire qui pouvant être utilisés pour les services AWS Lambda basés sur Node.js :

Gestionnaire de style de fonction asynchrone

Si vous utilisez une fonction async en tant que gestionnaire, elle doit se présenter comme suit :

exports.handler = async (event, context) => {
  // your code
};
 

Le code qui en résulte devrait ressembler à ceci :

const instana = require('@instana/aws-lambda');

exports.handler = instana.wrap(async (event, context) => {
  // your code
}); // <- don't forget the closing ) for the instana.wrap(
 

Gestionnaire Lambda de style promesse

Si vous utilisez un gestionnaire de style de promesse (promise), il doit se présenter comme suit :

exports.handler = (event, context) => {
  // your code, which returns a promise
};
 

Le code qui en résulte devrait ressembler à ceci :

const instana = require('@instana/aws-lambda');

exports.handler = instana.wrap((event, context) => {
  // your code, which returns a promise
}); // <- don't forget the closing ) for the instana.wrap(
 

Gestionnaire Lambda de style rappel

Si vous utilisez un gestionnaire de style rappel (callback), il doit se présenter comme suit :

exports.handler = (event, context, callback) => {
  // your code
};
 

Le code qui en résulte devrait ressembler à ceci :

const instana = require('@instana/aws-lambda');

exports.handler = instana.wrap((event, context, callback) => {
  // your code
}); // <- don't forget the closing ) for the instana.wrap(
 

Objet de configuration

Vous pouvez également passer un objet de configuration facultatif comme premier argument lors de l'encapsulation de votre gestionnaire :

exports.handler = instana.wrap({
    // ... your configuration, for example:
    tracing: {
      stackTraceLength: 10
    }
  },
  async (event, context) => {
  // your code
});
 

Les valeurs de configuration qui ne sont pas prises en charge dans la traçabilité Lambda native (comme agentHost, agentPort et reportUnhandledPromiseRejections) sont ignorées de manière silencieuse.

Notez que vous pouvez également utiliser les variables d'environnement énumérées dans la section Variables d'environnement supplémentaires et la plupart des variables énumérées sur la page de configuration de Node.js.

Couche Instana Lambda pour les fonctions basées sur les conteneurs

Si votre équipe utilise des déploiements Lambda basés sur des conteneurs, vous pouvez utiliser nos conteneurs de base sur icr.io/instana/aws-lambda-nodejs ou inclure l'extrait suivant dans votre fichier Docker et définir les arguments de temps de construction aux versions appropriées.

Instana ne prend actuellement en charge que l'architecture x86_64 .

Cette image n'est pas destinée à être utilisée dans les environnements FedRAMP-compliant.

# This is the container image that delivers Instana's monitoring capabilities.
# It will not become the base image for your Lambda container image, it just provides a few files.
FROM icr.io/instana/aws-lambda-nodejs:latest as instana-layer

# This is the actual base image for your Lambda container image. You can also use any other base image that is suitable
# for container image based Lambda functions.
FROM public.ecr.aws/lambda/nodejs:14

# Copy Instana's Node.js monitoring components into your Lambda container image.
COPY --from=instana-layer /opt/extensions/ /opt/extensions/
COPY --from=instana-layer /opt/nodejs/ /opt/nodejs/

# The remainder of your Dockerfile, as it was without adding the Instana layer. The following is just an example:
COPY index.js package.json package-lock.json /var/task/
WORKDIR /var/task
RUN npm install

# Override the CMD. This can also be done as a parameter override outside of the Dockerfile, for example in the AWS console.
# If you use ES modules, use CMD [ "instana-aws-lambda-auto-wrap-esm.handler" ] instead.
CMD [ "instana-aws-lambda-auto-wrap.handler" ]
 

Au lieu de icr.io/instana/aws-lambda-nodejs:latest, vous pouvez également utiliser une version spécifique du module Instana npm @instana/aws-lambda supérieure ou égale à 1.137.2 (voir CHANGELOG ), comme par exemple :

FROM icr.io/instana/aws-lambda-nodejs:1.140.1 as instana-layer
 

Ou bien vous ne pouvez épingler que la version majeure, tout en autorisant les versions mineures ou correctives plus récentes :

FROM icr.io/instana/aws-lambda-nodejs:1 as instana-layer
 
Remarque : les prochaines versions de icr.io/instana/aws-lambda-nodejs ne prendront plus en charge les anciennes durées d'exécution de Lambda Node.js. Par exemple, à partir de la version icr.io/instana/aws-lambda-nodejs:2.0.0, la prise en charge de nodejs8.x sera abandonnée. Il est recommandé d'épingler la version majeure lors de l'utilisation d'anciens runtimes Lambda.

Intégration de la fonction de trace Instana à l'infrastructure sans serveur

Modifiez le site serverless.yml pour intégrer le traçage Instana avec le Serverless Framework. Suivez ces étapes :

  1. Copiez l' ARN du calque dans la liste et ajoutez l'ARN à la section des calques de la définition de la fonction cible.

  2. Ajoutez les variables d'environnement INSTANA_AGENT_KEY, INSTANA_ENDPOINT_URL et LAMBDA_HANDLER. Pour plus d'informations, voir Instana AutoTrace setup.

Voir l'exemple suivant serverless.yml:

service: service-a

provider:
  name: aws
  runtime: nodejs16.x
  stage: dev
  region: us-east-2

functions:
  with-layer:
    environment:
      INSTANA_ENDPOINT_URL: INSTANA_ENDPOINT_URL
      INSTANA_AGENT_KEY: INSTANA_AGENT_KEY
      LAMBDA_HANDLER: src/index.handler
    layers:
      - arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:111
    handler: instana-aws-lambda-auto-wrap.handler
 

Sans serveur hors ligne

Prérequis : Assurez-vous d'avoir suivi les étapes 1 et 2 de la section Intégrer Instana Tracing avec le Serverless Framework.

Modifiez le fichier serverless.yml pour intégrer Instana avec le Serverless Framework et Serverless Offline. Suivez ces étapes :

  1. Définissez la variable d'environnement NODE_PATH comme étant $NODE_PATH:/opt/nodejs/node_modules.
  2. Définir useDocker le champ true dans la section custom . Ensuite, la couche Instana sera automatiquement téléchargée dans un conteneur Docker.

Voir l'exemple suivant serverless.yml:

service: service-b

provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: us-east-2

plugins:
  - serverless-offline

custom:
  serverless-offline:
    useDocker: true

functions:
  with-serverless-offline:
    environment:
      NODE_PATH: $NODE_PATH:/opt/nodejs/node_modules
      INSTANA_ENDPOINT_URL: INSTANA_ENDPOINT_URL
      INSTANA_AGENT_KEY: INSTANA_AGENT_KEY
      LAMBDA_HANDLER: src/index.handler
    layers:
      - arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:111
    handler: instana-aws-lambda-auto-wrap.handler
 

Webpack sans serveur

Prérequis : Assurez-vous d'avoir suivi les étapes 1 et 2 de la section Intégrer Instana Tracing avec le Serverless Framework.

Modifiez le fichier serverless.yml pour intégrer Instana avec le Serverless Framework et le Serverless Webpack.

Ajouter entrypoint à la définition de la fonction Lambda cible. Le point d'entrée est votre Node.js Lambda handler original, qui est déclenché automatiquement par la couche Instana Lambda. Pour plus d'informations, voir Instana AutoTrace setup.

Voir l'exemple suivant serverless.yml:

service: service-c

provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: us-east-2

plugins:
  - serverless-webpack

package:
  individually: true

functions:
  with-serverless-webpack:
    environment:
      INSTANA_ENDPOINT_URL: INSTANA_ENDPOINT_URL
      INSTANA_AGENT_KEY: INSTANA_AGENT_KEY
      LAMBDA_HANDLER: src/index.handler
    layers:
      - arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:110
    handler: instana-aws-lambda-auto-wrap.handler
    entrypoint: src/index.handler
 

Remarques :

Couches Instana Lambda

La couche Node.js comprend l' extension Instana AWS Lambda. Les données de surveillance et les traces sont déchargées localement vers l'extension Instana Lambda, qui les transmet ensuite au backend Instana. Cette fonctionnalité offre l'avantage suivant : la fonction Lambda répond au client qui l'invoque immédiatement après la fin du gestionnaire, sans attendre que les données soient envoyées au backend d'Instana.

Cette fonction est limitée aux fonctions Lambda configurées avec une mémoire de 256 Mo ou plus. Vous pouvez désactiver l'extension Instana Lambda en définissant la variable d'environnement INSTANA_DISABLE_LAMBDA_EXTENSION à une chaîne non vide pour la fonction Lambda.

Note : Suivez la configuration d'Instana AutoTrace pour utiliser la couche Instana Lambda.
Note : Instana n'offre pas de couches Lambda dans les régions GovCloud (us-gov-west-1 et us-gov-east-1). Si vous souhaitez utiliser Instana dans les régions GovCloud, vous devez installer manuellement le paquet Instana Node.js @instana/aws-lambda et envelopper votre fonction de gestion comme décrit dans la section Installation manuelle de @instana/aws-lambda.

Architecture x86_64

Les ARNs de la dernière version des couches Lambda de AWS pour les runtimes Lambda listés dans Supported Runtimes sont les suivants, par région :

Région ARN Version de @instana/aws-lambda
af-south-1 arn:aws:lambda:af-south-1:410797082306:layer:instana-nodejs:150 5.0.2
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs:149 5.0.2
ap-east-2 arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs:36 5.0.2
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs:305 5.0.2
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs:303 5.0.2
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs:149 5.0.2
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs:303 5.0.2
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs:149 5.0.2
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs:303 5.0.2
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs:302 5.0.2
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs:148 5.0.2
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs:148 5.0.2
ap-southeast-5 arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs:97 5.0.2
ap-southeast-6 arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs:18 5.0.2
ap-southeast-7 arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs:54 5.0.2
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs:301 5.0.2
ca-west-1 arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs:129 5.0.2
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-nodejs:78 5.0.1
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-nodejs:82 5.0.1
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-nodejs:279 5.0.2
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs:125 5.0.2
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs:279 5.0.2
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs:125 5.0.2
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs:125 5.0.2
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs:279 5.0.2
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs:279 5.0.2
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs:279 5.0.2
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs:122 5.0.2
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs:124 5.0.2
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-nodejs:124 5.0.2
mx-central-1 arn:aws:lambda:mx-central-1:410797082306:layer:instana-nodejs:52 5.0.2
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs:278 5.0.2
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs:278 5.0.2
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:278 5.0.2
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs:278 5.0.2
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs:278 5.0.2

En d'autres termes, le modèle est arn:aws:lambda:${region}:410797082306:layer:instana-nodejs:${layer-version} (ou arn:aws-cn:lambda:${region}:107998019096:layer:instana-nodejs:${layer-version} pour les régions AWS en Chine).

Veillez à toujours utiliser les versions les plus récentes et à mettre à jour la version de la couche que vous utilisez à intervalles réguliers afin de bénéficier des nouvelles fonctionnalités et des corrections que nous apportons lors de la publication d'une nouvelle version de la couche.

Architecture arm64

Région ARN Version de @instana/aws-lambda
af-south-1 arn:aws:lambda:af-south-1:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-east-1 arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-east-2 arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs-arm64:35 5.0.2
ap-northeast-1 arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-northeast-2 arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-northeast-3 arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-south-1 arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-south-2 arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-southeast-1 arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-southeast-2 arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ap-southeast-3 arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-southeast-4 arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs-arm64:123 5.0.2
ap-southeast-5 arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs-arm64:80 5.0.2
ap-southeast-6 arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs-arm64:18 5.0.2
ap-southeast-7 arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs-arm64:53 5.0.2
ca-central-1 arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs-arm64:162 5.0.2
ca-west-1 arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs-arm64:107 5.0.2
cn-north-1 arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-nodejs-arm64:72 5.0.1
cn-northwest-1 arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-nodejs-arm64:78 5.0.1
eu-central-1 arn:aws:lambda:eu-central-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
eu-central-2 arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs-arm64:120 5.0.2
eu-north-1 arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
eu-south-1 arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs-arm64:120 5.0.2
eu-south-2 arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs-arm64:120 5.0.2
eu-west-1 arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
eu-west-2 arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs-arm64:159 5.0.2
eu-west-3 arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs-arm64:159 5.0.2
il-central-1 arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs-arm64:118 5.0.2
me-central-1 arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs-arm64:120 5.0.2
me-south-1 arn:aws:lambda:me-south-1:410797082306:layer:instana-nodejs-arm64:120 5.0.2
mx-central-1 arn:aws:lambda:mx-central-1:410797082306:layer:instana-nodejs-arm64:51 5.0.2
sa-east-1 arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
us-east-1 arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
us-east-2 arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs-arm64:155 5.0.2
us-west-1 arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs-arm64:159 5.0.2
us-west-2 arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs-arm64:159 5.0.2

Soutien au SSM

Disponible à partir de la version 99 de la couche instana-nodejs/@instana/aws-lambda@1.138.0.

Vous pouvez également fournir la clé de l'agent Instana via le magasin de paramètres de AWS SSM ( System Manager ).

  1. Ajoutez la clé de l'agent Instana à votre magasin de paramètres SSM. Mémoriser ou copier le nom du paramètre.
  2. Supprimez INSTANA_AGENT_KEY de vos variables d'environnement.
  3. Ajoutez INSTANA_SSM_PARAM_NAME à vos variables d'environnement avec le nom du paramètre copié.
  4. Si vous avez ajouté le paramètre en tant que "SecureString",, vous devez également définir INSTANA_SSM_DECRYPTION=true. Si vous avez utilisé le type "String", aucune variable supplémentaire ne doit être définie.
Note : Important : le support SSM est soumis aux considérations suivantes : Si vous ne supprimez pas INSTANA_AGENT_KEY de vos variables d'environnement, les variables d'environnement SSM sont ignorées. Si votre fonction Lambda est de courte durée, la récupération du SSM peut ne pas se terminer avant la fin de la fonction. Dans ce cas, il se peut que la clé de l'agent Instana ne soit pas récupérée. Pour éviter ce problème, fournissez la clé directement via la variable d'environnement INSTANA_AGENT_KEY.

Utilisation de l'API Instana dans les fonctions Lambda

Vous pouvez accéder à l'ensemble de l'API Instana et l'utiliser dans votre code Lambda, comme dans une application Node.js classique utilisant @instana/collector.

Si vous utilisez la couche Instana Node.js Lambda et l'auto-wrap handler, vous devez ajouter la ligne suivante à votre code :

const instana = require('@instana/aws-lambda');
 

Si vous utilisez le wrapping manuel, vous avez déjà cette ligne dans votre fichier Lambda handler.

Note : Si vous utilisez la couche Instana Node.js Lambda, n'ajoutez pas le paquet @instana/aws-lambda comme dépendance à votre fichier package.json . Ce paquet est fourni par la couche Instana Node.js Lambda. L'ajouter en tant que dépendance tout en utilisant la couche Lambda n'est pas pris en charge.

Si le code de votre fonction Lambda se compose de plusieurs fichiers source, vous pouvez également ajouter l'instruction const instana = require('@instana/aws-lambda'); dans d'autres fichiers de code source pour obtenir l'accès à l'API Instana Node.js.

Variables d'environnement supplémentaires

Nom Par défaut Valeur Description
INSTANA_DISABLE_LAMBDA_EXTENSION false Toute chaîne non vide. Désactiver ou non l'extension lambda.
INSTANA_ENABLE_LAMBDA_TIMEOUT_DETECTION false true ou false Cette fonction est désactivée par défaut, car l'exécution d'un gestionnaire de délai d'attente peut se produire lors d'une exécution différente. Ne l'utilisez que pour le débogage. L'autoriser peut avoir des conséquences inattendues. C'est donc à vos risques et périls que vous l'activez.
INSTANA_MINIMUM_LAMBDA_TIMEOUT_FOR_TIMEOUT_DETECTION_IN_MS 2 000 Délai d'attente en millisecondes Augmenter le délai minimum de détection en millisecondes.
INSTANA_DEBUG false true ou false Active le mode de débogage.
INSTANA_TIMEOUT 1000 Nombre Délai d'attente pour l'envoi de données au backend d'Instana, en millisecondes.