Fonction de trace AWS Lambda native pour Node.js
Vous pouvez configurer le traçage d' Instana pour les fonctions d' AWS Lambda écrites en Node.js.
Environnements d'exécution pris en charge
- Node.js 24.x
- Node.js 22.x
- Node.js 20.x
- Node.js 18.x
Prérequis
Configurez l 'agent AWS pour la surveillance de Lambda afin de garantir la collecte des informations nécessaires concernant les versions et certaines métriques d'exécution qu' Instana ne peut pas collecter depuis l'environnement d'exécution AWS Lambda.
Configuration du traçage pour les fonctions Lambda d' Node.js
Instana offre plusieurs méthodes pour activer le traçage des fonctions d' AWS Lambda. Les options de configuration suivantes sont disponibles :
- Instana AutoTrace: Pour configurer automatiquement le traçage de vos fonctions Lambda, utilisez la configuration disponible sur Instana AutoTrace. C'est la méthode recommandée pour activer le traçage.
- Instana Paquet Lambda : installez le
@instana/aws-lambdapaquet manuellement. - Instana Couche Lambda pour les fonctions basées sur des conteneurs : pour les fonctions basées sur des conteneurs, vous pouvez inclure la couche Lambda Instana dans votre Dockerfile.
- Instana Intégration du traçage avec le Serverless Framework : si vous utilisez le Serverless Framework, modifiez le fichier
serverless.ymlpour intégrer le traçage.
Configuration d'Instana AutoTrace
La configuration d' Instana AutoTrace pour Node.js vous permet de suivre vos fonctions AWS Lambda à l'aide de la couche Lambda de Instana et d'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 :
- Ajoutez la couche Instana Lambda à votre fonction.
- Dans la page de configuration de votre fonction Lambda, cliquez sur la
Layerscase, puis surAdd a layer.
- Dans la fenêtre contextuelle qui s'ouvre, sélectionnez « Fournir un ARN de couche », puis copiez-collez l'ARN de la couche Lambda « Instana » correspondant à votre région; vous trouverez l'ARN approprié pour la couche Lambda « Instana » dans la section « Couches Lambda » de Instana.

- Dans la page de configuration de votre fonction Lambda, cliquez sur la
- Configurez le gestionnaire Lambda.
Définissez le gestionnaire sur
instana-aws-lambda-auto-wrap.handlersi vous utilisez CommonJS.Définissez le gestionnaire sur
instana-aws-lambda-auto-wrap-esm.handlersi vous utilisez les modules ES ( ES6 ) (disponible à partir de la version 223 de la couche).Pour modifier le paramètre du gestionnaire Lambda, recherchez la section "Paramètres de base" sur la page de configuration.

Cliquez sur Editer et insérez
instana-aws-lambda-auto-wrap.handlerdans la zone "Gestionnaire".
La couche Lambda d' Instana déclenche automatiquement le gestionnaire d'exécution par défaut d' Node.js
index.handler. Si vous utilisez un gestionnaire personnalisé, indiquez-le dans la variable d'environnement LAMBDA_HANDLER afin d'en informer la couche Lambda d' Instana. Voir la section suivante pour toutes les variables d'environnement qui doivent être définies.Remarque : la page de configuration de Lambda peut afficher un message d'avertissement indiquant que Lambda ne parvient pas à trouver le fichier instana-aws-lambda-auto-wrap.js. Ce message peut également s'afficher ultérieurement lorsque vous revenez sur 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. - Configurez les variables d'environnement.
Ajoutez les variables d'environnement suivantes :
INSTANA_ENDPOINT_URL: Cette variable correspond à votre point de terminaison de surveillance sans serveur. Veillez à utiliser la valeur correcte pour votre région qui commence parhttps://serverless-.INSTANA_AGENT_KEY: votre clé d'agent.LAMBDA_HANDLER: définissez votre gestionnaire personnalisé. Si votre fichier principal estmyModule.js, qui exporte la fonctionmyHandler, définissez la variable d'environnement surmyModule.myHandler. La valeur par défaut estindex.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.
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 surserver.handler.
Vous pouvez également obtenir les valeurs correctes de ces variables d'environnement en vous rendant dans votre installation d' Instana, puis en cliquant sur... Plus -> Agents -> Installation des agents d' Instana -> Plateforme : AWS -> Technologie : AWS Lambda.
- Sauvegardez la définition de la fonction Lambda.

Toutes les étapes décrites précédemment peuvent être effectuées soit via la console Web AWS, soit à l'aide de l'un des outils de gestion habituels d' AWS, tels que :
- l' interface de ligne de commande
aws - l' interface de ligne de commande de l'infrastructure sans serveur
- AWS Cloud Development Kit
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=... , ...}"
Couches Instana Lambda
La couche « Node.js » comprend l 'extension « Instana » AWS Lambda. Les données de surveillance et les traces sont transférées localement vers l'extension Lambda d' Instana, qui les transmet ensuite au backend d' Instana. Cette fonctionnalité présente l'avantage suivant : la fonction Lambda répond au client qui l'a appelée dès que le gestionnaire a terminé son exécution, sans attendre que les données soient envoyées au backend d' Instana.
Cette fonctionnalité est limité aux fonctions Lambda configurées avec une mémoire de 256 Mo ou plus. Vous pouvez désactiver l'extension Lambda « Instana » en définissant la variable d'environnement INSTANA_DISABLE_LAMBDA_EXTENSION sur une chaîne non vide pour la fonction Lambda.
us-gov-west-1 et us-gov-east-1). Si vous souhaitez utiliser Instana dans les régions GovCloud, vous devez installer manuellement @instana/aws-lambda le package Instana Node.js et encapsuler votre fonction de gestion comme décrit dans la section « Installation manuelle de @instana/aws-lambda ».Architecture x86_64
Les ARN de la dernière version des couches « AWS Lambda » pour les environnements d'exécution Lambda répertoriés dans la section «Environnements d'exécution pris en charge» 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:167 |
6.2.1 |
ap-east-1 |
arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs:166 |
6.2.1 |
ap-east-2 |
arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs:53 |
6.2.1 |
ap-northeast-1 |
arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs:322 |
6.2.1 |
ap-northeast-2 |
arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs:320 |
6.2.1 |
ap-northeast-3 |
arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs:166 |
6.2.1 |
ap-south-1 |
arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs:320 |
6.2.1 |
ap-south-2 |
arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs:166 |
6.2.1 |
ap-southeast-1 |
arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs:320 |
6.2.1 |
ap-southeast-2 |
arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs:319 |
6.2.1 |
ap-southeast-3 |
arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs:165 |
6.2.1 |
ap-southeast-4 |
arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs:165 |
6.2.1 |
ap-southeast-5 |
arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs:114 |
6.2.1 |
ap-southeast-6 |
arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs:35 |
6.2.1 |
ap-southeast-7 |
arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs:71 |
6.2.1 |
ca-central-1 |
arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs:318 |
6.2.1 |
ca-west-1 |
arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs:146 |
6.2.1 |
cn-north-1 |
arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-nodejs:81 |
6.1.0 |
cn-northwest-1 |
arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-nodejs:86 |
6.2.1 |
eu-central-1 |
arn:aws:lambda:eu-central-1:410797082306:layer:instana-nodejs:296 |
6.2.1 |
eu-central-2 |
arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs:142 |
6.2.1 |
eu-north-1 |
arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs:296 |
6.2.1 |
eu-south-1 |
arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs:142 |
6.2.1 |
eu-south-2 |
arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs:142 |
6.2.1 |
eu-west-1 |
arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs:296 |
6.2.1 |
eu-west-2 |
arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs:296 |
6.2.1 |
eu-west-3 |
arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs:296 |
6.2.1 |
il-central-1 |
arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs:139 |
6.2.1 |
me-central-1 |
arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs:141 |
6.2.1 |
me-south-1 |
arn:aws:lambda:me-south-1:410797082306:layer:instana-nodejs:null |
null |
mx-central-1 |
arn:aws:lambda:mx-central-1:410797082306:layer:instana-nodejs:69 |
6.2.1 |
sa-east-1 |
arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs:295 |
6.2.1 |
us-east-1 |
arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs:295 |
6.2.1 |
us-east-2 |
arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:295 |
6.2.1 |
us-west-1 |
arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs:295 |
6.2.1 |
us-west-2 |
arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs:295 |
6.2.1 |
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 dernières versions et à mettre à jour la version de couche que vous utilisez à intervalles réguliers pour bénéficier des nouvelles fonctionnalités et des correctifs que nous fournissons 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:140 |
6.2.1 |
ap-east-1 |
arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs-arm64:140 |
6.2.1 |
ap-east-2 |
arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs-arm64:52 |
6.2.1 |
ap-northeast-1 |
arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs-arm64:179 |
6.2.1 |
ap-northeast-2 |
arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs-arm64:179 |
6.2.1 |
ap-northeast-3 |
arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs-arm64:139 |
6.2.1 |
ap-south-1 |
arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs-arm64:179 |
6.2.1 |
ap-south-2 |
arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs-arm64:140 |
6.2.1 |
ap-southeast-1 |
arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs-arm64:179 |
6.2.1 |
ap-southeast-2 |
arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs-arm64:179 |
6.2.1 |
ap-southeast-3 |
arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs-arm64:140 |
6.2.1 |
ap-southeast-4 |
arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs-arm64:140 |
6.2.1 |
ap-southeast-5 |
arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs-arm64:97 |
6.2.1 |
ap-southeast-6 |
arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs-arm64:35 |
6.2.1 |
ap-southeast-7 |
arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs-arm64:70 |
6.2.1 |
ca-central-1 |
arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs-arm64:179 |
6.2.1 |
ca-west-1 |
arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs-arm64:124 |
6.2.1 |
cn-north-1 |
arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-nodejs-arm64:78 |
6.1.0 |
cn-northwest-1 |
arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-nodejs-arm64:86 |
6.2.1 |
eu-central-1 |
arn:aws:lambda:eu-central-1:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
eu-central-2 |
arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs-arm64:137 |
6.2.1 |
eu-north-1 |
arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
eu-south-1 |
arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs-arm64:137 |
6.2.1 |
eu-south-2 |
arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs-arm64:137 |
6.2.1 |
eu-west-1 |
arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
eu-west-2 |
arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
eu-west-3 |
arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
il-central-1 |
arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs-arm64:135 |
6.2.1 |
me-central-1 |
arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs-arm64:null |
null |
me-south-1 |
arn:aws:lambda:me-south-1:410797082306:layer:instana-nodejs-arm64:null |
null |
mx-central-1 |
arn:aws:lambda:mx-central-1:410797082306:layer:instana-nodejs-arm64:68 |
6.2.1 |
sa-east-1 |
arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
us-east-1 |
arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
us-east-2 |
arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
us-west-1 |
arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
us-west-2 |
arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs-arm64:176 |
6.2.1 |
Installation @instana/aws-lambda manuelle
Pour installer manuellement le collecteur Instana Node.js, exécutez la commande suivante :
npm install --save @instana/aws-lambda@latest
INSTANA_ENDPOINT_URL: Cette variable correspond à votre point de terminaison de surveillance sans serveur. Veillez à utiliser la valeur correcte pour votre région qui commence parhttps://serverless-.INSTANA_AGENT_KEY: votre clé d'agent.
Modifiez le code de la fonction en suivant les instructions de la section « Envelopper manuellement le gestionnaire ».
Encapsulation manuelle du gestionnaire
Si vous ne souhaitez pas utiliser le gestionnaire de retour à la ligne automatique ou si vous ne parvenez pas à le faire, vous devrez modifier légèrement le code de votre fonction Node.js AWS Lambda afin d'activer le suivi Instana pour celle-ci.
@instana/aws-lambda (ou toutes les dépendances) du prétraitement avec Webpack. Consultez cette section de la documentation d' Node.js; pour le framework Serverless, consultez également la section consacrée au framework Serverless.- Ajoutez la ligne
const instana = require('@instana/aws-lambda');au tout début du fichier JavaScript de votre gestionnaire. - Ecapsulez la fonction de gestionnaire dans un appel
instana.wrap(). - Configurez les variables d'environnement pour la connexion au backend Instana, comme décrit dans la documentation « Instana » ( AutoTrace ) de 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 en tant que premier argument lorsque vous encapsulez 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 le traçage Lambda natif (comme agentHost, agentPort et reportUnhandledPromiseRejections) sont ignorées en mode silencieux.
Notez que vous pouvez également utiliser les variables d'environnement répertoriées dans la section « Variables d'environnement supplémentaires » ainsi que la plupart de celles figurant sur la page de configuration de Node.js.
Instana Couche Lambda pour les fonctions basées sur des conteneurs
Si votre équipe utilise des déploiements Lambda basés sur des conteneurs, vous pouvez utiliser les conteneurs de base disponibles sur Instanaicr.io/instana/aws-lambda-nodejs ou inclure l'extrait de code suivant dans votre Dockerfile et définir les arguments de compilation sur les versions appropriées.
Instana ne prend actuellement en charge que x86_64 l'architecture.
# 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:22
# 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" ]
Gestion des versions
Pour afficher toutes les versions disponibles, exécutez la commande suivante :
curl -s https://icr.io/v2/instana/aws-lambda-nodejs/tags/list | jq .
Pour plus d'informations, consultez la section « Gestion des versions » sur Node.js.
Intégration de la fonction de trace Instana à l'infrastructure sans serveur
Modifiez le fichier serverless.yml pour intégrer le traçage d' Instana s au Serverless Framework. Suivez ces étapes :
- Copiez l' ARN de couche de la liste et ajoutez l'ARN à la section des couches de la définition de fonction cible.
- Ajoutez des variables d'environnement
INSTANA_AGENT_KEY,INSTANA_ENDPOINT_URLetLAMBDA_HANDLER. Pour plus d'informations, consultez la page InstanaAutoTrace 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 et hors ligne
Condition préalable : assurez-vous d'avoir suivi les étapes 1 et 2 de la section « Intégration du traçage d' Instana s avec le Serverless Framework ».
Modifiez le serverless.yml fichier pour intégrer Instana au Serverless Framework et à Serverless Offline. Suivez ces étapes :
- Définissez la variable d'environnement
NODE_PATHsur$NODE_PATH:/opt/nodejs/node_modules. - Définissez la zone
useDockersurtruedans la sectioncustom. La couche « Instana » sera alors 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
Condition préalable : assurez-vous d'avoir suivi les étapes 1 et 2 de la section « Intégration du traçage d' Instana s avec le Serverless Framework ».
Modifiez le serverless.yml fichier pour intégrer Instana au Serverless Framework et à Serverless Webpack.
Ajoutez entrypoint à la définition de fonction Lambda cible. Le point d'entrée est votre gestionnaire Lambda d'origine Node.js, qui est déclenché automatiquement par la couche Lambda Instana. Pour plus d'informations, consultez la page InstanaAutoTrace 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
- Vous devez utiliser la dernière version de
serverless-webpack. - Il est recommandé d'utiliser AWS System Manager Parameter Store (SSM) pour les applications sans serveur afin d'éviter d'insérer la clé Instana Agent en clair.
serverless.yml. Pour plus d'informations, voir le blogue Serverless Framework.
Assistance SSM
Vous pouvez également fournir la clé d'agent d' Instana via le magasin de paramètres SSM ( System Manager ) de AWS.
- Ajoutez la clé d'agent d' Instana s à votre magasin de paramètres SSM. Mémorisez ou copiez le nom du paramètre.
- Supprimez
INSTANA_AGENT_KEYde vos variables d'environnement. - Ajoutez
INSTANA_SSM_PARAM_NAMEà vos variables d'environnement avec le nom de paramètre copié. - 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 n'a besoin d'être définie.
Utilisation de l'API Instana dans les fonctions Lambda
Vous pouvez accéder à l'ensemble du site Instana API et l'utiliser dans votre code Lambda, exactement comme dans une application Node.js classique, en utilisant @instana/collector.
const instana = require('@instana/aws-lambda');
@instana/aws-lambda paquet est automatiquement disponible en tant que dépendance dans votre fonction Lambda.Variables d'environnement supplémentaires
| Nom | Par défaut | Valeur | Description |
|---|---|---|---|
INSTANA_DISABLE_LAMBDA_EXTENSION |
false |
Toute chaîne non vide. | Désactivez 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 |
Activez le mode débogage. |
INSTANA_TIMEOUT |
1000 |
Nombre | Délai d'attente pour l'envoi de données au backend Instana, en millisecondes. |