Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Aktivieren Sie Ihre Anwendungen auf Lambda
Sie können Application Signals für Ihre Lambda-Funktionen aktivieren. Application Signals instrumentiert Ihre Lambda-Funktionen automatisch mithilfe von erweiterten AWS Distro for OpenTelemetry (ADOT) -Bibliotheken, die über eine Lambda-Schicht bereitgestellt werden. Dieser AWS Lambda-Layer für OpenTelemetry Pakete und Bereitstellungen der Bibliotheken, die für die automatische Instrumentierung von Application Signals erforderlich sind.
Diese Lambda-Schicht unterstützt nicht nur Anwendungssignale, sondern ist auch Bestandteil der OpenTelemetry Lambda-Unterstützung und bietet Tracing-Funktionen.
Sie können die Lambda-Observability auch verbessern, indem Sie die Transaktionssuche verwenden, die die Erfassung von Trace-Spans für den Lambda-Funktionsaufruf ohne Sampling ermöglicht. Mit dieser Funktion können Sie Spans für Ihre Funktionen erfassen, unabhängig davon, ob das Flag bei der Übertragung des Trace-Kontexts vorhanden ist. sampled
Dadurch wird sichergestellt, dass keine zusätzlichen Auswirkungen auf nachgelagerte abhängige Dienste entstehen. Durch die Aktivierung der Transaktionssuche auf Lambda erhalten Sie einen vollständigen Überblick über die Leistung Ihrer Funktionen und können selten auftretende Probleme beheben. Informationen zu den ersten Schritten finden Sie unter Suche nach Transaktionen
Erste Schritte
Es gibt drei Methoden, um Application Signals für Ihre Lambda-Funktionen zu aktivieren.
Nachdem Sie Application Signals für eine Lambda-Funktion aktiviert haben, dauert es einige Minuten, bis die Telemetrie dieser Funktion in der Application Signals-Konsole angezeigt wird.
-
Verwenden Sie die CloudWatch Application Signals Console
-
Verwenden Sie die Lambda-Konsole
-
Fügen Sie den AWS Lambda-Layer für manuell OpenTelemetry zu Ihrer Lambda-Funktionslaufzeit hinzu.
Jede dieser Methoden fügt Ihrer Funktion den AWS Lambda-Layer für OpenTelemetry hinzu.
Verwenden Sie die CloudWatch Application Signals Console
Gehen Sie wie folgt vor, um mit der Application Signals Console Application Signals für eine Lambda-Funktion zu aktivieren.
Öffnen Sie die CloudWatch Konsole unter. https://console.aws.amazon.com/cloudwatch/
-
Wählen Sie im Navigationsbereich Application Signals, Services.
-
Wählen Sie im Bereich mit der Liste der Dienste die Option Anwendungssignale aktivieren aus.
-
Wählen Sie die Lambda-Kachel aus.
-
Wählen Sie jede Funktion aus, die Sie für Application Signals aktivieren möchten, und klicken Sie dann auf Fertig.
Verwenden Sie die Lambda-Konsole
Gehen Sie wie folgt vor, um mit der Lambda-Konsole Application Signals für eine Lambda-Funktion zu aktivieren.
Öffnen Sie die AWS Lambda Konsole unter. https://console.aws.amazon.com/lambda/
-
Wählen Sie im Navigationsbereich Funktionen und dann den Namen der Funktion aus, die Sie aktivieren möchten.
-
Wählen Sie die Registerkarte Konfiguration und dann Überwachungs- und Betriebstools aus.
-
Wählen Sie Bearbeiten aus.
-
Wählen Sie im Abschnitt CloudWatch Application Signals and X-Ray die Optionen Anwendungs-Traces und Standardanwendungsmetriken mit Application Signals automatisch erfassen und Lambda Service Traces für durchgängige Transparenz mit X-Ray automatisch erfassen aus. .
-
Wählen Sie Speichern.
Anwendungssignale auf Lambda aktivieren mit AWS CDK
Wenn Sie Application Signals in diesem Konto noch nicht aktiviert haben, müssen Sie Application Signals die Berechtigungen gewähren, die es benötigt, um Ihre Services zu erkennen. Weitere Informationen finden Sie unter Aktivieren Sie Application Signals in Ihrem Konto.
-
Aktivieren Sie Anwendungssignale für Ihre Anwendungen
import { aws_applicationsignals as applicationsignals } from 'aws-cdk-lib'; const cfnDiscovery = new applicationsignals.CfnDiscovery(this, 'ApplicationSignalsServiceRole', { } );
Die CloudFormation Discovery-Ressource gewährt Application Signals die folgenden Berechtigungen:
-
xray:GetServiceGraph
-
logs:StartQuery
-
logs:GetQueryResults
-
cloudwatch:GetMetricData
-
cloudwatch:ListMetrics
-
tag:GetResources
Weitere Informationen über diese Rolle finden Sie unter Dienstbezogene Rollenberechtigungen für CloudWatch Application Signals.
-
-
Fügen Sie die IAM-Richtlinie
CloudWatchLambdaApplicationSignalsExecutionRolePolicy
zur Lambda-Funktion hinzu.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'));
-
$AWS_LAMBDA_LAYER_FOR_OTEL_ARN
Ersetzen Sie durch den tatsächlichen AWS Lambda-Layer für OpenTelemetry ARN in der entsprechenden Region.fn.addLayers(LayerVersion.fromLayerVersionArn( this, 'AwsLambdaLayerForOtel', '$AWS_LAMBDA_LAYER_FOR_OTEL_ARN' )) fn.addEnvironment("AWS_LAMBDA_EXEC_WRAPPER", "/opt/otel-instrument");
(Optional) Überwachen Sie den Zustand Ihrer Anwendung
Sobald Sie Ihre Anwendungen auf Lambda aktiviert haben, können Sie den Zustand Ihrer Anwendung überwachen. Weitere Informationen finden Sie unter Den Betriebsstatus Ihrer Anwendungen mit Application Signals überwachen.
Aktivieren Sie Anwendungssignale manuell.
Gehen Sie wie folgt vor, um Application Signals für eine Lambda-Funktion manuell zu aktivieren.
-
Fügen Sie den AWS Lambda-Layer für OpenTelemetry zu Ihrer Lambda-Laufzeit hinzu. Informationen zum Suchen des Layer-ARN finden Sie unterAWS Lambda Layer für OpenTelemetry ARNs.
-
Fügen Sie die Umgebungsvariable hinzu
AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument
Fügen Sie die Umgebungsvariable hinzu
LAMBDA_APPLICATION_SIGNALS_REMOTE_ENVIRONMENT
, um benutzerdefinierte Lambda-Umgebungen zu konfigurieren. Standardmäßig sind Lambda-Umgebungen so konfiguriert.lambda:default
-
Hängen Sie die AWS verwaltete IAM-Richtlinie CloudWatchLambdaApplicationSignalsExecutionRolePolicyan die Lambda-Ausführungsrolle an.
-
(Optional) Wir empfehlen, die aktive Lambda-Ablaufverfolgung zu aktivieren, um ein besseres Ablaufverfolgungserlebnis zu erzielen. Weitere Informationen finden Sie unter Visualisieren von Lambda-Funktionsaufrufen mit. AWS X-Ray
Deaktivieren Sie Anwendungssignale manuell
Um Application Signals für eine Lambda-Funktion manuell zu deaktivieren, entfernen Sie den AWS Lambda-Layer für OpenTelemetry aus Ihrer Lambda-Laufzeit und entfernen Sie die AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument
Umgebungsvariable.
Konfigurieren von Application Signals
In diesem Abschnitt können Sie Anwendungssignale in Lambda konfigurieren.
Gruppierung mehrerer Lambda-Funktionen in einem Dienst
Die Umgebungsvariable OTEL_SERVICE_NAME
legt den Namen des Dienstes fest. Dieser wird in den Dashboards von Application Signals als Dienstname für Ihre Anwendung angezeigt. Sie können mehreren Lambda-Funktionen denselben Dienstnamen zuweisen, und sie werden in Application Signals zu einem einzigen Dienst zusammengeführt. Wenn Sie keinen Wert für diesen Schlüssel angeben, wird der Standardname der Lambda-Funktion verwendet.
Probenahme
Standardmäßig basiert die Strategie der Spurenprobenahme auf einem übergeordneten System. Sie können die Probenahmestrategie anpassen, indem Sie Umgebungsvariablen festlegenOTEL_TRACES_SAMPLER
.
Legen Sie beispielsweise die Rate für die Spurenabtastung auf 30% fest.
OTEL_TRACES_SAMPLER=traceidratio OTEL_TRACES_SAMPLER_ARG=0.3
Weitere Informationen finden Sie unter Spezifikation der OpenTelemetry Umgebungsvariablen
Aktivierung aller Bibliotheksinstrumente
Um Lambda-Kaltstarts zu reduzieren, sind standardmäßig nur AWS SDK- und HTTP-Instrumentierungen für Python, Node und Java aktiviert. Sie können Umgebungsvariablen festlegen, um die Instrumentierung für andere Bibliotheken zu aktivieren, die in Ihrer Lambda-Funktion verwendet werden.
-
Python –
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=none
-
Knoten —
OTEL_NODE_DISABLED_INSTRUMENTATIONS=none
-
Java —
OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED=true
AWS Lambda Layer für OpenTelemetry ARNs
In den folgenden Tabellen sind die ARNs zu verwendenden AWS Lambda-Layer OpenTelemetry für jede Region aufgeführt, in der er unterstützt wird.
- Python
-
Region ARN USA Ost (Nord-Virginia)
arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:16
USA Ost (Ohio)
arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroPython:13
USA West (Nordkalifornien)
arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:20
USA West (Oregon)
arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:20
Africa (Cape Town)
arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroPython:10
Asien-Pazifik (Hongkong)
arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroPython:10
Asien-Pazifik (Hyderabad)
arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroPython:10
Asien-Pazifik (Jakarta)
arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroPython:10
Asien-Pazifik (Melbourne)
arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroPython:10
Asien-Pazifik (Mumbai)
arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroPython:13
Asien-Pazifik (Osaka)
arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroPython:12
Asien-Pazifik (Seoul)
arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:13
Asien-Pazifik (Singapur)
arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:12
Asien-Pazifik (Sydney)
arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:13
Asien-Pazifik (Tokio)
arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:13
Canada (Central)
arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:13
Europe (Frankfurt)
arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:13
Europa (Irland)
arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:13
Europa (London)
arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:13
Europa (Milan)
arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroPython:10
Europa (Paris)
arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroPython:13
Europa (Spain)
arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroPython:10
Europa (Stockholm)
arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroPython:13
Europa (Zürich)
arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroPython:10
Israel (Tel Aviv)
arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroPython:10
Naher Osten (Bahrain)
arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroPython:10
Naher Osten (VAE)
arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroPython:10
Südamerika (São Paulo)
arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:13
- Node.js
-
Region ARN USA Ost (Nord-Virginia)
arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
USA Ost (Ohio)
arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroJs:8
USA West (Nordkalifornien)
arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
USA West (Oregon)
arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroJs:8
Africa (Cape Town)
arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroJs:8
Asien-Pazifik (Hongkong)
arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroJs:8
Asien-Pazifik (Hyderabad)
arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroJs:6
Asien-Pazifik (Jakarta)
arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroJs:8
Asien-Pazifik (Melbourne)
arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroJs:8
Asien-Pazifik (Mumbai)
arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
Asien-Pazifik (Osaka)
arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroJs:8
Asien-Pazifik (Seoul)
arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroJs:8
Asien-Pazifik (Singapur)
arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
Asien-Pazifik (Sydney)
arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroJs:8
Asien-Pazifik (Tokio)
arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
Canada (Central)
arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
Europe (Frankfurt)
arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
Europa (Irland)
arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
Europa (London)
arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroJs:8
Europa (Milan)
arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroJs:8
Europa (Paris)
arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroJs:8
Europa (Spain)
arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroJs:8
Europa (Stockholm)
arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
Europa (Zürich)
arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroJs:8
Israel (Tel Aviv)
arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroJs:8
Naher Osten (Bahrain)
arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroJs:8
Naher Osten (VAE)
arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroJs:8
Südamerika (São Paulo)
arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroJs:8
- .Net
-
Region ARN USA Ost (Nord-Virginia)
arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:6
USA Ost (Ohio)
arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
USA West (Nordkalifornien)
arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
USA West (Oregon)
arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Africa (Cape Town)
arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Hongkong)
arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Hyderabad)
arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Jakarta)
arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Melbourne)
arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Mumbai)
arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Osaka)
arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Seoul)
arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Singapur)
arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Sydney)
arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Asien-Pazifik (Tokio)
arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Canada (Central)
arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Europe (Frankfurt)
arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Europa (Irland)
arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Europa (London)
arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Europa (Milan)
arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroDotNet:5
Europa (Paris)
arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Europa (Spain)
arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroDotNet:5
Europa (Stockholm)
arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
Europa (Zürich)
arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroDotNet:5
Israel (Tel Aviv)
arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroDotNet:5
Naher Osten (Bahrain)
arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroDotNet:5
Naher Osten (VAE)
arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroDotNet:5
Südamerika (São Paulo)
arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroDotNet:5
- Java
-
Region ARN USA Ost (Nord-Virginia)
arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
USA Ost (Ohio)
arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroJava:5
USA West (Nordkalifornien)
arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
USA West (Oregon)
arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroJava:5
Africa (Cape Town)
arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Hongkong)
arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Hyderabad)
arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Jakarta)
arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Melbourne)
arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Mumbai)
arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Osaka)
arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Seoul)
arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Singapur)
arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Sydney)
arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroJava:5
Asien-Pazifik (Tokio)
arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
Canada (Central)
arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
Europe (Frankfurt)
arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
Europa (Irland)
arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
Europa (London)
arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroJava:5
Europa (Milan)
arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroJava:5
Europa (Paris)
arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroJava:5
Europa (Spain)
arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroJava:5
Europa (Stockholm)
arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
Europa (Zürich)
arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroJava:5
Israel (Tel Aviv)
arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroJava:5
Naher Osten (Bahrain)
arn:aws:lambda:me-south-1:980921751758:layer:AWSOpenTelemetryDistroJava:5
Naher Osten (VAE)
arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroJava:5
Südamerika (São Paulo)
arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroJava:5
Stellen Sie Lambda-Funktionen mithilfe des Amazon ECR-Containers bereit
Lambda-Funktionen, die als Container-Images bereitgestellt werden, unterstützen Lambda-Layer nicht auf herkömmliche Weise. Wenn Sie Container-Images verwenden, können Sie keine Ebene anhängen, wie dies bei anderen Lambda-Bereitstellungsmethoden der Fall wäre. Stattdessen müssen Sie den Inhalt des Layers während des Erstellungsprozesses manuell in Ihr Container-Image integrieren.
- Java
-
Sie können lernen, wie Sie den AWS Lambda Layer for OpenTelemetry in Ihre containerisierte Java-Lambda-Funktion integrieren, das
layer.zip
Artefakt herunterladen und in Ihren Java-Lambda-Funktionscontainer integrieren, um die Überwachung von Application Signals zu ermöglichen.Voraussetzungen
-
AWS CLI mit Ihren Anmeldeinformationen konfiguriert
-
Docker ist installiert
-
Bei diesen Anweisungen wird davon ausgegangen, dass Sie sich auf der x86_64-Plattform befinden
-
Richten Sie die Projektstruktur ein
Erstellen Sie ein Verzeichnis für Ihre Lambda-Funktion
mkdir java-appsignals-container-lambda && \ cd java-appsignals-container-lambda
Erstellen Sie eine Maven-Projektstruktur
mkdir -p src/main/java/com/example/java/lambda mkdir -p src/main/resources
-
Erstellen Sie eine Docker-Datei
Laden Sie die Unterstützung für OpenTelemetry Layer mit Application Signals herunter und integrieren Sie sie direkt in Ihr Lambda-Container-Image. Zu diesem Zweck wird die
Dockerfile
Datei erstellt.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"]
Anmerkung
Die
layer.zip
Datei enthält die OpenTelemetry Instrumentierung, die für die Unterstützung von AWS Application Signals zur Überwachung Ihrer Lambda-Funktion erforderlich ist.Die Schritte zur Ebenenextraktion stellen Folgendes sicher:
-
Der Inhalt von layer.zip wird ordnungsgemäß in die Datei extrahiert
/opt/ directory
-
Das
otel-instrument
Skript erhält die richtigen Ausführungsberechtigungen -
Die temporäre Datei layer.zip wurde entfernt, um die Bildgröße zu verringern
-
-
Lambda-Funktionscode — Erstellen Sie eine Java-Datei für Ihren Lambda-Handler unter
src/main/java/com/example/lambda/App.java:
Ihr Projekt sollte ungefähr so aussehen:
. ├── Dockerfile ├── pom.xml └── src └── main ├── java │ └── com │ └── example │ └── java │ └── lambda │ └── App.java └── resources
-
Erstellen Sie das Container-Image und stellen Sie es bereit
Richten Sie Umgebungsvariablen ein
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)
Authentifizieren Sie sich mit ECR
Zuerst mit öffentlichem ECR (für das Basis-Image):
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
Dann mit deinem privaten ECR:
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
Erstelle, markiere und pushe dein Bild
# 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
-
Lambda-Funktion erstellen und konfigurieren
Erstellen Sie mit der Lambda-Konsole eine neue Funktion.
Wählen Sie Container-Image als Bereitstellungsoption aus.
Wählen Sie Bilder durchsuchen, um Ihr Amazon ECR-Bild auszuwählen.
-
Testen und Verifizierungen — Testen Sie Ihr Lambda mit einem einfachen Ereignis. Wenn die Layer-Integration erfolgreich ist, wird Ihr Lambda unter der Application Signals-Servicekarte angezeigt.
In der CloudWatch Konsole werden Ihnen Traces und Metriken für Ihre Lambda-Funktion angezeigt.
Fehlersuche
Wenn Application Signals nicht funktioniert, überprüfen Sie Folgendes:
-
Überprüfen Sie die Funktionsprotokolle auf Fehler im Zusammenhang mit der OpenTelemetry Instrumentierung
-
Überprüfen Sie, ob die Umgebungsvariable richtig gesetzt
AWS_LAMBDA_EXEC_WRAPPER
ist -
Stellen Sie sicher, dass die Layer-Extraktion in der Docker-Datei erfolgreich abgeschlossen wurde
-
Vergewissern Sie sich, dass die IAM-Berechtigungen ordnungsgemäß angehängt sind
-
Erhöhen Sie bei Bedarf die Timeout- und Speichereinstellungen in der allgemeinen Konfiguration der Lambda-Funktion
-
- .Net
-
Sie können lernen, wie Sie die Unterstützung von OpenTelemetry Layer with Application Signals in Ihre containerisierte .Net Lambda-Funktion integrieren, das
layer.zip
Artefakt herunterladen und in Ihre .Net Lambda-Funktion integrieren, um die Überwachung von Application Signals zu ermöglichen.Voraussetzungen
-
AWS CLI mit Ihren Anmeldeinformationen konfiguriert
-
Docker ist installiert
-
.Net 8 SDK
-
Bei diesen Anweisungen wird davon ausgegangen, dass Sie sich auf der x86_64-Plattform befinden
-
Richten Sie die Projektstruktur ein
Erstellen Sie ein Verzeichnis für Ihr Lambda-Funktionscontainer-Image
mkdir dotnet-appsignals-container-lambda && \ cd dotnet-appsignals-container-lambda
-
Erstellen Sie eine Docker-Datei
Laden Sie die Unterstützung für OpenTelemetry Layer mit Application Signals herunter und integrieren Sie sie direkt in Ihr Lambda-Container-Image. Zu diesem Zweck wird die
Dockerfile
Datei erstellt.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"]
Anmerkung
Die
layer.zip
Datei enthält die OpenTelemetry Instrumentierung, die für die Unterstützung von AWS Application Signals zur Überwachung Ihrer Lambda-Funktion erforderlich ist.Die Schritte zur Ebenenextraktion stellen Folgendes sicher:
-
Der Inhalt von layer.zip wird ordnungsgemäß in die Datei extrahiert
/opt/ directory
-
Das
otel-instrument
Skript erhält die richtigen Ausführungsberechtigungen -
Die temporäre Datei layer.zip wurde entfernt, um die Bildgröße zu verringern
-
-
Lambda-Funktionscode — Initialisieren Sie Ihr Lambda-Projekt mit der AWS Lambda-.NET-Vorlage:
# 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
Ihr Projekt sollte ungefähr so aussehen:
. ├── 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
-
Erstellen Sie das Container-Image und stellen Sie es bereit
Richten Sie Umgebungsvariablen ein
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)
Aktualisieren Sie den
Function.cs
Code auf:Aktualisieren Sie den
dotnet-lambda-function.csproj
Code auf:<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>
-
Erstellen Sie das Container-Image und stellen Sie es bereit
Richten Sie Umgebungsvariablen ein
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)
Authentifizieren Sie sich mit öffentlichem Amazon ECR
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
Authentifizieren Sie sich mit privatem Amazon ECR
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
Amazon ECR-Repository erstellen (falls erforderlich)
aws ecr create-repository \ --repository-name lambda-appsignals-demo \ --region $AWS_REGION
Erstellen, taggen und veröffentlichen Sie Ihr Image
# 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
-
Lambda-Funktion erstellen und konfigurieren
Erstellen Sie mit der Lambda-Konsole eine neue Funktion.
Wählen Sie Container-Image als Bereitstellungsoption aus.
Wählen Sie Bilder durchsuchen, um Ihr Amazon ECR-Bild auszuwählen.
-
Testen und Verifizierungen — Testen Sie Ihr Lambda mit einem einfachen Ereignis. Wenn die Layer-Integration erfolgreich ist, wird Ihr Lambda unter der Application Signals-Servicekarte angezeigt.
In der CloudWatch Konsole werden Ihnen Traces und Metriken für Ihre Lambda-Funktion angezeigt.
Fehlersuche
Wenn Application Signals nicht funktioniert, überprüfen Sie Folgendes:
-
Überprüfen Sie die Funktionsprotokolle auf Fehler im Zusammenhang mit der OpenTelemetry Instrumentierung
-
Überprüfen Sie, ob die Umgebungsvariable richtig gesetzt
AWS_LAMBDA_EXEC_WRAPPER
ist -
Stellen Sie sicher, dass die Layer-Extraktion in der Docker-Datei erfolgreich abgeschlossen wurde
-
Vergewissern Sie sich, dass die IAM-Berechtigungen ordnungsgemäß angehängt sind
-
Erhöhen Sie bei Bedarf die Timeout- und Speichereinstellungen in der allgemeinen Konfiguration der Lambda-Funktion
-
- Node.js
-
Sie können lernen, wie Sie die Unterstützung von OpenTelemetry Layer with Application Signals in Ihre containerisierte Lambda-Funktion von Node.js integrieren, das
layer.zip
Artefakt herunterladen und es in Ihre Node.js Lambda-Funktion integrieren, um die Überwachung von Application Signals zu ermöglichen.Voraussetzungen
-
AWS CLI mit Ihren Anmeldeinformationen konfiguriert
-
Docker ist installiert
-
Bei diesen Anweisungen wird davon ausgegangen, dass Sie sich auf der x86_64-Plattform befinden
-
Richten Sie die Projektstruktur ein
Erstellen Sie ein Verzeichnis für Ihr Lambda-Funktionscontainer-Image
mkdir nodejs-appsignals-container-lambda &&\ cd nodejs-appsignals-container-lambda
-
Erstellen Sie eine Docker-Datei
Laden Sie die Unterstützung für OpenTelemetry Layer mit Application Signals herunter und integrieren Sie sie direkt in Ihr Lambda-Container-Image. Zu diesem Zweck wird die
Dockerfile
Datei erstellt.# 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" ]
Anmerkung
Die
layer.zip
Datei enthält die OpenTelemetry Instrumentierung, die für die Unterstützung von AWS Application Signals zur Überwachung Ihrer Lambda-Funktion erforderlich ist.Die Schritte zur Ebenenextraktion stellen Folgendes sicher:
-
Der Inhalt von layer.zip wird ordnungsgemäß in die Datei extrahiert
/opt/ directory
-
Das
otel-instrument
Skript erhält die richtigen Ausführungsberechtigungen -
Die temporäre Datei layer.zip wurde entfernt, um die Bildgröße zu verringern
-
-
Lambda-Funktionscode
Erstellen Sie eine
index.js
Datei mit dem folgenden Inhalt: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; };
Ihre Projektstruktur sollte ungefähr so aussehen:
. ├── Dockerfile └── index.js
-
Erstellen Sie das Container-Image und stellen Sie es bereit
Richten Sie Umgebungsvariablen ein
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)
Authentifizieren Sie sich mit öffentlichem Amazon ECR
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
Authentifizieren Sie sich mit privatem Amazon ECR
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
Amazon ECR-Repository erstellen (falls erforderlich)
aws ecr create-repository \ --repository-name lambda-appsignals-demo \ --region $AWS_REGION
Erstellen, taggen und veröffentlichen Sie Ihr Image
# 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
-
Lambda-Funktion erstellen und konfigurieren
Erstellen Sie mit der Lambda-Konsole eine neue Funktion.
Wählen Sie Container-Image als Bereitstellungsoption aus.
Wählen Sie Bilder durchsuchen, um Ihr Amazon ECR-Bild auszuwählen.
-
Testen und Verifizierungen — Testen Sie Ihr Lambda mit einem einfachen Ereignis. Wenn die Layer-Integration erfolgreich ist, wird Ihr Lambda unter der Application Signals-Servicekarte angezeigt.
In der CloudWatch Konsole werden Ihnen Traces und Metriken für Ihre Lambda-Funktion angezeigt.
Fehlersuche
Wenn Application Signals nicht funktioniert, überprüfen Sie Folgendes:
-
Überprüfen Sie die Funktionsprotokolle auf Fehler im Zusammenhang mit der OpenTelemetry Instrumentierung
-
Überprüfen Sie, ob die Umgebungsvariable richtig gesetzt
AWS_LAMBDA_EXEC_WRAPPER
ist -
Stellen Sie sicher, dass die Layer-Extraktion in der Docker-Datei erfolgreich abgeschlossen wurde
-
Vergewissern Sie sich, dass die IAM-Berechtigungen ordnungsgemäß angehängt sind
-
Erhöhen Sie bei Bedarf die Timeout- und Speichereinstellungen in der allgemeinen Konfiguration der Lambda-Funktion
-
- Python
-
Sie können lernen, wie Sie die OpenTelemetry Layer-Unterstützung mit Application Signals in Ihre containerisierte Python-Lambda-Funktion integrieren, das
layer.zip
Artefakt herunterladen und in Ihre Python-Lambda-Funktion integrieren, um die Überwachung von Application Signals zu ermöglichen.Voraussetzungen
-
AWS CLI mit Ihren Anmeldeinformationen konfiguriert
-
Docker ist installiert
-
Bei diesen Anweisungen wird davon ausgegangen, dass Sie sich auf der x86_64-Plattform befinden
-
Richten Sie die Projektstruktur ein
Erstellen Sie ein Verzeichnis für Ihr Lambda-Funktionscontainer-Image
mkdir python-appsignals-container-lambda &&\ cd python-appsignals-container-lambda
-
Erstellen Sie eine Docker-Datei
Laden Sie die Unterstützung für OpenTelemetry Layer mit Application Signals herunter und integrieren Sie sie direkt in Ihr Lambda-Container-Image. Zu diesem Zweck wird die
Dockerfile
Datei erstellt.Anmerkung
Die
layer.zip
Datei enthält die OpenTelemetry Instrumentierung, die für die Unterstützung von AWS Application Signals zur Überwachung Ihrer Lambda-Funktion erforderlich ist.Die Schritte zur Ebenenextraktion stellen Folgendes sicher:
-
Der Inhalt von layer.zip wird ordnungsgemäß in die Datei extrahiert
/opt/ directory
-
Das
otel-instrument
Skript erhält die richtigen Ausführungsberechtigungen -
Die temporäre Datei layer.zip wurde entfernt, um die Bildgröße zu verringern
-
-
Lambda-Funktionscode
Erstellen Sie Ihre Lambda-Funktion in einer
app.py
Datei: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)}' }) }
Ihre Projektstruktur sollte ungefähr so aussehen:
. ├── Dockerfile ├── app.py └── instructions.md
-
Erstellen Sie das Container-Image und stellen Sie es bereit
Richten Sie Umgebungsvariablen ein
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)
Authentifizieren Sie sich mit öffentlichem Amazon ECR
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
Authentifizieren Sie sich mit privatem Amazon ECR
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
Amazon ECR-Repository erstellen (falls erforderlich)
aws ecr create-repository \ --repository-name lambda-appsignals-demo \ --region $AWS_REGION
Erstellen, taggen und veröffentlichen Sie Ihr Image
# 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
-
Lambda-Funktion erstellen und konfigurieren
Erstellen Sie mit der Lambda-Konsole eine neue Funktion.
Wählen Sie Container-Image als Bereitstellungsoption aus.
Wählen Sie Bilder durchsuchen, um Ihr Amazon ECR-Bild auszuwählen.
-
Testen und Verifizierungen — Testen Sie Ihr Lambda mit einem einfachen Ereignis. Wenn die Layer-Integration erfolgreich ist, wird Ihr Lambda unter der Application Signals-Servicekarte angezeigt.
In der CloudWatch Konsole werden Ihnen Traces und Metriken für Ihre Lambda-Funktion angezeigt.
Fehlersuche
Wenn Application Signals nicht funktioniert, überprüfen Sie Folgendes:
-
Überprüfen Sie die Funktionsprotokolle auf Fehler im Zusammenhang mit der OpenTelemetry Instrumentierung
-
Überprüfen Sie, ob die Umgebungsvariable richtig gesetzt
AWS_LAMBDA_EXEC_WRAPPER
ist -
Stellen Sie sicher, dass die Layer-Extraktion in der Docker-Datei erfolgreich abgeschlossen wurde
-
Vergewissern Sie sich, dass die IAM-Berechtigungen ordnungsgemäß angehängt sind
-
Erhöhen Sie bei Bedarf die Timeout- und Speichereinstellungen in der allgemeinen Konfiguration der Lambda-Funktion
-