Abilitazione delle applicazioni su Lambda - Amazon CloudWatch

Abilitazione delle applicazioni su Lambda

È possibile abilitare Application Signals per le funzioni Lambda. Application Signals instrumenta automaticamente le funzioni Lambda utilizzando le librerie AWS Distro per OpenTelemetry (ADOT) avanzate, fornite tramite un livello Lambda. Questo livello AWS Lambda per OpenTelemetry impacchetta e implementa le librerie necessarie per l'instrumentazione automatica per Application Signals.

Oltre a supportare Application Signals, questo livello Lambda è anche un componente del supporto OpenTelemetry per Lambda e fornisce funzionalità di tracciamento.

È possibile migliorare l'osservabilità di Lambda anche utilizzando la ricerca delle transazioni, che consente di acquisire intervalli di traccia per l'invocazione della funzione Lambda senza campionamento. Questa funzionalità consente di raccogliere intervalli per le funzioni, indipendentemente dal flag sampled nella propagazione del contesto di traccia. Ciò garantisce che non vi sia alcun impatto aggiuntivo sui servizi dipendenti a valle. Abilitando la ricerca delle transazioni su Lambda, ottieni una visibilità completa sulle prestazioni delle tue funzioni e puoi risolvere i problemi che si verificano raramente. Per iniziare, consulta Transaction Search

Nozioni di base

Esistono tre metodi per abilitare Application Signals per le funzioni Lambda.

Dopo aver abilitato Application Signals per una funzione Lambda, occorrono alcuni minuti prima che la telemetria di tale funzione venga visualizzata nella console Application Signals.

  • Utilizzo della console CloudWatch Application Signals

  • Utilizzo della console Lambda

  • Aggiungi manualmente il livello AWS Lambda per OpenTelemetry al runtime della funzione Lambda.

Ognuno di questi metodi aggiunge il livello AWS Lambda per OpenTelemetry alla tua funzione.

Utilizzo della console CloudWatch Application Signals

Segui questi passaggi per utilizzare la console Application Signals per abilitare Application Signals per una funzione Lambda.

  1. Apri la console CloudWatch all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel riquadro di navigazione, scegli Application Signals, Servizi.

  3. Nell'area dell'elenco dei Servizi, scegli Abilita Application Signals.

  4. Scegli il titolo Lambda.

  5. Seleziona ogni funzione che desideri abilitare per Application Signals, quindi scegli Fine.

Utilizzo della console Lambda

Segui questi passaggi per utilizzare la console Lambda per abilitare Application Signals per una funzione Lambda.

  1. Apri la console AWS Lambda all'indirizzo https://console.aws.amazon.com/lambda/.

  2. Nel pannello di navigazione, scegli Funzioni, quindi scegli il nome della funzione che desideri abilitare.

  3. Scegli la scheda Configurazione e quindi Strumenti di monitoraggio e operazioni.

  4. Scegli Modifica.

  5. Nella sezione CloudWatch Application Signals e X-Ray, seleziona sia Raccogli automaticamente le tracce delle applicazioni e le metriche standard delle applicazioni con Application Signals sia Raccogli automaticamente le tracce del servizio Lambda per la visibilità end-to-end con X-Ray.

  6. Scegli Save (Salva).

Abilitazione di Application Signals su Lambda utilizzando AWS CDK

Se non hai ancora abilitato Application Signals in questo account, devi concedere ad Application Signals le autorizzazioni necessarie per scoprire i tuoi servizi. Per ulteriori informazioni, consulta Abilitazione di Application Signals in un account.

  1. Abilitazione di Application Signals per le applicazioni

    import { aws_applicationsignals as applicationsignals } from 'aws-cdk-lib'; const cfnDiscovery = new applicationsignals.CfnDiscovery(this, 'ApplicationSignalsServiceRole', { } );

    La risorsa Discovery CloudFormation concede ad Application Signals le seguenti autorizzazioni:

    • xray:GetServiceGraph

    • logs:StartQuery

    • logs:GetQueryResults

    • cloudwatch:GetMetricData

    • cloudwatch:ListMetrics

    • tag:GetResources

    Per ulteriori informazioni su questo ruolo, consulta Autorizzazioni di ruolo collegate al servizio per CloudWatch Application Signals.

  2. Aggiungi la policy IAM CloudWatchLambdaApplicationSignalsExecutionRolePolicy alla funzione Lambda.

    const fn = new Function(this, 'DemoFunction', { code: Code.fromAsset('$YOUR_LAMBDA.zip'), runtime: Runtime.PYTHON_3_12, handler: '$YOUR_HANDLER' }) fn.role?.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('CloudWatchLambdaApplicationSignalsExecutionRolePolicy'));
  3. Sostituisci $AWS_LAMBDA_LAYER_FOR_OTEL_ARN con l'effettivo ARN del livello AWS Lambda per OpenTelemetry nella Regione corrispondente.

    fn.addLayers(LayerVersion.fromLayerVersionArn( this, 'AwsLambdaLayerForOtel', '$AWS_LAMBDA_LAYER_FOR_OTEL_ARN' )) fn.addEnvironment("AWS_LAMBDA_EXEC_WRAPPER", "/opt/otel-instrument");

(Facoltativo) Monitoraggio dell'integrità delle applicazioni

Dopo aver abilitato le applicazioni su Lambda, è possibile monitorarne l'integrità. Per ulteriori informazioni, consulta Monitoraggio dell'integrità operativa delle applicazioni con Application Signals.

Abilita manualmente Application Signals.

Segui questi passaggi per abilitare manualmente Application Signals per una funzione Lambda.

  1. Aggiungi il livello AWS Lambda per OpenTelemetry al runtime Lambda. Per trovare l'ARN del livello, consulta ARN del livello AWS Lambda per OpenTelemetry.

  2. Aggiunta della variabile di ambiente AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument

    Aggiungi la variabile di ambiente LAMBDA_APPLICATION_SIGNALS_REMOTE_ENVIRONMENT per configurare ambienti Lambda personalizzati. Per impostazione predefinita, gli ambienti Lambda sono configurati per lambda:default.

  3. Collega la policy IAM gestita da AWS CloudWatchLambdaApplicationSignalsExecutionRolePolicy al ruolo di esecuzione Lambda.

  4. (Facoltativo) Ti consigliamo di abilitare il tracciamento attivo Lambda per ottenere un'esperienza di tracciamento migliore. Per ulteriori informazioni, consulta Visualize Lambda function invocations using AWS X-Ray.

Disabilitazione manuale di Application Signals

Per disabilitare manualmente Application Signals per una funzione Lambda, rimuovi il livello AWS Lambda per OpenTelemetry dal runtime Lambda e la variabile di ambiente AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument.

Configurazione di Application Signals

Puoi utilizzare questa sezione per configurare Application Signals in Lambda.

Raggruppamento di più funzioni Lambda in un unico servizio

La variabile di ambiente OTEL_SERVICE_NAME imposta il nome del servizio. Questo verrà visualizzato come nome del servizio per l'applicazione nei pannelli di controllo di Application Signals. Puoi assegnare lo stesso nome di servizio a più funzioni Lambda e queste verranno unite in un unico servizio in Application Signals. Se non si fornisce un valore per questa chiave, viene utilizzato il nome della funzione Lambda predefinito.

Campionamento

Per impostazione predefinita, la strategia di campionamento delle tracce è basata sui genitori. È possibile modificare la strategia di campionamento impostando le variabili di ambiente OTEL_TRACES_SAMPLER.

Ad esempio, imposta la frequenza di campionamento delle tracce al 30%.

OTEL_TRACES_SAMPLER=traceidratio OTEL_TRACES_SAMPLER_ARG=0.3

Per ulteriori informazioni, consulta OpenTelemetry Environment Variable Specification.

Abilitazione di tutta l'instrumentazione della libreria

Per ridurre gli avvii a freddo di Lambda, per impostazione predefinita, solo l'instrumentazione dell'SDK AWS e HTTP è abilitata per Python, Node e Java. Puoi impostare delle variabili di ambiente per abilitare l'instrumentazione per altre librerie utilizzate nella tua funzione Lambda.

  • Python: OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=none

  • Node: OTEL_NODE_DISABLED_INSTRUMENTATIONS=none

  • Java: OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED=true

ARN del livello AWS Lambda per OpenTelemetry

Le tabelle seguenti elencano gli ARN per utilizzare il livello AWS Lambda per OpenTelemetry per ogni Regione in cui è supportato.

Python
Regione ARN

Stati Uniti orientali (Virginia settentrionale)

arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:18

Stati Uniti orientali (Ohio)

arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroPython:15

Stati Uniti occidentali (California settentrionale)

arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:22

Stati Uniti occidentali (Oregon)

arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:22

Africa (Città del Capo)

arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroPython:12

Asia Pacifico (Hong Kong)

arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroPython:12

Asia Pacific (Hyderabad)

arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroPython:12

Asia Pacifico (Giacarta)

arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroPython:12

Asia Pacifico (Melbourne)

arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroPython:12

Asia Pacifico (Malesia)

arn:aws:lambda:ap-southeast-5:152034782359:layer:AWSOpenTelemetryDistroPython:3

Asia Pacifico (Thailandia)

arn:aws:lambda:ap-southeast-7:980416031188:layer:AWSOpenTelemetryDistroPython:3

Asia Pacifico (Mumbai)

arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroPython:15

Asia Pacific (Osaka)

arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroPython:14

Asia Pacific (Seul)

arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:15

Asia Pacifico (Singapore)

arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:14

Asia Pacifico (Sydney)

arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:15

Asia Pacifico (Tokyo)

arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:15

Canada (Centrale)

arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:15

Canada occidentale (Calgary)

arn:aws:lambda:ca-west-1:595944127152:layer:AWSOpenTelemetryDistroPython:3

Europa (Francoforte)

arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:15

Europa (Irlanda)

arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:15

Europa (Londra)

arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:15

Europa (Milano)

arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroPython:12

Europa (Parigi)

arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroPython:15

Europa (Spagna)

arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroPython:12

Europa (Stoccolma)

arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroPython:15

Europa (Zurigo)

arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroPython:12

Israele (Tel Aviv)

arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroPython:12

Medio Oriente (Bahrein)

arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroPython:12

Medio Oriente (EAU)

arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroPython:12

Sud America (San Paolo)

arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:15

Messico (centrale)

arn:aws:lambda:mx-central-1:610118373846:layer:AWSOpenTelemetryDistroPython:3

Node.js
Regione ARN

Stati Uniti orientali (Virginia settentrionale)

arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Stati Uniti orientali (Ohio)

arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroJs:9

Stati Uniti occidentali (California settentrionale)

arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Stati Uniti occidentali (Oregon)

arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroJs:9

Africa (Città del Capo)

arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroJs:9

Asia Pacifico (Hong Kong)

arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroJs:9

Asia Pacific (Hyderabad)

arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroJs:9

Asia Pacifico (Giacarta)

arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroJs:9

Asia Pacifico (Melbourne)

arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroJs:9

Asia Pacifico (Malesia)

arn:aws:lambda:ap-southeast-5:152034782359:layer:AWSOpenTelemetryDistroJs:2

Asia Pacifico (Thailandia)

arn:aws:lambda:ap-southeast-7:980416031188:layer:AWSOpenTelemetryDistroJs:2

Asia Pacifico (Mumbai)

arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Asia Pacific (Osaka)

arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroJs:9

Asia Pacific (Seul)

arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroJs:9

Asia Pacifico (Singapore)

arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Asia Pacifico (Sydney)

arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroJs:9

Asia Pacifico (Tokyo)

arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Canada (Centrale)

arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Canada occidentale (Calgary)

arn:aws:lambda:ca-west-1:595944127152:layer:AWSOpenTelemetryDistroJs:2

Europa (Francoforte)

arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Europa (Irlanda)

arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Europa (Londra)

arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroJs:9

Europa (Milano)

arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroJs:9

Europa (Parigi)

arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroJs:9

Europa (Spagna)

arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroJs:9

Europa (Stoccolma)

arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Europa (Zurigo)

arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroJs:9

Israele (Tel Aviv)

arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroJs:9

Medio Oriente (Bahrein)

arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroJs:9

Medio Oriente (EAU)

arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroJs:9

Sud America (San Paolo)

arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroJs:9

Messico (centrale)

arn:aws:lambda:mx-central-1:610118373846:layer:AWSOpenTelemetryDistroJs:2

.Net
Regione ARN

Stati Uniti orientali (Virginia settentrionale)

arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:6

Stati Uniti orientali (Ohio)

arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Stati Uniti occidentali (California settentrionale)

arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Stati Uniti occidentali (Oregon)

arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Africa (Città del Capo)

arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacifico (Hong Kong)

arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacific (Hyderabad)

arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacifico (Giacarta)

arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacifico (Melbourne)

arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacifico (Malesia)

arn:aws:lambda:ap-southeast-5:152034782359:layer:AWSOpenTelemetryDistroDotNet:1

Asia Pacifico (Thailandia)

arn:aws:lambda:ap-southeast-7:980416031188:layer:AWSOpenTelemetryDistroDotNet:1

Asia Pacifico (Mumbai)

arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacific (Osaka)

arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacific (Seul)

arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacifico (Singapore)

arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacifico (Sydney)

arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Asia Pacifico (Tokyo)

arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Canada (Centrale)

arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Canada occidentale (Calgary)

arn:aws:lambda:ca-west-1:595944127152:layer:AWSOpenTelemetryDistroDotNet:1

Europa (Francoforte)

arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Europa (Irlanda)

arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Europa (Londra)

arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Europa (Milano)

arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroDotNet:5

Europa (Parigi)

arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Europa (Spagna)

arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroDotNet:5

Europa (Stoccolma)

arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Europa (Zurigo)

arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroDotNet:5

Israele (Tel Aviv)

arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroDotNet:5

Medio Oriente (Bahrein)

arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroDotNet:5

Medio Oriente (EAU)

arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroDotNet:5

Sud America (San Paolo)

arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5

Messico (centrale)

arn:aws:lambda:mx-central-1:610118373846:layer:AWSOpenTelemetryDistroDotNet:1

Java
Regione ARN

Stati Uniti orientali (Virginia settentrionale)

arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Stati Uniti orientali (Ohio)

arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroJava:5

Stati Uniti occidentali (California settentrionale)

arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Stati Uniti occidentali (Oregon)

arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroJava:5

Africa (Città del Capo)

arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroJava:5

Asia Pacifico (Hong Kong)

arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroJava:5

Asia Pacific (Hyderabad)

arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroJava:5

Asia Pacifico (Giacarta)

arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroJava:5

Asia Pacifico (Melbourne)

arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroJava:5

Asia Pacifico (Malesia)

arn:aws:lambda:ap-southeast-5:152034782359:layer:AWSOpenTelemetryDistroJava:2

Asia Pacifico (Thailandia)

arn:aws:lambda:ap-southeast-7:980416031188:layer:AWSOpenTelemetryDistroJava:2

Asia Pacifico (Mumbai)

arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Asia Pacific (Osaka)

arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroJava:5

Asia Pacific (Seul)

arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroJava:5

Asia Pacifico (Singapore)

arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Asia Pacifico (Sydney)

arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroJava:5

Asia Pacifico (Tokyo)

arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Canada (Centrale)

arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Canada occidentale (Calgary)

arn:aws:lambda:ca-west-1:595944127152:layer:AWSOpenTelemetryDistroJava:2

Europa (Francoforte)

arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Europa (Irlanda)

arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Europa (Londra)

arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroJava:5

Europa (Milano)

arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroJava:5

Europa (Parigi)

arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroJava:5

Europa (Spagna)

arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroJava:5

Europa (Stoccolma)

arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Europa (Zurigo)

arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroJava:5

Israele (Tel Aviv)

arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroJava:5

Medio Oriente (Bahrein)

arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroJava:5

Medio Oriente (EAU)

arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroJava:5

Messico (centrale)

arn:aws:lambda:mx-central-1:610118373846:layer:AWSOpenTelemetryDistroJava:2

Sud America (San Paolo)

arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroJava:5

Implementazione delle funzioni Lambda utilizzando il container Amazon ECR

Le funzioni Lambda implementate come immagini di container non supportano i livelli Lambda nel modo tradizionale. Quando si utilizzano immagini di container, non è possibile collegare un livello come si farebbe con altri metodi di implementazione di Lambda. È invece necessario incorporare manualmente il contenuto del livello nell'immagine del container durante il processo di creazione.

Java

Puoi ottenere informazioni su come integrare il livello AWS Lambda per OpenTelemetry nella tua funzione Lambda Java containerizzata, scaricare l'artefatto layer.zip e integrarlo nel container della funzione Lambda Java per abilitare il monitoraggio di Application Signals.

Prerequisiti

  • AWS CLI configurata con le tue credenziali

  • Docker installato

  • Queste istruzioni presuppongono l'utilizzo di una piattaforma x86_64

  1. Impostazione della struttura del progetto

    Creazione di una directory per la funzione Lambda

    mkdir java-appsignals-container-lambda && \ cd java-appsignals-container-lambda

    Creazione di una struttura di progetto Maven

    mkdir -p src/main/java/com/example/java/lambda mkdir -p src/main/resources
  2. Creazione di un Dockerfile

    Scarica e integra il livello OpenTelemetry con il supporto di Application Signals direttamente nell'immagine del container Lambda. A tale scopo, viene creato il file Dockerfile.

    FROM public.ecr.aws/lambda/java:21 # Install utilities RUN dnf install -y unzip wget maven # Download the OpenTelemetry Layer with AppSignals Support RUN wget https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/layer.zip -O /tmp/layer.zip # Extract and include Lambda layer contents RUN mkdir -p /opt && \ unzip /tmp/layer.zip -d /opt/ && \ chmod -R 755 /opt/ && \ rm /tmp/layer.zip # Copy and build function code COPY pom.xml ${LAMBDA_TASK_ROOT} COPY src ${LAMBDA_TASK_ROOT}/src RUN mvn clean package -DskipTests # Copy the JAR file to the Lambda runtime directory (from inside the container) RUN mkdir -p ${LAMBDA_TASK_ROOT}/lib/ RUN cp ${LAMBDA_TASK_ROOT}/target/function.jar ${LAMBDA_TASK_ROOT}/lib/ # Set the handler CMD ["com.example.java.lambda.App::handleRequest"]
    Nota

    Il file layer.zip contiene l'instrumentazione OpenTelemetry necessaria per il supporto di AWS Application Signals per monitorare la funzione Lambda.

    Le fasi di estrazione del livello garantiscono:

    • La corretta estrazione dei contenuti di layer.zip in /opt/ directory

    • La ricezione delle autorizzazioni di esecuzioni appropriate da parte dello script otel-instrument

    • La rimozione del file temporaneo layer.zip per ridurre le dimensioni dell'immagine

  3. Codice funzione Lambda: crea un file Java per il tuo gestore Lambda all'indirizzo src/main/java/com/example/lambda/App.java:

    Il progetto dovrebbe essere simile a questo: .

    . ├── Dockerfile ├── pom.xml └── src └── main ├── java │ └── com │ └── example │ └── java │ └── lambda │ └── App.java └── resources
  4. Creazione e implementazione dell'immagine di container

    Impostazione delle variabili di ambiente

    AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) AWS_REGION=$(aws configure get region) # For fish shell users: # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text) # set AWS_REGION (aws configure get region)

    Autenticazione con ECR

    Innanzitutto con ECR pubblico (per l'immagine di base):

    aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws

    Quindi con il tuo ECR privato:

    aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com

    Crea, aggiungi tag e invia un'immagine

    # Build the Docker image docker build -t lambda-appsignals-demo . # Tag the image docker tag lambda-appsignals-demo:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest # Push the image docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest
  5. Creazione e configurazione della funzione Lambda

    Crea una nuova funzione utilizzando la console Lambda.

    Seleziona Immagine del container come opzione di implementazione.

    Scegli Sfoglia immagini per selezionare la tua immagine Amazon ECR.

  6. Test e verifiche: testa la tua Lambda con un semplice evento. Se l'integrazione del livello ha esito positivo, la Lambda viene visualizzata nella mappa dei servizi di Application Signals.

    Potrai visualizzare tracce e metriche relative alla funzione Lambda nella console CloudWatch.

Risoluzione dei problemi

Se Application Signals non funziona, verifica gli aspetti seguenti:

  • Controlla i log della funzione per eventuali errori relativi all'instrumentazione OpenTelemetry

  • Verifica se la variabile di ambiente AWS_LAMBDA_EXEC_WRAPPER è impostata correttamente

  • Assicurati che l'estrazione del livello nel file Docker sia stata completata correttamente

  • Verifica se le autorizzazioni IAM sono collegate correttamente

  • Se necessario, aumenta le impostazioni di Timeout e memoria nella configurazione generale della funzione Lambda

.Net

Puoi ottenere informazioni su come integrare il livello OpenTelemetry con il supporto di Application Signals nella tua funzione Lambda .Net containerizzata, scaricare l'artefatto layer.zip e integrarlo nel container della funzione Lambda .Net per abilitare il monitoraggio di Application Signals.

Prerequisiti

  • AWS CLI configurata con le tue credenziali

  • Docker installato

  • SDK .Net 8

  • Queste istruzioni presuppongono l'utilizzo di una piattaforma x86_64

  1. Impostazione della struttura del progetto

    Creazione di una directory per l'immagine del container della funzione Lambda

    mkdir dotnet-appsignals-container-lambda && \ cd dotnet-appsignals-container-lambda
  2. Creazione di un Dockerfile

    Scarica e integra il livello OpenTelemetry con il supporto di Application Signals direttamente nell'immagine del container Lambda. A tale scopo, viene creato il file Dockerfile.

    FROM public.ecr.aws/lambda/dotnet:8 # Install utilities RUN dnf install -y unzip wget dotnet-sdk-8.0 which # Add dotnet command to docker container's PATH ENV PATH="/usr/lib64/dotnet:${PATH}" # Download the OpenTelemetry Layer with AppSignals Support RUN wget https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/layer.zip -O /tmp/layer.zip # Extract and include Lambda layer contents RUN mkdir -p /opt && \ unzip /tmp/layer.zip -d /opt/ && \ chmod -R 755 /opt/ && \ rm /tmp/layer.zip WORKDIR ${LAMBDA_TASK_ROOT} # Copy the project files COPY dotnet-lambda-function/src/dotnet-lambda-function/*.csproj ${LAMBDA_TASK_ROOT}/ COPY dotnet-lambda-function/src/dotnet-lambda-function/Function.cs ${LAMBDA_TASK_ROOT}/ COPY dotnet-lambda-function/src/dotnet-lambda-function/aws-lambda-tools-defaults.json ${LAMBDA_TASK_ROOT}/ # Install dependencies and build the application RUN dotnet restore # Use specific runtime identifier and disable ReadyToRun optimization RUN dotnet publish -c Release -o out --self-contained false /p:PublishReadyToRun=false # Copy the published files to the Lambda runtime directory RUN cp -r out/* ${LAMBDA_TASK_ROOT}/ CMD ["dotnet-lambda-function::dotnet_lambda_function.Function::FunctionHandler"]
    Nota

    Il file layer.zip contiene l'instrumentazione OpenTelemetry necessaria per il supporto di AWS Application Signals per monitorare la funzione Lambda.

    Le fasi di estrazione del livello garantiscono:

    • La corretta estrazione dei contenuti di layer.zip in /opt/ directory

    • La ricezione delle autorizzazioni di esecuzioni appropriate da parte dello script otel-instrument

    • La rimozione del file temporaneo layer.zip per ridurre le dimensioni dell'immagine

  3. Codice della funzione Lambda: inizializza il tuo progetto Lambda utilizzando il modello AWS Lambda .NET:

    # Install the Lambda templates if you haven't already dotnet new -i Amazon.Lambda.Templates # Create a new Lambda project dotnet new lambda.EmptyFunction -n dotnet-lambda-function

    Il progetto dovrebbe essere simile a questo: .

    . ├── Dockerfile └── dotnet-lambda-function ├── src │ └── dotnet-lambda-function │ ├── Function.cs │ ├── Readme.md │ ├── aws-lambda-tools-defaults.json │ └── dotnet-lambda-function.csproj └── test └── dotnet-lambda-function.Tests ├── FunctionTest.cs └── dotnet-lambda-function.Tests.csproj
  4. Creazione e implementazione dell'immagine di container

    Impostazione delle variabili di ambiente

    AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) AWS_REGION=$(aws configure get region) # For fish shell users: # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text) # set AWS_REGION (aws configure get region)

    Aggiorna il codice Function.cs come segue:

    Aggiorna il codice dotnet-lambda-function.csproj come segue:

    <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0>/TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles> <AWSProjectType>Lambda</AWSProjectType> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> <PublishReadyToRun>true</PublishReadyToRun> </PropertyGroup> <ItemGroup> <PackageReference Include="Amazon.Lambda.Core" Version="2.5.0" /> <PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.4.4" /> <PackageReference Include="AWSSDK.S3" Version="3.7.305.23" /> </ItemGroup> </Project>
  5. Creazione e implementazione dell'immagine di container

    Impostazione delle variabili di ambiente

    AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) AWS_REGION=$(aws configure get region) # For fish shell users: # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text) # set AWS_REGION (aws configure get region)

    Autenticazione con Amazon ECR pubblico

    aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws

    Autenticazione con Amazon ECR privato

    aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com

    Creazione di un repository Amazon ECR (se necessario)

    aws ecr create-repository \ --repository-name lambda-appsignals-demo \ --region $AWS_REGION

    Creazione, aggiunta di tag e invio di un'immagine

    # Build the Docker image docker build -t lambda-appsignals-demo . # Tag the image docker tag lambda-appsignals-demo:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest # Push the image docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest 5. Create and Configure the Lambda Function
  6. Creazione e configurazione della funzione Lambda

    Crea una nuova funzione utilizzando la console Lambda.

    Seleziona Immagine del container come opzione di implementazione.

    Scegli Sfoglia immagini per selezionare la tua immagine Amazon ECR.

  7. Test e verifiche: testa la tua Lambda con un semplice evento. Se l'integrazione del livello ha esito positivo, la Lambda viene visualizzata nella mappa dei servizi di Application Signals.

    Potrai visualizzare tracce e metriche relative alla funzione Lambda nella console CloudWatch.

Risoluzione dei problemi

Se Application Signals non funziona, verifica gli aspetti seguenti:

  • Controlla i log della funzione per eventuali errori relativi all'instrumentazione OpenTelemetry

  • Verifica se la variabile di ambiente AWS_LAMBDA_EXEC_WRAPPER è impostata correttamente

  • Assicurati che l'estrazione del livello nel file Docker sia stata completata correttamente

  • Verifica se le autorizzazioni IAM sono collegate correttamente

  • Se necessario, aumenta le impostazioni di Timeout e memoria nella configurazione generale della funzione Lambda

Node.js

Puoi ottenere informazioni su come integrare il livello OpenTelemetry con il supporto di Application Signals nella tua funzione Lambda Node.js containerizzata, scaricare l'artefatto layer.zip e integrarlo nel container della funzione Lambda Node.js per abilitare il monitoraggio di Application Signals.

Prerequisiti

  • AWS CLI configurata con le tue credenziali

  • Docker installato

  • Queste istruzioni presuppongono l'utilizzo di una piattaforma x86_64

  1. Impostazione della struttura del progetto

    Creazione di una directory per l'immagine del container della funzione Lambda

    mkdir nodejs-appsignals-container-lambda &&\ cd nodejs-appsignals-container-lambda
  2. Creazione di un Dockerfile

    Scarica e integra il livello OpenTelemetry con il supporto di Application Signals direttamente nell'immagine del container Lambda. A tale scopo, viene creato il file Dockerfile.

    # Dockerfile FROM public.ecr.aws/lambda/nodejs:22 # Install utilities RUN dnf install -y unzip wget # Download the OpenTelemetry Layer with AppSignals Support RUN wget https://github.com/aws-observability/aws-otel-js-instrumentation/releases/latest/download/layer.zip -O /tmp/layer.zip # Extract and include Lambda layer contents RUN mkdir -p /opt && \ unzip /tmp/layer.zip -d /opt/ && \ chmod -R 755 /opt/ && \ rm /tmp/layer.zip # Install npm dependencies RUN npm init -y RUN npm install # Copy function code COPY *.js ${LAMBDA_TASK_ROOT}/ # Set the CMD to your handler CMD [ "index.handler" ]
    Nota

    Il file layer.zip contiene l'instrumentazione OpenTelemetry necessaria per il supporto di AWS Application Signals per monitorare la funzione Lambda.

    Le fasi di estrazione del livello garantiscono:

    • La corretta estrazione dei contenuti di layer.zip in /opt/ directory

    • La ricezione delle autorizzazioni di esecuzioni appropriate da parte dello script otel-instrument

    • La rimozione del file temporaneo layer.zip per ridurre le dimensioni dell'immagine

  3. Codice della funzione Lambda

    Crea un file index.js con i seguenti contenuti:

    const { S3Client, ListBucketsCommand } = require('@aws-sdk/client-s3'); // Initialize S3 client const s3Client = new S3Client({ region: process.env.AWS_REGION }); exports.handler = async function(event, context) { console.log('Received event:', JSON.stringify(event, null, 2)); console.log('Handler initializing:', exports.handler.name); const response = { statusCode: 200, body: {} }; try { // List S3 buckets const command = new ListBucketsCommand({}); const data = await s3Client.send(command); // Extract bucket names const bucketNames = data.Buckets.map(bucket => bucket.Name); response.body = { message: 'Successfully retrieved buckets', buckets: bucketNames }; } catch (error) { console.error('Error listing buckets:', error); response.statusCode = 500; response.body = { message: `Error listing buckets: ${error.message}` }; } return response; };

    La struttura del progetto dovrebbe essere simile a questa:

    . ├── Dockerfile └── index.js
  4. Creazione e implementazione dell'immagine di container

    Impostazione delle variabili di ambiente

    AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) AWS_REGION=$(aws configure get region) # For fish shell users: # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text) # set AWS_REGION (aws configure get region)

    Autenticazione con Amazon ECR pubblico

    aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws

    Autenticazione con Amazon ECR privato

    aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com

    Creazione di un repository Amazon ECR (se necessario)

    aws ecr create-repository \ --repository-name lambda-appsignals-demo \ --region $AWS_REGION

    Creazione, aggiunta di tag e invio di un'immagine

    # Build the Docker image docker build -t lambda-appsignals-demo . # Tag the image docker tag lambda-appsignals-demo:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest # Push the image docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest 5. Create and Configure the Lambda Function
  5. Creazione e configurazione della funzione Lambda

    Crea una nuova funzione utilizzando la console Lambda.

    Seleziona Immagine del container come opzione di implementazione.

    Scegli Sfoglia immagini per selezionare la tua immagine Amazon ECR.

  6. Test e verifiche: testa la tua Lambda con un semplice evento. Se l'integrazione del livello ha esito positivo, la Lambda viene visualizzata nella mappa dei servizi di Application Signals.

    Potrai visualizzare tracce e metriche relative alla funzione Lambda nella console CloudWatch.

Risoluzione dei problemi

Se Application Signals non funziona, verifica gli aspetti seguenti:

  • Controlla i log della funzione per eventuali errori relativi all'instrumentazione OpenTelemetry

  • Verifica se la variabile di ambiente AWS_LAMBDA_EXEC_WRAPPER è impostata correttamente

  • Assicurati che l'estrazione del livello nel file Docker sia stata completata correttamente

  • Verifica se le autorizzazioni IAM sono collegate correttamente

  • Se necessario, aumenta le impostazioni di Timeout e memoria nella configurazione generale della funzione Lambda

Python

Puoi ottenere informazioni su come integrare il livello OpenTelemetry con il supporto di Application Signals nella tua funzione Lambda Python containerizzata, scaricare l'artefatto layer.zip e integrarlo nel container della funzione Lambda Python per abilitare il monitoraggio di Application Signals.

Prerequisiti

  • AWS CLI configurata con le tue credenziali

  • Docker installato

  • Queste istruzioni presuppongono l'utilizzo di una piattaforma x86_64

  1. Impostazione della struttura del progetto

    Creazione di una directory per l'immagine del container della funzione Lambda

    mkdir python-appsignals-container-lambda &&\ cd python-appsignals-container-lambda
  2. Creazione di un Dockerfile

    Scarica e integra il livello OpenTelemetry con il supporto di Application Signals direttamente nell'immagine del container Lambda. A tale scopo, viene creato il file Dockerfile.

    Nota

    Il file layer.zip contiene l'instrumentazione OpenTelemetry necessaria per il supporto di AWS Application Signals per monitorare la funzione Lambda.

    Le fasi di estrazione del livello garantiscono:

    • La corretta estrazione dei contenuti di layer.zip in /opt/ directory

    • La ricezione delle autorizzazioni di esecuzioni appropriate da parte dello script otel-instrument

    • La rimozione del file temporaneo layer.zip per ridurre le dimensioni dell'immagine

  3. Codice della funzione Lambda

    Crea la funzione Lambda in un file app.py:

    import json import boto3 def lambda_handler(event, context): """ Sample Lambda function that can be used in a container image. Parameters: ----------- event: dict Input event data context: LambdaContext Lambda runtime information Returns: __ dict Response object """ print("Received event:", json.dumps(event, indent=2)) # Create S3 client s3 = boto3.client('s3') try: # List buckets response = s3.list_buckets() # Extract bucket names buckets = [bucket['Name'] for bucket in response['Buckets']] return { 'statusCode': 200, 'body': json.dumps({ 'message': 'Successfully retrieved buckets', 'buckets': buckets }) } except Exception as e: print(f"Error listing buckets: {str(e)}") return { 'statusCode': 500, 'body': json.dumps({ 'message': f'Error listing buckets: {str(e)}' }) }

    La struttura del progetto dovrebbe essere simile a questa:

    . ├── Dockerfile ├── app.py └── instructions.md
  4. Creazione e implementazione dell'immagine di container

    Impostazione delle variabili di ambiente

    AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) AWS_REGION=$(aws configure get region) # For fish shell users: # set AWS_ACCOUNT_ID (aws sts get-caller-identity --query Account --output text) # set AWS_REGION (aws configure get region)

    Autenticazione con Amazon ECR pubblico

    aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws

    Autenticazione con Amazon ECR privato

    aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com

    Creazione di un repository Amazon ECR (se necessario)

    aws ecr create-repository \ --repository-name lambda-appsignals-demo \ --region $AWS_REGION

    Creazione, aggiunta di tag e invio di un'immagine

    # Build the Docker image docker build -t lambda-appsignals-demo . # Tag the image docker tag lambda-appsignals-demo:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest # Push the image docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/lambda-appsignals-demo:latest 5. Create and Configure the Lambda Function
  5. Creazione e configurazione della funzione Lambda

    Crea una nuova funzione utilizzando la console Lambda.

    Seleziona Immagine del container come opzione di implementazione.

    Scegli Sfoglia immagini per selezionare la tua immagine Amazon ECR.

  6. Test e verifiche: testa la tua Lambda con un semplice evento. Se l'integrazione del livello ha esito positivo, la Lambda viene visualizzata nella mappa dei servizi di Application Signals.

    Potrai visualizzare tracce e metriche relative alla funzione Lambda nella console CloudWatch.

Risoluzione dei problemi

Se Application Signals non funziona, verifica gli aspetti seguenti:

  • Controlla i log della funzione per eventuali errori relativi all'instrumentazione OpenTelemetry

  • Verifica se la variabile di ambiente AWS_LAMBDA_EXEC_WRAPPER è impostata correttamente

  • Assicurati che l'estrazione del livello nel file Docker sia stata completata correttamente

  • Verifica se le autorizzazioni IAM sono collegate correttamente

  • Se necessario, aumenta le impostazioni di Timeout e memoria nella configurazione generale della funzione Lambda