AWS Lambda Native Tracing for Node.js
È possibile configurare il tracciamento di Instana per le funzioni di AWS Lambda scritte in Node.js.
Runtime supportati
- Node.js 24.x
- Node.js 22.x
- Node.js 20.x
- Node.js 18.x
Prerequisiti
Configurare l 'agente di AWS per il monitoraggio di Lambda, al fine di garantire la raccolta delle informazioni necessarie relative alle versioni e ad alcune metriche di runtime che Instana non è in grado di acquisire dall'interno del runtime di AWS Lambda.
Configurazione del tracciamento per le funzioni Lambda di Node.js
Instana offre diverse modalità per abilitare il tracciamento delle funzioni di ` AWS Lambda `. Sono disponibili le seguenti opzioni di configurazione:
- Instana AutoTrace: Per configurare automaticamente il tracciamento delle tue funzioni Lambda, utilizza la configurazione disponibile all'indirizzo Instana AutoTrace. Questo è il metodo consigliato per abilitare il tracciamento.
- Instana Pacchetto Lambda: manualmente installare il
@instana/aws-lambdapacchetto. - Instana Lambda Layer per le funzioni basate su container : per le funzioni basate su container, è possibile includere il Lambda Layer Instana nel proprio Dockerfile.
- Instana Integrazione del tracciamento con Serverless Framework : se utilizzi Serverless Framework, modifica il file
serverless.ymlper integrare il tracciamento.
Instana AutoTrace configurazione
La configurazione di Instana AutoTrace per Node.js consente di tracciare le funzioni AWS Lambda utilizzando il livello Lambda di Instana e un gestore di funzioni personalizzato.
Questo approccio non richiede alcuna modifica al codice della funzione Lambda; si attua esclusivamente tramite la configurazione. È anche adatto per essere automatizzato o incluso in una pipeline di distribuzione Lambda.
Per abilitare la traccia delle funzioni Lambda Node.js , effettuare le seguenti operazioni:
- Aggiungi il livello Lambda " Instana " alla tua funzione.
- Nella pagina di configurazione della tua funzione Lambda, fai clic sulla casella
Layers, quindi fai clic suAdd a layer.
- Nella finestra pop-up che si apre, seleziona "Fornisci un ARN della versione del layer" e copia e incolla l'ARN del layer Lambda " Instana " corrispondente alla tua regione. È possibile trovare l'ARN corretto nella sezione "Lambda Layers" all'indirizzo Instana.

- Nella pagina di configurazione della tua funzione Lambda, fai clic sulla casella
- Configurare il gestore Lambda.
Imposta il gestore su
instana-aws-lambda-auto-wrap.handlerse utilizzi CommonJS.Imposta il gestore su
instana-aws-lambda-auto-wrap-esm.handlerse utilizzi i moduli ES ( ES6 ) (disponibile a partire dalla versione 223 del layer).Per modificare l'impostazione del gestore Lambda, trovare la sezione "Impostazioni di base" nella pagina di configurazione.

Fai clic su "Modifica" e inserisci
instana-aws-lambda-auto-wrap.handlernel campo denominato "Handler".
Il livello Lambda di Instana attiva automaticamente il gestore di runtime predefinito Node.js
index.handler. Se si utilizza un gestore personalizzato, specificarlo nella variabile d'ambiente LAMBDA_HANDLER per avvisare il Lambda Layer di Instana. Consultare la sezione successiva per tutte le variabili di ambiente che devono essere impostate.Nota:La pagina di configurazione di Lambda potrebbe visualizzare un avviso del tipo “Lambda non riesce a trovare il file instana-aws-lambda-auto-wrap.js ”. Questo avviso potrebbe comparire anche in un secondo momento, quando si torna alla pagina di configurazione. Non lasciare che questo avvertimento ti distragga. L'handler è contenuto nel livello Lambda " Instana ", ma la pagina di configurazione " AWS Lambda " non ne tiene conto. - Configura variabili di ambiente.
Aggiungi le seguenti variabili di ambiente:
INSTANA_ENDPOINT_URL: Questa variabile rappresenta il tuo endpoint di monitoraggio serverless. Assicurati di utilizzare il valore corretto per la tua regione che inizia conhttps://serverless-.INSTANA_AGENT_KEY: la tua chiave agent.LAMBDA_HANDLER: impostare il gestore personalizzato. Se il file principale èmyModule.js, che esporta la funzionemyHandler, impostare la variabile di ambiente sumyModule.myHandler. Il valore predefinito èindex.handler.
Nell'esempio seguente, il gestore Lambda principale predefinito è
index.js, pertanto non è necessario impostare la variabile d'ambiente LAMBDA_HANDLER.
Nell'esempio seguente, il gestore Lambda principale originale è
server.js, pertanto è necessario impostare la variabile d'ambiente LAMBDA_HANDLER suserver.handler.
È inoltre possibile ottenere i valori corretti per queste variabili d'ambiente accedendo all'installazione di Instana, facendo clic su ".
- Salva la definizione della funzione Lambda.

È possibile eseguire tutte le operazioni descritte in precedenza utilizzando la console web AWS o uno qualsiasi dei consueti strumenti di gestione AWS, quali:
- l' interfaccia a riga
awsdi comando (CLI di AWS Lambda ) - la CLI del framework senza server
- AWS Cloud Development Kit
Ecco un esempio di comando aws CLI che potrebbe fungere da punto di partenza se desideri automatizzare l'integrazione di Instana nelle tue funzioni Lambda 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 \
--handler instana-aws-lambda-auto-wrap.handler \
--environment "Variables={INSTANA_ENDPOINT_URL=... , INSTANA_AGENT_KEY=... , ...}"
Instana Strati Lambda
Il livello " Node.js " include l 'estensione " Instana " AWS Lambda. L'estensione Lambda " Instana " esegue il offload dei dati di monitoraggio e delle tracce a livello locale, per poi inoltrarli al backend " Instana ". Questa funzionalità offre il seguente vantaggio: la funzione Lambda risponde al client richiedente immediatamente dopo che l'handler ha terminato l'esecuzione, senza attendere che i dati vengano inviati al backend di Instana.
Questa caratteristica è limitato alle funzioni Lambda configurate con una memoria di 256 MB o più. È possibile disabilitare l'estensione Lambda " Instana " impostando la variabile d'ambiente INSTANA_DISABLE_LAMBDA_EXTENSION su una stringa non vuota per la funzione Lambda.
us-gov-west-1 e us-gov-east-1). Se desideri utilizzare Instana nelle regioni GovCloud, devi installare manualmente @instana/aws-lambda il pacchetto Instana Node.js e racchiudere la tua funzione handler come descritto nella sezione Installazione manuale di @instana/aws-lambda.Architettura x86_64
Gli ARN della versione più recente dei livelli " AWS Lambda " per i runtime Lambda elencati nella sezione " Runtime supportati " sono i seguenti, per regione:
| Regione | ARN | @instana/aws-lambda Versione |
|---|---|---|
af-south-1 |
arn:aws:lambda:af-south-1:410797082306:layer:instana-nodejs:173 |
6.6.1 |
ap-east-1 |
arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs:172 |
6.6.1 |
ap-east-2 |
arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs:59 |
6.6.1 |
ap-northeast-1 |
arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs:328 |
6.6.1 |
ap-northeast-2 |
arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs:326 |
6.6.1 |
ap-northeast-3 |
arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs:172 |
6.6.1 |
ap-south-1 |
arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs:326 |
6.6.1 |
ap-south-2 |
arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs:172 |
6.6.1 |
ap-southeast-1 |
arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs:326 |
6.6.1 |
ap-southeast-2 |
arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs:325 |
6.6.1 |
ap-southeast-3 |
arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs:171 |
6.6.1 |
ap-southeast-4 |
arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs:171 |
6.6.1 |
ap-southeast-5 |
arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs:120 |
6.6.1 |
ap-southeast-6 |
arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs:41 |
6.6.1 |
ap-southeast-7 |
arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs:77 |
6.6.1 |
ca-central-1 |
arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs:324 |
6.6.1 |
ca-west-1 |
arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs:152 |
6.6.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:302 |
6.6.1 |
eu-central-2 |
arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs:148 |
6.6.1 |
eu-north-1 |
arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs:302 |
6.6.1 |
eu-south-1 |
arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs:148 |
6.6.1 |
eu-south-2 |
arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs:148 |
6.6.1 |
eu-west-1 |
arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs:302 |
6.6.1 |
eu-west-2 |
arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs:302 |
6.6.1 |
eu-west-3 |
arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs:302 |
6.6.1 |
il-central-1 |
arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs:145 |
6.6.1 |
me-central-1 |
arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs:147 |
6.6.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:75 |
6.6.1 |
sa-east-1 |
arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs:301 |
6.6.1 |
us-east-1 |
arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs:301 |
6.6.1 |
us-east-2 |
arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs:301 |
6.6.1 |
us-west-1 |
arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs:301 |
6.6.1 |
us-west-2 |
arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs:301 |
6.6.1 |
Ovvero, il modello è arn:aws:lambda:${region}:410797082306:layer:instana-nodejs:${layer-version} (o arn:aws-cn:lambda:${region}:107998019096:layer:instana-nodejs:${layer-version} per le regioni AWS in Cina).
Utilizza sempre le versioni più recenti e aggiorna periodicamente la versione del livello che stai utilizzando. In questo modo potrai usufruire delle nuove funzionalità e delle correzioni fornite da Instana con ogni nuova versione di Layer.
Architettura arm64
| Regione | ARN | @instana/aws-lambda Versione |
|---|---|---|
af-south-1 |
arn:aws:lambda:af-south-1:410797082306:layer:instana-nodejs-arm64:146 |
6.6.1 |
ap-east-1 |
arn:aws:lambda:ap-east-1:410797082306:layer:instana-nodejs-arm64:146 |
6.6.1 |
ap-east-2 |
arn:aws:lambda:ap-east-2:410797082306:layer:instana-nodejs-arm64:58 |
6.6.1 |
ap-northeast-1 |
arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-nodejs-arm64:185 |
6.6.1 |
ap-northeast-2 |
arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-nodejs-arm64:185 |
6.6.1 |
ap-northeast-3 |
arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-nodejs-arm64:146 |
6.6.1 |
ap-south-1 |
arn:aws:lambda:ap-south-1:410797082306:layer:instana-nodejs-arm64:185 |
6.6.1 |
ap-south-2 |
arn:aws:lambda:ap-south-2:410797082306:layer:instana-nodejs-arm64:146 |
6.6.1 |
ap-southeast-1 |
arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-nodejs-arm64:185 |
6.6.1 |
ap-southeast-2 |
arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-nodejs-arm64:185 |
6.6.1 |
ap-southeast-3 |
arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-nodejs-arm64:146 |
6.6.1 |
ap-southeast-4 |
arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-nodejs-arm64:146 |
6.6.1 |
ap-southeast-5 |
arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-nodejs-arm64:103 |
6.6.1 |
ap-southeast-6 |
arn:aws:lambda:ap-southeast-6:410797082306:layer:instana-nodejs-arm64:41 |
6.6.1 |
ap-southeast-7 |
arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-nodejs-arm64:76 |
6.6.1 |
ca-central-1 |
arn:aws:lambda:ca-central-1:410797082306:layer:instana-nodejs-arm64:185 |
6.6.1 |
ca-west-1 |
arn:aws:lambda:ca-west-1:410797082306:layer:instana-nodejs-arm64:130 |
6.6.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:182 |
6.6.1 |
eu-central-2 |
arn:aws:lambda:eu-central-2:410797082306:layer:instana-nodejs-arm64:143 |
6.6.1 |
eu-north-1 |
arn:aws:lambda:eu-north-1:410797082306:layer:instana-nodejs-arm64:182 |
6.6.1 |
eu-south-1 |
arn:aws:lambda:eu-south-1:410797082306:layer:instana-nodejs-arm64:143 |
6.6.1 |
eu-south-2 |
arn:aws:lambda:eu-south-2:410797082306:layer:instana-nodejs-arm64:143 |
6.6.1 |
eu-west-1 |
arn:aws:lambda:eu-west-1:410797082306:layer:instana-nodejs-arm64:182 |
6.6.1 |
eu-west-2 |
arn:aws:lambda:eu-west-2:410797082306:layer:instana-nodejs-arm64:182 |
6.6.1 |
eu-west-3 |
arn:aws:lambda:eu-west-3:410797082306:layer:instana-nodejs-arm64:182 |
6.6.1 |
il-central-1 |
arn:aws:lambda:il-central-1:410797082306:layer:instana-nodejs-arm64:141 |
6.6.1 |
me-central-1 |
arn:aws:lambda:me-central-1:410797082306:layer:instana-nodejs-arm64:143 |
6.6.1 |
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:74 |
6.6.1 |
sa-east-1 |
arn:aws:lambda:sa-east-1:410797082306:layer:instana-nodejs-arm64:182 |
6.6.1 |
us-east-1 |
arn:aws:lambda:us-east-1:410797082306:layer:instana-nodejs-arm64:182 |
6.6.1 |
us-east-2 |
arn:aws:lambda:us-east-2:410797082306:layer:instana-nodejs-arm64:182 |
6.6.1 |
us-west-1 |
arn:aws:lambda:us-west-1:410797082306:layer:instana-nodejs-arm64:182 |
6.6.1 |
us-west-2 |
arn:aws:lambda:us-west-2:410797082306:layer:instana-nodejs-arm64:182 |
6.6.1 |
Installazione @instana/aws-lambda manuale
Per installare manualmente il collector Instana Node.js, eseguire il seguente comando:
npm install --save @instana/aws-lambda@latest
INSTANA_ENDPOINT_URL: Questa variabile è il tuo endpoint di monitoraggio serverless. Assicurati di utilizzare il valore corretto per la tua regione che inizia conhttps://serverless-.INSTANA_AGENT_KEY: la tua chiave agent.
Modifica il codice della funzione seguendo le istruzioni riportate nella sezione "Avvolgimento manuale dell'handler".
Avvolgere manualmente l'handler
Se non desideri utilizzare o non riesci a utilizzare il gestore di avvolgimento automatico, devi modificare leggermente il codice della funzione Node.js AWS Lambda per abilitare il tracciamento Instana.
@instana/aws-lambda o tutte le dipendenze) dalla pre-elaborazione da parte di webpack. Si veda questa sezione nella documentazione di Node.js; per il framework Serverless, consultare anche la sezione dedicata al framework Serverless.- Aggiungere la linea
const instana = require('@instana/aws-lambda');nella parte superiore del file JavaScript del gestore. - Impacchettare la funzione del gestore in una chiamata
instana.wrap(). - Configurare le variabili d'ambiente per la connessione al backend Instana come descritto nella documentazione Instana AutoTrace per AWS Lambda.
Di seguito sono riportati alcuni esempi prima / dopo per i diversi stili di funzione del gestore che è possibile utilizzare per le Lambda AWS basate su Node.js :
Gestore in stile funzione asincrona
Se si utilizza una funzione async come gestore, dovrebbe essere simile alla seguente:
exports.handler = async (event, context) => {
// your code
};
Il codice risultante dovrebbe essere simile al seguente:
const instana = require('@instana/aws-lambda');
exports.handler = instana.wrap(async (event, context) => {
// your code
}); // <- don't forget the closing ) for the instana.wrap(
Handler Lambda in stile Promise
Se si utilizza un gestore di stile di promessa, dovrebbe essere simile al seguente:
exports.handler = (event, context) => {
// your code, which returns a promise
};
Il codice risultante dovrebbe essere simile al seguente:
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(
Gestore lambda in stile callback
Se si utilizza un gestore stile callback, dovrebbe essere simile al seguente:
exports.handler = (event, context, callback) => {
// your code
};
Il codice risultante dovrebbe essere simile al seguente:
const instana = require('@instana/aws-lambda');
exports.handler = instana.wrap((event, context, callback) => {
// your code
}); // <- don't forget the closing ) for the instana.wrap(
Oggetto di configurazione
È inoltre possibile passare un oggetto di configurazione opzionale come primo argomento quando si incapsula il proprio gestore:
exports.handler = instana.wrap({
// ... your configuration, for example:
tracing: {
stackTraceLength: 10
}
},
async (event, context) => {
// your code
});
I valori di configurazione non supportati nella traccia Lambda nativa (come agentHost, agentPort e reportUnhandledPromiseRejections) vengono ignorati in modalità non presidiata.
Si noti che è possibile utilizzare anche le variabili d'ambiente elencate nella sezione «Variabili d'ambiente aggiuntive» e la maggior parte di quelle riportate nella pagina di configurazione di Node.js.
Instana Livello Lambda per funzioni basate su container
Se il tuo team utilizza distribuzioni Lambda basate su container, puoi utilizzare i container di base disponibili all'indirizzo Instanaicr.io/instana/aws-lambda-nodejs oppure includere il seguente snippet nel tuo Dockerfile e impostare gli argomenti di compilazione sulle versioni appropriate.
Instana attualmente supporta solo x86_64 l'architettura.
# 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" ]
Gestione versioni
Per visualizzare tutte le versioni disponibili, esegui il seguente comando:
curl -s https://icr.io/v2/instana/aws-lambda-nodejs/tags/list | jq .
Per ulteriori informazioni, consultare la sezione "Versioni" all'indirizzo Node.js.
Integrazione del tracciamento di Instana con Serverless Framework
Modifica il file serverless.yml per integrare il tracciamento di Instana e con Serverless Framework. Seguire i passi:
- Copiare l' ARN di livello dall'elenco e aggiungere l'ARN alla sezione livelli della definizione della funzione di destinazione.
- Aggiungere le variabili di ambiente
INSTANA_AGENT_KEY,INSTANA_ENDPOINT_URLeLAMBDA_HANDLER. Per ulteriori informazioni, consultare Instana AutoTrace setup.
Consultare il seguente serverless.ymldi esempio:
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
Serverless offline
Prerequisito: assicurati di aver seguito i passaggi 1 e 2 della sezione " Integrazione del tracciamento di Instana con Serverless Framework ".
Modifica il serverless.yml file per integrare Instana con Serverless Framework e Serverless Offline. Seguire i passi:
- Impostare la variabile di ambiente
NODE_PATHsu$NODE_PATH:/opt/nodejs/node_modules. - Impostare il campo
useDockerin modo che siatruenella sezionecustom. A quel punto, il livello " Instana " verrà scaricato automaticamente in un contenitore " Docker ".
Consultare il seguente serverless.ymldi esempio:
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 senza server
Prerequisito: assicurati di aver seguito i passaggi 1 e 2 della sezione " Integrazione del tracciamento di Instana con Serverless Framework ".
Modifica il serverless.yml file per integrare Instana con Serverless Framework e Serverless Webpack.
Aggiungere entrypoint alla definizione della funzione Lambda di destinazione. Il punto di ingresso è il tuo handler Lambda originale Node.js, che viene attivato automaticamente dal livello Lambda Instana. Per ulteriori informazioni, consultare Instana AutoTrace setup.
Consultare il seguente serverless.ymldi esempio:
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
- È necessario utilizzare la versione più aggiornata di
serverless-webpack. - Si consiglia di utilizzare il Parameter Store (SSM) di AWS System Manager per le applicazioni serverless, al fine di evitare di inserire la chiave dell'agente Instana in chiaro nel file
serverless.yml. Per ulteriori informazioni, consultare il blog Serverless Framework.
Assistenza SSM
È inoltre possibile specificare la chiave dell'agente di Instana tramite l'archivio dei parametri SSM ( System Manager ) all'indirizzo AWS.
- Aggiungi la chiave dell'agente di Instana all'archivio dei parametri SSM. Ricordare o copiare il nome del parametro.
- Rimuovi
INSTANA_AGENT_KEYdalle tue variabili di ambiente. - Aggiungere
INSTANA_SSM_PARAM_NAMEalle variabili di ambiente con il nome del parametro copiato. - Se hai aggiunto il parametro come a"SecureString", devi anche impostare
INSTANA_SSM_DECRYPTION=true. Se è stato utilizzato il tipo "Stringa", non è necessario impostare alcuna variabile aggiuntiva.
Utilizzo di Instana API nelle funzioni Lambda
È possibile accedere e utilizzare l'intero Instana API nel codice Lambda, proprio come in una normale app Node.js utilizzando @instana/collector.
const instana = require('@instana/aws-lambda');
@instana/aws-lambda sarà automaticamente disponibile come dipendenza nella tua funzione Lambda.Variabili d'ambiente aggiuntive
| Nome | Predefinito | Valore | Descrizione |
|---|---|---|---|
INSTANA_DISABLE_LAMBDA_EXTENSION |
false |
Qualsiasi stringa non vuota. | Disabilitare o meno l'estensione lambda. |
INSTANA_ENABLE_LAMBDA_TIMEOUT_DETECTION |
false |
true oppure false |
La funzione è disabilitata per impostazione predefinita, perché l'esecuzione di un gestore di timeout potrebbe avvenire in un'altra esecuzione. Utilizzarlo solo per il debug. L'abilitazione può avere conseguenze indesiderate. Quindi, attivatelo a vostro rischio e pericolo. |
INSTANA_MINIMUM_LAMBDA_TIMEOUT_FOR_TIMEOUT_DETECTION_IN_MS |
2.000 $ | Timeout in millisecondi | Aumenta il rilevamento del timeout minimo in millisecondi. |
INSTANA_DEBUG |
false |
true oppure false |
Abilita la modalità debug. |
INSTANA_TIMEOUT |
1000 |
Numero | Timeout per l'invio dei dati al backend Instana, espresso in millisecondi. |