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.
Einführung in das Testen mit sam local generate-event
Verwenden Sie die AWS Serverless Application Model Befehlszeilenschnittstelle (AWS SAM CLIsam local generate-event
Unterbefehl zum Generieren von Nutzdatenbeispielen für Ereignisse, die unterstützt werden. AWS-Services Sie können diese Ereignisse dann ändern und zum Testen an lokale Ressourcen weitergeben.
-
Für eine Einführung in die AWS SAM CLI, siehe Was ist der AWS SAM CLI?
-
Eine Liste der
sam local generate-event
Befehlsoptionen finden Sie untersam local generate-event.
Ein Ereignis ist ein JSON Objekt, das generiert wird, wenn ein eine Aktion oder Aufgabe AWS-Service ausführt. Diese Ereignisse enthalten spezifische Informationen, z. B. die verarbeiteten Daten oder den Zeitstempel des Ereignisses. Die meisten AWS-Services generieren Ereignisse, und die Ereignisse jedes Dienstes sind für den jeweiligen Dienst eindeutig formatiert.
Von einem Dienst generierte Ereignisse werden als Ereignisquelle an andere Dienste weitergegeben. Beispielsweise kann ein Artikel, der in einem Amazon Simple Storage Service (Amazon S3) -Bucket platziert wird, ein Ereignis auslösen. Dieses Ereignis kann dann als Ereignisquelle für eine AWS Lambda Funktion zur weiteren Verarbeitung der Daten verwendet werden.
Ereignisse, die Sie mit generieren, sam local generate-event
werden in derselben Struktur formatiert wie die tatsächlichen Ereignisse, die vom AWS Service erstellt wurden. Sie können den Inhalt dieser Ereignisse ändern und sie zum Testen von Ressourcen in Ihrer Anwendung verwenden.
Um es zu verwendensam local generate-event
, installieren Sie das AWS SAM CLI indem Sie Folgendes ausführen:
Vor der Verwendung sam local generate-event
empfehlen wir ein grundlegendes Verständnis der folgenden Punkte:
Generieren Sie Beispielereignisse
Verwenden Sie die AWS SAM CLI sam local generate-event
Unterbefehl zum Generieren von Ereignissen für unterstützte AWS-Services.
Um eine Liste der unterstützten zu sehen AWS-Services
-
Führen Sie Folgendes aus:
$
sam local generate-event
-
Die Liste der unterstützten AWS-Services wird angezeigt. Im Folgenden wird ein Beispiel gezeigt:
$
sam local generate-event
... Commands: alb alexa-skills-kit alexa-smart-home apigateway appsync batch cloudformation ...
Um ein lokales Ereignis zu generieren
-
Führen Sie den unterstützten Dienstnamen aus
sam local generate-event
und geben Sie ihn an. Daraufhin wird eine Liste der Ereignistypen angezeigt, die Sie generieren können. Im Folgenden wird ein Beispiel gezeigt:$
sam local generate-event
Usage: sam local generate-event s3 [OPTIONS] COMMAND [ARGS]... Options: -h, --help Show this message and exit. Commands: batch-invocation Generates an Amazon S3 Batch Operations Invocation Event delete Generates an Amazon S3 Delete Event put Generates an Amazon S3 Put Events3
-
Um das Beispielereignis zu generieren
sam local generate-event
, führen Sie es aus und geben Sie den Dienst und den Ereignistyp an.$
sam local generate-event
<service>
<event>
Im Folgenden wird ein Beispiel gezeigt:
$
sam local generate-event
{ "Records": [ { "eventVersion": "2.0", "eventSource": "aws:s3", "awsRegion": "us-east-1", "eventTime": "1970-01-01T00:00:00.000Z", "eventName": "ObjectCreated:Put", "userIdentity": { "principalId": "EXAMPLE" }, "requestParameters": { "sourceIPAddress": "127.0.0.1" }, "responseElements": { "x-amz-request-id": "EXAMPLE123456789", "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" }, "s3": { "s3SchemaVersion": "1.0", "configurationId": "testConfigRule", "bucket": { "name": "example-bucket", "ownerIdentity": { "principalId": "EXAMPLE" }, "arn": "arn:aws:s3:::example-bucket" }, "object": { "key": "test/key", "size": 1024, "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901" } } } ] }s3 put
Diese Beispielereignisse enthalten Platzhalterwerte. Sie können diese Werte ändern, um auf tatsächliche Ressourcen in Ihrer Anwendung oder auf Werte zu verweisen, die beim Testen vor Ort hilfreich sind.
Um ein Beispielereignis zu ändern
-
Sie können Beispielereignisse in der Befehlszeile ändern. Führen Sie den folgenden Befehl aus, um Ihre Optionen zu sehen:
$
sam local generate-event
<service>
<event>
--helpIm Folgenden wird ein Beispiel gezeigt:
$
sam local generate-event
Usage: sam local generate-event s3 put [OPTIONS] Options: --region TEXT Specify the region name you'd like, otherwise the default = us-east-1 --partition TEXT Specify the partition name you'd like, otherwise the default = aws --bucket TEXT Specify the bucket name you'd like, otherwise the default = example-bucket --key TEXT Specify the key name you'd like, otherwise the default = test/key --debug Turn on debug logging to print debug message generated by AWS SAM CLI and display timestamps. --config-file TEXT Configuration file containing default parameter values. [default: samconfig.toml] --config-env TEXT Environment name specifying default parameter values in the configuration file. [default: default] -h, --help Show this message and exit.s3
put
--help -
Verwenden Sie eine dieser Optionen in der Befehlszeile, um Ihre Beispielereignis-Payload zu ändern. Im Folgenden wird ein Beispiel gezeigt:
$
sam local generate-event
{ "Records": [ { "eventVersion": "2.0", "eventSource": "aws:s3", "awsRegion": "us-east-1", "eventTime": "1970-01-01T00:00:00.000Z", "eventName": "ObjectCreated:Put", "userIdentity": { "principalId": "EXAMPLE" }, "requestParameters": { "sourceIPAddress": "127.0.0.1" }, "responseElements": { "x-amz-request-id": "EXAMPLE123456789", "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" }, "s3": { "s3SchemaVersion": "1.0", "configurationId": "testConfigRule", "bucket": { "name":s3 put--bucket MyBucket
"MyBucket"
, "ownerIdentity": { "principalId": "EXAMPLE" }, "arn": "arn:aws:s3:::MyBucket" }, "object": { "key": "test/key", "size": 1024, "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901" } } } ] }
Verwenden Sie generierte Ereignisse für lokale Tests
Speichern Sie Ihre generierten Ereignisse lokal und testen Sie sie mit anderen sam local
Unterbefehlen.
Um Ihre generierten Ereignisse lokal zu speichern
-
Führen Sie Folgendes aus:
$
sam local generate-event
<service> <event> <event-option>
><filename.json>
Im Folgenden finden Sie ein Beispiel für ein Ereignis, das als
s3.json
Datei imevents
Ordner unseres Projekts gespeichert wird.sam-app$
sam local generate-event
s3 put --bucket MyBucket
>events/s3.json
Um ein generiertes Ereignis für lokale Tests zu verwenden
-
Übergeben Sie das Ereignis mithilfe der
--event
Option zusammen mit anderensam local
Unterbefehlen.Im Folgenden finden Sie ein Beispiel für die Verwendung des
s3.json
Ereignisses, um unsere Lambda-Funktion lokal aufzurufen:sam-app$
sam local invoke --event
Invoking src/handlers/s3-json-logger.s3JsonLoggerHandler (nodejs18.x) Local image is up-to-date Using local image: public.ecr.aws/lambda/nodejs:18-rapid-x86_64. Mounting /Users/.../sam-app/.aws-sam/build/S3JsonLoggerFunction as /var/task:ro,delegated, inside runtime container START RequestId: f4f45b6d-2ec6-4235-bc7b-495ec2ae0128 Version: $LATEST END RequestId: f4f45b6d-2ec6-4235-bc7b-495ec2ae0128 REPORT RequestId: f4f45b6d-2ec6-4235-bc7b-495ec2ae0128 Init Duration: 1.23 ms Duration: 9371.93 ms Billed Duration: 9372 ms Memory Size: 128 MB Max Memory Used: 128 MBevents/s3.json S3JsonLoggerFunction
Weitere Informationen
Eine Liste aller sam local generate-event
Optionen finden Sie untersam local
generate-event.
Eine Demo der Verwendung sam local
finden Sie unter AWS SAM Lokale Entwicklung. Testen von AWS Cloud Ressourcen aus lokalen Entwicklungsumgebungen