

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 in der Cloud mit sam remote invoke
<a name="using-sam-cli-remote-invoke"></a>

Verwenden Sie den AWS Serverless Application Model Befehl Command Line Interface (AWS SAM CLI)`sam remote invoke`, um mit unterstützten AWS Ressourcen in der zu interagieren AWS Cloud. Sie können `sam remote invoke` es verwenden, um die folgenden Ressourcen aufzurufen:
+ **Amazon Kinesis Data Streams** — Senden Sie Datensätze an Kinesis Data Streams Streams-Anwendungen.
+ **AWS Lambda**— Rufen Sie Ereignisse auf und übergeben Sie sie an Ihre Lambda-Funktionen.
+ **Amazon Simple Queue Service (Amazon SQS)** — Nachrichten an Amazon SQS SQS-Warteschlangen senden.
+ **AWS Step Functions**— Ruft Step Functions Functions-Zustandsmaschinen auf, um die Ausführung zu starten.

Eine Einführung in die finden Sie AWS SAMCLI unter [Was ist das? AWS SAMCLI](what-is-sam-overview.md#what-is-sam-cli)

Ein Beispiel für die Verwendung `sam remote invoke` während eines typischen Entwicklungsworkflows finden Sie unter[Schritt 5: Interagieren Sie mit Ihrer Funktion im AWS Cloud](serverless-getting-started-hello-world.md#serverless-getting-started-hello-world-remote-invoke).

**Topics**
+ [Verwenden Sie den Befehl sam remote invoke](#using-sam-cli-remote-invoke-use)
+ [Verwenden von Sam Remote Invoke-Befehlsoptionen](#using-sam-cli-remote-invoke-options)
+ [Konfigurieren Sie Ihre Projektkonfigurationsdatei](#using-sam-cli-remote-invoke-configure)
+ [Beispiele](#using-sam-cli-remote-invoke-examples)
+ [Weiterführende Links](#using-sam-cli-remote-invoke-links)

## Voraussetzungen
<a name="using-sam-cli-remote-invoke-prerequisites"></a>

Um das zu verwenden`sam remote invoke`, installieren Sie das, AWS SAMCLI indem Sie wie folgt vorgehen:
+ [AWS SAM Voraussetzungen](prerequisites.md).
+ [Installieren Sie das AWS SAMCLI](install-sam-cli.md).

Wir empfehlen außerdem, auf die neueste Version von zu aktualisieren AWS SAMCLI. Weitere Informationen hierzu finden Sie unter [Aktualisierung des AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade).

Vor der Verwendung empfehlen wir`sam remote invoke`, sich mit folgenden Grundkenntnissen vertraut zu machen:
+ [Konfiguration der AWS SAMCLI](using-sam-cli-configure.md).
+ [Erstellen Sie Ihre Bewerbung in AWS SAM](using-sam-cli-init.md).
+ [Einführung in das Bauen mit AWS SAM](using-sam-cli-build.md).
+ [Einführung in die Bereitstellung mit AWS SAM](using-sam-cli-deploy.md).
+ [Einführung in die Verwendung von sam sync to sync to AWS Cloud](using-sam-cli-sync.md).

## Verwenden Sie den Befehl sam remote invoke
<a name="using-sam-cli-remote-invoke-use"></a>

Bevor Sie diesen Befehl verwenden können, muss Ihre Ressource auf dem AWS Cloud bereitgestellt werden.

Verwenden Sie die folgende Befehlsstruktur und führen Sie sie im Stammverzeichnis Ihres Projekts aus:

```
$ sam remote invoke <arguments> <options>
```

**Anmerkung**  
Auf dieser Seite werden Optionen angezeigt, die an der Befehlszeile bereitgestellt werden. Sie können Optionen auch in der Konfigurationsdatei Ihres Projekts konfigurieren, anstatt sie an der Befehlszeile zu übergeben. Weitere Informationen hierzu finden Sie unter [Konfigurieren Sie die Projekteinstellungen](using-sam-cli-configure.md#using-sam-cli-configure-project).

Eine Beschreibung der `sam remote invoke` Argumente und Optionen finden Sie unter[sam remote invoke](sam-cli-command-reference-remote-invoke.md).

### Verwendung mit Kinesis Data Streams
<a name="using-sam-cli-remote-invoke-use-kinesis"></a>

Sie können Datensätze an eine Kinesis Data Streams Streams-Anwendung senden. Sie AWS SAM CLI sendet Ihren Datensatz und gibt eine Shard-ID und eine Sequenznummer zurück. Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke KinesisStream --stack-name kinesis-example --event hello-world
	
	Putting record to Kinesis data stream KinesisStream                                                             
	Auto converting value 'hello-world' into JSON '"hello-world"'. If you don't want auto-conversion, please provide
	a JSON string as event                                                                                          
	{
	  "ShardId": "shardId-000000000000",
	  "SequenceNumber": "49646251411914806775980850790050483811301135051202232322"
	}%
```

**Um einen Datensatz zu senden**

1. Geben Sie einen Ressourcen-ID-Wert als Argument für Ihre Kinesis Data Streams Streams-Anwendung an. Informationen zu gültigen Ressourcen finden Sie IDs unter [Ressourcen-ID.](sam-cli-command-reference-remote-invoke.md#sam-cli-command-reference-remote-invoke-args-resource-id)

1. Stellen Sie den Datensatz als Ereignis bereit, das an Ihre Kinesis Data Streams Streams-Anwendung gesendet werden soll. Sie können das Ereignis mit der `--event` Option in der Befehlszeile oder mithilfe von aus einer Datei angeben. `--event-file` Wenn Sie kein Ereignis angeben, AWS SAM CLI sendet das ein leeres Ereignis.

### Verwendung mit Lambda-Funktionen
<a name="using-sam-cli-remote-invoke-use-lambda"></a>

Sie können eine Lambda-Funktion in der Cloud aufrufen und ein leeres Ereignis übergeben oder ein Ereignis in der Befehlszeile oder aus einer Datei bereitstellen. Das ruft AWS SAM CLI Ihre Lambda-Funktion auf und gibt ihre Antwort zurück. Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke HelloWorldFunction --stack-name sam-app

Invoking Lambda Function HelloWorldFunction                                       
START RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9 Version: $LATEST
END RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9
REPORT RequestId: d5ef494b-5f45-4086-86fd-d7322fa1a1f9  Duration: 6.62 ms       Billed Duration: 7 ms     Memory Size: 128 MB     Max Memory Used: 67 MB  Init Duration: 164.06 ms
{"statusCode":200,"body":"{\"message\":\"hello world\"}"}%
```

**Um eine Lambda-Funktion aufzurufen**

1. Geben Sie einen Ressourcen-ID-Wert als Argument für Ihre Lambda-Funktion an. Informationen zu gültigen Ressourcen finden Sie IDs unter [Ressourcen-ID.](sam-cli-command-reference-remote-invoke.md#sam-cli-command-reference-remote-invoke-args-resource-id)

1. Geben Sie ein Ereignis an, das an Ihre Lambda-Funktion gesendet werden soll. Sie können das Ereignis in der Befehlszeile mit der `--event` Option oder aus einer Datei mit `--event-file` angeben. Wenn Sie kein Ereignis angeben, AWS SAM CLI sendet das ein leeres Ereignis.

#### Mit Response-Streaming konfigurierte Lambda-Funktionen
<a name="using-sam-cli-remote-invoke-invoke-stream"></a>

Der `sam remote invoke` Befehl unterstützt Lambda-Funktionen, die für das Streamen von Antworten konfiguriert sind. Sie können eine Lambda-Funktion so konfigurieren, dass sie Antworten streamt, indem Sie die `FunctionUrlConfig` Eigenschaft in Ihren AWS SAM Vorlagen verwenden. Wenn Sie es verwenden`sam remote invoke`, erkennt das AWS SAMCLI automatisch Ihre Lambda-Konfiguration und wird mit Antwort-Streaming aufgerufen.

Ein Beispiel finden Sie unter [Rufen Sie eine Lambda-Funktion auf, die für das Streamen von Antworten konfiguriert ist](#using-sam-cli-remote-invoke-examples-lambda-stream).

#### Übergeben Sie gemeinsam nutzbare Testereignisse an eine Lambda-Funktion in der Cloud
<a name="using-sam-cli-remote-invoke-shareable"></a>

Gemeinsam nutzbare Testereignisse sind Testereignisse, die Sie mit anderen teilen können. AWS-Konto Weitere Informationen finden Sie unter Gemeinsam [nutzbare Testereignisse](https://docs.aws.amazon.com/lambda/latest/dg/testing-functions.html#creating-shareable-events) im *AWS Lambda Entwicklerhandbuch*.

##### Auf gemeinsam nutzbare Testereignisse zugreifen und diese verwalten
<a name="using-sam-cli-remote-invoke-shareable-access"></a>

Sie können den AWS SAM CLI `sam remote test-event` Befehl verwenden, um auf gemeinsam nutzbare Testereignisse zuzugreifen und diese zu verwalten. Sie können ihn beispielsweise für Folgendes verwenden`sam remote test-event`:
+ Rufen Sie gemeinsam nutzbare Testereignisse aus der EventBridge Amazon-Schemaregistry ab.
+ Ändern Sie gemeinsam nutzbare Testereignisse lokal und laden Sie sie in die EventBridge Schemaregistrierung hoch.
+ Löschen Sie gemeinsam nutzbare Testereignisse aus der EventBridge Schemaregistrierung.

Weitere Informationen hierzu finden Sie unter [Einführung in Cloud-Tests mit sam remote test-event](using-sam-cli-remote-test-event.md).

##### Übergeben Sie ein gemeinsam nutzbares Testereignis an eine Lambda-Funktion in der Cloud
<a name="using-sam-cli-remote-invoke-shareable-pass"></a>

Um ein gemeinsam nutzbares Testereignis aus der EventBridge Schemaregistrierung an Ihre Lambda-Funktion in der Cloud zu übergeben, verwenden Sie die `--test-event-name` Option und geben Sie den Namen des gemeinsam nutzbaren Testereignisses an. Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke HelloWorldFunction --stack-name sam-app --test-event-name demo-event
```

Wenn Sie das gemeinsam nutzbare Testereignis lokal speichern, können Sie die `--event-file` Option verwenden und den Dateipfad und den Namen des lokalen Testereignisses angeben. Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke HelloWorldFunction --stack-name sam-app --event-file demo-event.json
```

### Using with Amazon SQS
<a name="using-sam-cli-remote-invoke-use-sqs"></a>

Sie können Nachrichten an Amazon SQS SQS-Warteschlangen senden. Das AWS SAM CLI gibt Folgendes zurück:
+ Nachrichten-ID
+ MD5 des Nachrichtentexts
+ Metadaten der Antwort

 Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke MySqsQueue --stack-name sqs-example -event hello

Sending message to SQS queue MySqsQueue                                                                         
{
  "MD5OfMessageBody": "5d41402abc4b2a76b9719d911017c592",
  "MessageId": "05c7af65-9ae8-4014-ae28-809d6d8ec652"
}%
```

**So senden Sie eine Nachricht**

1. Geben Sie einen Ressourcen-ID-Wert als Argument für die Amazon SQS SQS-Warteschlange an. Informationen zu gültigen Ressourcen finden Sie IDs unter [Ressourcen-ID.](sam-cli-command-reference-remote-invoke.md#sam-cli-command-reference-remote-invoke-args-resource-id)

1. Geben Sie ein Ereignis an, das an Ihre Amazon SQS SQS-Warteschlange gesendet werden soll. Sie können das Ereignis in der Befehlszeile mit der `--event` Option oder aus einer Datei mithilfe `--event-file` von. Wenn Sie kein Ereignis angeben, AWS SAM CLI sendet das ein leeres Ereignis.

### Mit Step-Funktionen verwenden
<a name="using-sam-cli-remote-invoke-use-sf"></a>

Sie können eine Step Functions Functions-Zustandsmaschine aufrufen, um die Ausführung zu starten. Der AWS SAM CLI wartet, bis der State-Machine-Workflow abgeschlossen ist, und gibt eine Ausgabe des letzten Schritts der Ausführung zurück. Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke HelloWorldStateMachine --stack-name state-machine-example --event '{"is_developer": true}'

Invoking Step Function HelloWorldStateMachine                                                                   
"Hello Developer World"%
```

**Um eine Zustandsmaschine aufzurufen**

1. Geben Sie einen Ressourcen-ID-Wert als Argument für die Step Functions Functions-Zustandsmaschine an. Informationen zu einer gültigen Ressource IDs finden Sie unter [Ressourcen-ID](sam-cli-command-reference-remote-invoke.md#sam-cli-command-reference-remote-invoke-args-resource-id).

1. Geben Sie ein Ereignis an, das an Ihre Zustandsmaschine gesendet werden soll. Sie können das Ereignis mit der `--event` Option in der Befehlszeile oder mithilfe von einer Datei bereitstellen`--event-file`. Wenn Sie kein Ereignis angeben, AWS SAM CLI sendet das ein leeres Ereignis.

## Verwenden von Sam Remote Invoke-Befehlsoptionen
<a name="using-sam-cli-remote-invoke-options"></a>

Dieser Abschnitt behandelt einige der wichtigsten Optionen, die Sie mit dem `sam remote invoke` Befehl verwenden können. Eine vollständige Liste der Optionen finden Sie unter[sam remote invoke](sam-cli-command-reference-remote-invoke.md).

### Übergeben Sie ein Ereignis an Ihre Ressource
<a name="using-sam-cli-remote-invoke-options-event"></a>

Verwenden Sie die folgenden Optionen, um Ereignisse an Ihre Ressourcen in der Cloud weiterzuleiten:
+ `--event`— Übergibt ein Ereignis an der Befehlszeile.
+ `--event-file`— Übergibt ein Ereignis aus einer Datei.

#### Beispiele für Lambda
<a name="using-sam-cli-remote-invoke-options-event-lambda-examples"></a>

**Wird verwendet`--event`, um ein Ereignis an der Befehlszeile als Zeichenkettenwert zu übergeben:**

```
$ sam remote invoke HelloWorldFunction --stack-name sam-app --event '{"message": "hello!"}'

Invoking Lambda Function HelloWorldFunction                                                                                                                                                                                                                     
START RequestId: b992292d-1fac-4aa2-922a-c9dc5c6fceab Version: $LATEST
END RequestId: b992292d-1fac-4aa2-922a-c9dc5c6fceab
REPORT RequestId: b992292d-1fac-4aa2-922a-c9dc5c6fceab  Duration: 16.41 ms      Billed Duration: 17 ms  Memory Size: 128 MB     Max Memory Used: 67 MB  Init Duration: 185.96 ms
{"statusCode":200,"body":"{\"message\":\"hello!\"}"}%
```

**Wird verwendet`--event-file`, um ein Ereignis aus einer Datei zu übergeben und den Pfad zur Datei anzugeben:**

```
$ cat event.json
			
{"message": "hello from file"}%    
			
$ sam remote invoke HelloWorldFunction --stack-name sam-app --event-file event.json       

Invoking Lambda Function HelloWorldFunction                                                                                                                                                                                                                     
START RequestId: 3bc71f7d-153a-4b1e-8c9a-901d91b1bec9 Version: $LATEST
END RequestId: 3bc71f7d-153a-4b1e-8c9a-901d91b1bec9
REPORT RequestId: 3bc71f7d-153a-4b1e-8c9a-901d91b1bec9  Duration: 21.15 ms      Billed Duration: 22 ms  Memory Size: 128 MB     Max Memory Used: 67 MB
{"statusCode":200,"body":"{\"message\":\"hello from file\"}"}%
```

**Übergeben Sie ein Ereignis mit`stdin`:**

```
$ cat event.json
			
{"message": "hello from file"}%    
                                                                       
$ cat event.json | sam remote invoke HelloWorldFunction --stack-name sam-app --event-file -

Reading event from stdin (you can also pass it from file with --event-file)                               
Invoking Lambda Function HelloWorldFunction                                                               
START RequestId: 85ecc902-8ad0-4a2b-a8c8-9bb4f65f5a7a Version: $LATEST
END RequestId: 85ecc902-8ad0-4a2b-a8c8-9bb4f65f5a7a
REPORT RequestId: 85ecc902-8ad0-4a2b-a8c8-9bb4f65f5a7a  Duration: 1.36 ms       Billed Duration: 2 ms   Memory Size: 128 MB       Max Memory Used: 67 MB
{"statusCode":200,"body":"{\"message\":\"hello from file\"}"}%
```

### Konfigurieren Sie die AWS SAMCLI Antwortausgabe
<a name="using-sam-cli-remote-invoke-options-output"></a>

Wenn Sie eine unterstützte Ressource mit aufrufen`sam remote invoke`, gibt sie eine Antwort AWS SAMCLI zurück, die Folgendes enthält:
+ **Metadaten anfordern** — Mit der Anfrage verknüpfte Metadaten. Dazu gehören eine Anforderungs-ID und eine Startzeit der Anfrage.
+ **Ressourcenantwort** — Die Antwort Ihrer Ressource nach dem Aufruf in der Cloud.

Sie können die `--output` Option verwenden, um die AWS SAM CLI Ausgabeantwort zu konfigurieren. Die folgenden Optionswerte sind verfügbar:
+ `json`— Metadaten und Ressourcenantwort werden in einer JSON Struktur zurückgegeben. Die Antwort enthält die vollständige SDK Ausgabe.
+ `text`— Metadaten werden in Textstruktur zurückgegeben. Die Ressourcenantwort wird im Ausgabeformat der Ressource zurückgegeben.

Das Folgende ist ein Beispiel für eine `json` Ausgabe:

```
$ sam remote invoke --stack-name sam-app --output json

Invoking Lambda Function HelloWorldFunction                                                                                                                                                                                                                     
{
  "ResponseMetadata": {
    "RequestId": "3bdf9a30-776d-4a90-94a6-4cccc0fc7b41",
    "HTTPStatusCode": 200,
    "HTTPHeaders": {
      "date": "Mon, 19 Jun 2023 17:15:46 GMT",
      "content-type": "application/json",
      "content-length": "57",
      "connection": "keep-alive",
      "x-amzn-requestid": "3bdf9a30-776d-4a90-94a6-4cccc0fc7b41",
      "x-amzn-remapped-content-length": "0",
      "x-amz-executed-version": "$LATEST",
      "x-amz-log-result": "U1RBUlQgUmVxdWVzdElkOiAzYmRmOWEzMC03NzZkLTRhOTAtOTRhNi00Y2NjYzBmYzdiNDEgVmVyc2lvbjogJExBVEVTVApFTkQgUmVxdWVzdElkOiAzYmRmOWEzMC03NzZkLTRhOTAtOTRhNi00Y2NjYzBmYzdiNDEKUkVQT1JUIFJlcXVlc3RJZDogM2JkZjlhMzAtNzc2ZC00YTkwLTk0YTYtNGNjY2MwZmM3YjQxCUR1cmF0aW9uOiA4LjIzIG1zCUJpbGxlZCBEdXJhdGlvbjogOSBtcwlNZW1vcnkgU2l6ZTogMTI4IE1CCU1heCBNZW1vcnkgVXNlZDogNjggTUIJCg==",
      "x-amzn-trace-id": "root=1-64908d42-17dab270273fcc6b527dd6b8;sampled=0;lineage=2301f8dc:0"
    },
    "RetryAttempts": 0
  },
  "StatusCode": 200,
  "LogResult": "U1RBUlQgUmVxdWVzdElkOiAzYmRmOWEzMC03NzZkLTRhOTAtOTRhNi00Y2NjYzBmYzdiNDEgVmVyc2lvbjogJExBVEVTVApFTkQgUmVxdWVzdElkOiAzYmRmOWEzMC03NzZkLTRhOTAtOTRhNi00Y2NjYzBmYzdiNDEKUkVQT1JUIFJlcXVlc3RJZDogM2JkZjlhMzAtNzc2ZC00YTkwLTk0YTYtNGNjY2MwZmM3YjQxCUR1cmF0aW9uOiA4LjIzIG1zCUJpbGxlZCBEdXJhdGlvbjogOSBtcwlNZW1vcnkgU2l6ZTogMTI4IE1CCU1heCBNZW1vcnkgVXNlZDogNjggTUIJCg==",
  "ExecutedVersion": "$LATEST",
  "Payload": "{\"statusCode\":200,\"body\":\"{\\\"message\\\":\\\"hello world\\\"}\"}"
}%
```

Wenn Sie eine `json` Ausgabe angeben, wird die gesamte Antwort zurückgegeben`stdout`. Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke --stack-name sam-app --output json 1> stdout.log

Invoking Lambda Function HelloWorldFunction           
                                                                                                                                                                                                          
$ cat stdout.log
			
{
  "ResponseMetadata": {
    "RequestId": "d30d280f-8188-4372-bc94-ce0f1603b6bb",
    "HTTPStatusCode": 200,
    "HTTPHeaders": {
      "date": "Mon, 19 Jun 2023 17:35:56 GMT",
      "content-type": "application/json",
      "content-length": "57",
      "connection": "keep-alive",
      "x-amzn-requestid": "d30d280f-8188-4372-bc94-ce0f1603b6bb",
      "x-amzn-remapped-content-length": "0",
      "x-amz-executed-version": "$LATEST",
      "x-amz-log-result": "U1RBUlQgUmVxdWVzdElkOiBkMzBkMjgwZi04MTg4LTQzNzItYmM5NC1jZTBmMTYwM2I2YmIgVmVyc2lvbjogJExBVEVTVApFTkQgUmVxdWVzdElkOiBkMzBkMjgwZi04MTg4LTQzNzItYmM5NC1jZTBmMTYwM2I2YmIKUkVQT1JUIFJlcXVlc3RJZDogZDMwZDI4MGYtODE4OC00MzcyLWJjOTQtY2UwZjE2MDNiNmJiCUR1cmF0aW9uOiA0LjE2IG1zCUJpbGxlZCBEdXJhdGlvbjogNSBtcwlNZW1vcnkgU2l6ZTogMTI4IE1CCU1heCBNZW1vcnkgVXNlZDogNjcgTUIJSW5pdCBEdXJhdGlvbjogMTU4LjM5IG1zCQo=",
      "x-amzn-trace-id": "root=1-649091fc-771473c7778689627a6122b7;sampled=0;lineage=2301f8dc:0"
    },
    "RetryAttempts": 0
  },
  "StatusCode": 200,
  "LogResult": "U1RBUlQgUmVxdWVzdElkOiBkMzBkMjgwZi04MTg4LTQzNzItYmM5NC1jZTBmMTYwM2I2YmIgVmVyc2lvbjogJExBVEVTVApFTkQgUmVxdWVzdElkOiBkMzBkMjgwZi04MTg4LTQzNzItYmM5NC1jZTBmMTYwM2I2YmIKUkVQT1JUIFJlcXVlc3RJZDogZDMwZDI4MGYtODE4OC00MzcyLWJjOTQtY2UwZjE2MDNiNmJiCUR1cmF0aW9uOiA0LjE2IG1zCUJpbGxlZCBEdXJhdGlvbjogNSBtcwlNZW1vcnkgU2l6ZTogMTI4IE1CCU1heCBNZW1vcnkgVXNlZDogNjcgTUIJSW5pdCBEdXJhdGlvbjogMTU4LjM5IG1zCQo=",
  "ExecutedVersion": "$LATEST",
  "Payload": "{\"statusCode\":200,\"body\":\"{\\\"message\\\":\\\"hello world\\\"}\"}"
}%
```

Im Folgenden finden Sie ein Beispiel für eine `text` Ausgabe:

```
$ sam remote invoke --stack-name sam-app --output text

Invoking Lambda Function HelloWorldFunction                                                                                                                                                                                                                     
START RequestId: 4dbacc43-1ec6-47c2-982b-9dc4620144d6 Version: $LATEST
END RequestId: 4dbacc43-1ec6-47c2-982b-9dc4620144d6
REPORT RequestId: 4dbacc43-1ec6-47c2-982b-9dc4620144d6  Duration: 9.13 ms       Billed Duration: 10 ms  Memory Size: 128 MB     Max Memory Used: 67 MB  Init Duration: 165.50 ms
{"statusCode":200,"body":"{\"message\":\"hello world\"}"}%
```

Wenn Sie eine `text` Ausgabe angeben, wird die Laufzeitausgabe der Lambda-Funktion (z. B. Logs) zurückgegeben. `stderr` Die Nutzlast der Lambda-Funktion wird zurückgegeben. `stdout` Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke --stack-name sam-app --output text 2> stderr.log

{"statusCode":200,"body":"{\"message\":\"hello world\"}"}% 
                                                                                                                                                                                                     
$ cat stderr.log

Invoking Lambda Function HelloWorldFunction
START RequestId: 82273c3b-aa3a-4d16-8f1c-1d2ad3ace891 Version: $LATEST
END RequestId: 82273c3b-aa3a-4d16-8f1c-1d2ad3ace891
REPORT RequestId: 82273c3b-aa3a-4d16-8f1c-1d2ad3ace891  Duration: 40.62 ms      Billed Duration: 41 ms  Memory Size: 128 MB     Max Memory Used: 68 MB

$ sam remote invoke --stack-name sam-app --output text 1> stdout.log
 
Invoking Lambda Function HelloWorldFunction                                                                                                                                                                                                                     
START RequestId: 74acaa9f-5b80-4a5c-b3b8-ffaccb84cbbd Version: $LATEST
END RequestId: 74acaa9f-5b80-4a5c-b3b8-ffaccb84cbbd
REPORT RequestId: 74acaa9f-5b80-4a5c-b3b8-ffaccb84cbbd  Duration: 2.31 ms       Billed Duration: 3 ms   Memory Size: 128 MB     Max Memory Used: 67 MB

$ cat stdout.log

{"statusCode":200,"body":"{\"message\":\"hello world\"}"}%
```

### Passen Sie die Parameter an Boto3
<a name="using-sam-cli-remote-invoke-options-boto3"></a>

Denn `sam remote invoke` AWS SAM CLI verwendet das AWS SDK for Python (Boto3), um mit Ihren Ressourcen in der Cloud zu interagieren. Sie können die `--parameter` Option verwenden, um Parameter anzupassen. Boto3 Eine Liste der unterstützten Parameter, die Sie anpassen können, finden Sie unter`--parameter`.

#### Beispiele
<a name="using-sam-cli-remote-invoke-options-boto3-examples"></a>

**Rufen Sie eine Lambda-Funktion auf, um Parameterwerte zu validieren und Berechtigungen zu überprüfen:**

```
$ sam remote invoke HelloWorldFunction --stack-name sam-app --parameter InvocationType="DryRun"
```

**Verwenden Sie die `--parameter` Option mehrmals in einem einzigen Befehl, um mehrere Parameter bereitzustellen:**

```
$ sam remote invoke HelloWorldFunction --stack-name sam-app --parameter InvocationType="Event" --parameter LogType="None"
```

### Andere Optionen
<a name="using-sam-cli-remote-invoke-options-other"></a>

Eine vollständige Liste der `sam remote invoke` Optionen finden Sie unter[sam remote invoke](sam-cli-command-reference-remote-invoke.md).

## Konfigurieren Sie Ihre Projektkonfigurationsdatei
<a name="using-sam-cli-remote-invoke-configure"></a>

Um `sam remote invoke` in Ihrer Konfigurationsdatei zu konfigurieren, verwenden Sie `remote_invoke` in Ihrer Tabelle. Im Folgenden finden Sie ein Beispiel für eine `samconfig.toml` Datei, in der Standardwerte für den `sam remote invoke` Befehl konfiguriert werden.

```
...
version =0.1

[default]
...
[default.remote_invoke.parameters]
stack_name = "cloud-app"
event = '{"message": "Hello!"}'
```

## Beispiele
<a name="using-sam-cli-remote-invoke-examples"></a>

Ein grundlegendes Anwendungsbeispiel finden Sie unter [AWS Lambda Funktionen mit AWS SAM Remote testen](https://aws.amazon.com/blogs/compute/testing-aws-lambda-functions-with-aws-sam-remote-invoke/) im *AWS Compute-Blog*. `sam remote invoke`

### Beispiele für Kinesis Data Streams
<a name="using-sam-cli-remote-invoke-examples-kinesis"></a>

#### Grundlegende Beispiele
<a name="using-sam-cli-remote-invoke-examples-kinesis-basic"></a>

**Senden Sie einen Datensatz aus einer Datei an eine Kinesis Data Streams Streams-Anwendung. Die Kinesis Data Streams Streams-Anwendung wird identifiziert, indem ein ARN für die Ressourcen-ID bereitgestellt wird:**

```
$ sam remote invoke arn:aws:kinesis:us-west-2:01234567890:stream/kinesis-example-KinesisStream-BgnLcAey4xUQ --event-file event.json
```

**Senden Sie ein in der Befehlszeile bereitgestelltes Ereignis an eine Kinesis Data Streams Streams-Anwendung:**

```
$ sam remote invoke KinesisStream --stack-name kinesis-example --event hello-world

Putting record to Kinesis data stream KinesisStream                                                             
Auto converting value 'hello-world' into JSON '"hello-world"'. If you don't want auto-conversion, please provide
a JSON string as event                                                                                          
{
  "ShardId": "shardId-000000000000",
  "SequenceNumber": "49646251411914806775980903986194508740483329854174920706"
}%
```

**Rufen Sie die physische ID der Kinesis Data Streams Streams-Anwendung ab. Geben Sie dann ein Ereignis in der Befehlszeile ein:**

```
$ sam list resources --stack-name kinesis-example --output json

[
  {
    "LogicalResourceId": "KinesisStream",
    "PhysicalResourceId": "kinesis-example-KinesisStream-ZgnLcQey4xUQ"
  }
]

$ sam remote invoke kinesis-example-KinesisStream-ZgnLcQey4xUQ --event hello

Putting record to Kinesis data stream KinesisStream                                                             
Auto converting value 'hello' into JSON '"hello"'. If you don't want auto-conversion, please provide a JSON     
string as event                                                                                                 
{
  "ShardId": "shardId-000000000000",
  "SequenceNumber": "49646251411914806775980904340716841045751814812900261890"
}%
```

**Geben Sie in der Befehlszeile eine JSON-Zeichenfolge als Ereignis an:**

```
$ sam remote invoke KinesisStream --stack-name kinesis-example --event '{"method": "GET", "body": ""}'                      

Putting record to Kinesis data stream KinesisStream                                                             
{
  "ShardId": "shardId-000000000000",
  "SequenceNumber": "49646251411914806775980904492868617924990209230536441858"
}%
```

**Senden Sie ein leeres Ereignis an die Kinesis Data Streams Streams-Anwendung:**

```
$ sam remote invoke KinesisStream --stack-name kinesis-example

Putting record to Kinesis data stream KinesisStream                                                             
{
  "ShardId": "shardId-000000000000",
  "SequenceNumber": "49646251411914806775980904866469008589597168190416224258"
}%
```

**Gibt die AWS SAM CLI Antwort im JSON-Format zurück:**

```
$ sam remote invoke KinesisStream --stack-name kinesis-example --event '{"hello": "world"}' --output json

Putting record to Kinesis data stream KinesisStream                                                             
{
  "ShardId": "shardId-000000000000",
  "SequenceNumber": "49646251411914806775980905078409420803696667195489648642",
  "ResponseMetadata": {
    "RequestId": "ebbbd307-3e9f-4431-b67c-f0715e9e353e",
    "HTTPStatusCode": 200,
    "HTTPHeaders": {
      "x-amzn-requestid": "ebbbd307-3e9f-4431-b67c-f0715e9e353e",
      "x-amz-id-2": "Q3yBcgTwtPaQTV26IKclbECmZikUYOzKY+CzcxA84ZHgCkc5T2N/ITWg6RPOQcWw8Gn0tNPcEJBEHyVVqboJAPgCritqsvCu",
      "date": "Thu, 09 Nov 2023 18:13:10 GMT",
      "content-type": "application/x-amz-json-1.1",
      "content-length": "110"
    },
    "RetryAttempts": 0
  }
}%
```

**Geben Sie die JSON-Ausgabe an stdout zurück:**

```
$ sam remote invoke KinesisStream --stack-name kinesis-example --event '{"hello": "world"}' --output json 1> stdout.log

Putting record to Kinesis data stream KinesisStream                                                             

$ cat stdout.log
{
  "ShardId": "shardId-000000000000",
  "SequenceNumber": "49646251411914806775980906397777867595039988349006774274",
  "ResponseMetadata": {
    "RequestId": "f4290006-d84b-b1cd-a9ee-28306eeb2939",
    "HTTPStatusCode": 200,
    "HTTPHeaders": {
      "x-amzn-requestid": "f4290006-d84b-b1cd-a9ee-28306eeb2939",
      "x-amz-id-2": "npCqz+IBKpoL4sQ1ClbUmxuJlbeA24Fx1UgpIrS6mm2NoIeV2qdZSN5AhNurdssykXajBrXaC9anMhj2eG/h7Hnbf+bPuotU",
      "date": "Thu, 09 Nov 2023 18:33:26 GMT",
      "content-type": "application/x-amz-json-1.1",
      "content-length": "110"
    },
    "RetryAttempts": 0
  }
}%
```

### Beispiele für Lambda
<a name="using-sam-cli-remote-invoke-examples-lambda"></a>

#### Grundlegende Beispiele
<a name="using-sam-cli-remote-invoke-examples-lambda-basic"></a>

**Rufen Sie eine Lambda-Funktion auf, indem Sie den ARN als Ressourcen-ID angeben:**

```
$ sam remote invoke arn:aws:lambda:us-west-2:012345678910:function:sam-app-HelloWorldFunction-ohRFEn2RuAvp
```

**Rufen Sie eine Lambda-Funktion auf, indem Sie die logische ID als Ressourcen-ID angeben:**

Sie müssen auch den CloudFormation Stack-Namen mithilfe der `--stack-name` Option angeben. Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke HelloWorldFunction --stack-name sam-app
```

Wenn Ihre Anwendung eine einzelne Lambda-Funktion enthält, müssen Sie deren logische ID nicht angeben. Sie können nur die `--stack-name` Option angeben. Im Folgenden wird ein Beispiel gezeigt:

```
$ sam remote invoke --stack-name sam-app
```

**Rufen Sie eine Lambda-Funktion auf, indem Sie die physische ID als Ressourcen-ID angeben:**

Die physische ID wird erstellt, wenn Sie sie bereitstellen mit. CloudFormation

```
$ sam remote invoke sam-app-HelloWorldFunction-TZvxQRFNv0k4
```

**Rufen Sie eine Lambda-Funktion eines untergeordneten Stacks auf:**

In diesem Beispiel enthält unsere Anwendung die folgende Verzeichnisstruktur:

```
lambda-example
├── childstack
│   ├── function
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   └── template.yaml
├── events
│   └── event.json
├── samconfig.toml
└── template.yaml
```

Um die Lambda-Funktion von our aufzurufen`childstack`, führen wir Folgendes aus:

```
$ sam remote invoke ChildStack/HelloWorldFunction --stack-name lambda-example

Invoking Lambda Function HelloWorldFunction                                                                     
START RequestId: 207a864b-e67c-4307-8478-365b004d4bcd Version: $LATEST
END RequestId: 207a864b-e67c-4307-8478-365b004d4bcd
REPORT RequestId: 207a864b-e67c-4307-8478-365b004d4bcd  Duration: 1.27 ms       Billed Duration: 2 ms   Memory Size: 128 MB     Max Memory Used: 36 MB  Init Duration: 111.07 ms
{"statusCode": 200, "body": "{\"message\": \"Hello\", \"received_event\": {}}"}%
```

#### Rufen Sie eine Lambda-Funktion auf, die für das Streamen von Antworten konfiguriert ist
<a name="using-sam-cli-remote-invoke-examples-lambda-stream"></a>

In diesem Beispiel verwenden wir die, um eine neue serverlose Anwendung AWS SAMCLI zu initialisieren, die eine Lambda-Funktion enthält, die so konfiguriert ist, dass sie ihre Antwort streamt. Wir stellen unsere Anwendung in der Cloud bereit AWS Cloud und verwenden `sam remote invoke` sie, um mit unserer Funktion in der Cloud zu interagieren.

Wir beginnen damit, den `sam init` Befehl auszuführen, um eine neue serverlose Anwendung zu erstellen. Wir wählen die **Lambda Response Streaming-Schnellstartvorlage** aus und geben unserer Anwendung **lambda-streaming-nodejs-app**einen Namen.

```
$ sam init
	
	You can preselect a particular runtime or package type when using the `sam init` experience.
	Call `sam init --help` to learn more.
	
	Which template source would you like to use?
	        1 - AWS Quick Start Templates
	        2 - Custom Template Location
	Choice: 1
	
	Choose an AWS Quick Start application template
	        1 - Hello World Example
	        ...
	        9 - Lambda Response Streaming
	        ...
	        15 - Machine Learning
	Template: 9
	
	Which runtime would you like to use?
	        1 - go (provided.al2)
	        2 - nodejs18.x
	        3 - nodejs16.x
	Runtime: 2
	
	Based on your selections, the only Package type available is Zip.
	We will proceed to selecting the Package type as Zip.
	
	Based on your selections, the only dependency manager available is npm.
	We will proceed copying the template using npm.
	
	Would you like to enable X-Ray tracing on the function(s) in your application?  [y/N]: ENTER
	
	Would you like to enable monitoring using CloudWatch Application Insights?
	For more info, please view https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html [y/N]: ENTER
	
	Project name [sam-app]: lambda-streaming-nodejs-app
	
	    -----------------------
	    Generating application:
	    -----------------------
	    Name: lambda-streaming-nodejs-app
	    Runtime: nodejs18.x
	    Architectures: x86_64
	    Dependency Manager: npm
	    Application Template: response-streaming
	    Output Directory: .
	    Configuration file: lambda-streaming-nodejs-app/samconfig.toml
	    
	    Next steps can be found in the README file at lambda-streaming-nodejs-app/README.md
	        
	
	Commands you can use next
	=========================
	[*] Create pipeline: cd lambda-streaming-nodejs-app && sam pipeline init --bootstrap
	[*] Validate SAM template: cd lambda-streaming-nodejs-app && sam validate
	[*] Test Function in the Cloud: cd lambda-streaming-nodejs-app && sam sync --stack-name {stack-name} --watch
```

Das AWS SAMCLI erstellt unser Projekt mit der folgenden Struktur:

```
lambda-streaming-nodejs-app
	├── README.md
	├── __tests__
	│   └── unit
	│       └── index.test.js
	├── package.json
	├── samconfig.toml
	├── src
	│   └── index.js
	└── template.yaml
```

Das Folgende ist ein Beispiel für unseren Lambda-Funktionscode:

```
exports.handler = awslambda.streamifyResponse(
	  async (event, responseStream, context) => {
	    const httpResponseMetadata = {
	      statusCode: 200,
	      headers: {
	        "Content-Type": "text/html",
	        "X-Custom-Header": "Example-Custom-Header"
	      }
	    };
	
	    responseStream = awslambda.HttpResponseStream.from(responseStream, httpResponseMetadata);
	    // It's recommended to use a `pipeline` over the `write` method for more complex use cases.
	    // Learn more: https://docs.aws.amazon.com/lambda/latest/dg/configuration-response-streaming.html
	    responseStream.write("<html>");
	    responseStream.write("<p>First write!</p>");
	
	    responseStream.write("<h1>Streaming h1</h1>");
	    await new Promise(r => setTimeout(r, 1000));
	    responseStream.write("<h2>Streaming h2</h2>");
	    await new Promise(r => setTimeout(r, 1000));
	    responseStream.write("<h3>Streaming h3</h3>");
	    await new Promise(r => setTimeout(r, 1000));
	
	    // Long strings will be streamed
	    const loremIpsum1 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vitae mi tincidunt tellus ultricies dignissim id et diam. Morbi pharetra eu nisi et finibus. Vivamus diam nulla, vulputate et nisl cursus, pellentesque vehicula libero. Cras imperdiet lorem ante, non posuere dolor sollicitudin a. Vestibulum ipsum lacus, blandit nec augue id, lobortis dictum urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi auctor orci eget tellus aliquam, non maximus massa porta. In diam ante, pulvinar aliquam nisl non, elementum hendrerit sapien. Vestibulum massa nunc, mattis non congue vitae, placerat in quam. Nam vulputate lectus metus, et dignissim erat varius a.";
	    responseStream.write(`<p>${loremIpsum1}</p>`);
	    await new Promise(r => setTimeout(r, 1000));
	
	    responseStream.write("<p>DONE!</p>");
	    responseStream.write("</html>");
	    responseStream.end();
	  }
	);
```

Das Folgende ist ein Beispiel für unsere `template.yaml` Datei. Das Antwort-Streaming für unsere Lambda-Funktion wird mithilfe der `FunctionUrlConfig` Eigenschaft konfiguriert.

```
AWSTemplateFormatVersion: '2010-09-09'
	Transform: AWS::Serverless-2016-10-31
	
	Description: >
	  Sample SAM Template for lambda-streaming-nodejs-app
	  
	Resources:
	  StreamingFunction:
	    Type: AWS::Serverless::Function
	    Properties:
	      CodeUri: src/
	      Handler: index.handler
	      Runtime: nodejs18.x
	      Architectures:
	        - x86_64
	      Timeout: 10
	      FunctionUrlConfig:
	        AuthType: AWS_IAM
	        InvokeMode: RESPONSE_STREAM
	
	Outputs:
	  StreamingFunction:
	    Description: "Streaming Lambda Function ARN"
	    Value: !GetAtt StreamingFunction.Arn
	  StreamingFunctionURL:
	    Description: "Streaming Lambda Function URL"
	    Value: !GetAtt StreamingFunctionUrl.FunctionUrl
```

In der Regel können Sie `sam build` und verwenden`sam deploy --guided`, um eine Produktionsanwendung zu erstellen und bereitzustellen. In diesem Beispiel gehen wir von einer Entwicklungsumgebung aus und verwenden den `sam sync` Befehl, um unsere Anwendung zu erstellen und bereitzustellen.

**Anmerkung**  
Der `sam sync` Befehl wird für Entwicklungsumgebungen empfohlen. Weitere Informationen hierzu finden Sie unter [Einführung in die Verwendung von sam sync to sync to AWS Cloud](using-sam-cli-sync.md).

Vor der Ausführung überprüfen wir`sam sync`, ob unser Projekt in unserer `samconfig.toml` Datei korrekt konfiguriert ist. Am wichtigsten ist, dass wir die Werte für `stack_name` und überprüfen`watch`. Da diese Werte in unserer Konfigurationsdatei angegeben sind, müssen wir sie nicht in der Befehlszeile angeben.

```
version = 0.1
	
	[default]
	[default.global.parameters]
	stack_name = "lambda-streaming-nodejs-app"
	
	[default.build.parameters]
	cached = true
	parallel = true
	
	[default.validate.parameters]
	lint = true
	
	[default.deploy.parameters]
	capabilities = "CAPABILITY_IAM"
	confirm_changeset = true
	resolve_s3 = true
	s3_prefix = "lambda-streaming-nodejs-app"
	region = "us-west-2"
	image_repositories = []
	
	[default.package.parameters]
	resolve_s3 = true
	
	[default.sync.parameters]
	watch = true
	
	[default.local_start_api.parameters]
	warm_containers = "EAGER"
	
	[default.local_start_lambda.parameters]
	warm_containers = "EAGER"
```

Als Nächstes erstellen und implementieren wir unsere Anwendung. `sam sync` Da die `--watch` Option in unserer Konfigurationsdatei konfiguriert ist, AWS SAMCLI wird sie unsere Anwendung erstellen, unsere Anwendung bereitstellen und auf Änderungen achten.

```
$ sam sync
	
	The SAM CLI will use the AWS Lambda, Amazon API Gateway, and AWS StepFunctions APIs to upload your code   
	without                                                                                                   
	performing a CloudFormation deployment. This will cause drift in your CloudFormation stack.               
	**The sync command should only be used against a development stack**.                                     
	                                                                                                          
	Queued infra sync. Waiting for in progress code syncs to complete...                                      
	Starting infra sync.                                                                                      
	Building codeuri:                                                                                         
	/Users/.../lambda-streaming-nodejs-app/src runtime: nodejs18.x metadata: {} architecture: x86_64 functions: StreamingFunction  
	package.json file not found. Continuing the build without dependencies.                                   
	Running NodejsNpmBuilder:CopySource                                                                       
	
	Build Succeeded
	
	Successfully packaged artifacts and wrote output template to file /var/folders/45/5ct135bx3fn2551_ptl5g6_80000gr/T/tmpavrzdhgp.
	Execute the following command to deploy the packaged template
	sam deploy --template-file /var/folders/45/5ct135bx3fn2551_ptl5g6_80000gr/T/tmpavrzdhgp --stack-name <YOUR STACK NAME>
	
	
	        Deploying with following values
	        ===============================
	        Stack name                   : lambda-streaming-nodejs-app
	        Region                       : us-west-2
	        Disable rollback             : False
	        Deployment s3 bucket         : aws-sam-cli-managed-default-samclisam-s3-demo-bucket-1a4x26zbcdkqr
	        Capabilities                 : ["CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"]
	        Parameter overrides          : {}
	        Signing Profiles             : null
	
	Initiating deployment
	=====================
	
	
	2023-06-20 12:11:16 - Waiting for stack create/update to complete
	
	CloudFormation events from stack operations (refresh every 0.5 seconds)
	-----------------------------------------------------------------------------------------------------
	ResourceStatus            ResourceType              LogicalResourceId         ResourceStatusReason    
	-----------------------------------------------------------------------------------------------------
	CREATE_IN_PROGRESS        AWS::CloudFormation::St   lambda-streaming-         Transformation          
	                          ack                       nodejs-app                succeeded               
	CREATE_IN_PROGRESS        AWS::IAM::Role            StreamingFunctionRole     -                       
	CREATE_IN_PROGRESS        AWS::CloudFormation::St   AwsSamAutoDependencyLay   -                       
	                          ack                       erNestedStack                                     
	CREATE_IN_PROGRESS        AWS::IAM::Role            StreamingFunctionRole     Resource creation       
	                                                                              Initiated               
	CREATE_IN_PROGRESS        AWS::CloudFormation::St   AwsSamAutoDependencyLay   Resource creation       
	                          ack                       erNestedStack             Initiated               
	CREATE_COMPLETE           AWS::IAM::Role            StreamingFunctionRole     -                       
	CREATE_COMPLETE           AWS::CloudFormation::St   AwsSamAutoDependencyLay   -                       
	                          ack                       erNestedStack                                     
	CREATE_IN_PROGRESS        AWS::Lambda::Function     StreamingFunction         -                       
	CREATE_IN_PROGRESS        AWS::Lambda::Function     StreamingFunction         Resource creation       
	                                                                              Initiated               
	CREATE_COMPLETE           AWS::Lambda::Function     StreamingFunction         -                       
	CREATE_IN_PROGRESS        AWS::Lambda::Url          StreamingFunctionUrl      -                       
	CREATE_IN_PROGRESS        AWS::Lambda::Url          StreamingFunctionUrl      Resource creation       
	                                                                              Initiated               
	CREATE_COMPLETE           AWS::Lambda::Url          StreamingFunctionUrl      -                       
	CREATE_COMPLETE           AWS::CloudFormation::St   lambda-streaming-         -                       
	                          ack                       nodejs-app                                        
	-----------------------------------------------------------------------------------------------------
	
	CloudFormation outputs from deployed stack
	-------------------------------------------------------------------------------------------------------
	Outputs                                                                                               
	-------------------------------------------------------------------------------------------------------
	Key                 StreamingFunction                                                                 
	Description         Streaming Lambda Function ARN                                                     
	Value               arn:aws:lambda:us-west-2:012345678910:function:lambda-streaming-nodejs-app-       
	StreamingFunction-gUmhO833A0vZ                                                                        
	
	Key                 StreamingFunctionURL                                                              
	Description         Streaming Lambda Function URL                                                     
	Value               https://wxgkcc2dyntgtrwhf2dgdcvylu0rnnof.lambda-url.us-west-2.on.aws/             
	-------------------------------------------------------------------------------------------------------
	
	                                                                                                          
	Stack creation succeeded. Sync infra completed.                                                           
	                                                                                                          
	Infra sync completed.
```

Jetzt, da unsere Funktion in der Cloud bereitgestellt ist, können wir `sam remote invoke` sie verwenden, um mit unserer Funktion zu interagieren. Die erkennt AWS SAMCLI automatisch, dass unsere Funktion für Antwort-Streaming konfiguriert ist, und beginnt sofort mit der Ausgabe einer gestreamten Antwort unserer Funktion in Echtzeit.

```
$ sam remote invoke StreamingFunction
	
	Invoking Lambda Function StreamingFunction                                              
	{"statusCode":200,"headers":{"Content-Type":"text/html","X-Custom-Header":"Example-Custom-Header"}}<html><p>First write!</p><h1>Streaming h1</h1><h2>Streaming h2</h2><h3>Streaming h3</h3><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vitae mi tincidunt tellus ultricies dignissim id et diam. Morbi pharetra eu nisi et finibus. Vivamus diam nulla, vulputate et nisl cursus, pellentesque vehicula libero. Cras imperdiet lorem ante, non posuere dolor sollicitudin a. Vestibulum ipsum lacus, blandit nec augue id, lobortis dictum urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi auctor orci eget tellus aliquam, non maximus massa porta. In diam ante, pulvinar aliquam nisl non, elementum hendrerit sapien. Vestibulum massa nunc, mattis non congue vitae, placerat in quam. Nam vulputate lectus metus, et dignissim erat varius a.</p><p>DONE!</p></html>START RequestId: 1e4cdf04-60de-4769-b3a2-c1481982deb4 Version: $LATEST
	END RequestId: 1e4cdf04-60de-4769-b3a2-c1481982deb4
	REPORT RequestId: 1e4cdf04-60de-4769-b3a2-c1481982deb4  Duration: 4088.66 ms    Billed Duration: 4089 ms        Memory Size: 128 MB     Max Memory Used: 68 MB  Init Duration: 168.45 ms
```

Wenn wir unseren Funktionscode ändern, erkennt der unsere Änderungen AWS SAMCLI sofort und implementiert sie sofort. Hier ist ein Beispiel für die AWS SAMCLI Ausgabe, nachdem Änderungen an unserem Funktionscode vorgenommen wurden:

```
Syncing Lambda Function StreamingFunction...                                             
	Building codeuri:                                                                        
	/Users/.../lambda-streaming-nodejs-app/src runtime: nodejs18.x metadata: {} architecture:    
	x86_64 functions: StreamingFunction                                                      
	package.json file not found. Continuing the build without dependencies.                  
	Running NodejsNpmBuilder:CopySource                                                      
	Finished syncing Lambda Function StreamingFunction.                                      
	Syncing Layer StreamingFunctione9cfe924DepLayer...                                       
	SyncFlow [Layer StreamingFunctione9cfe924DepLayer]: Skipping resource update as the      
	content didn't change                                                                    
	Finished syncing Layer StreamingFunctione9cfe924DepLayer.
```

Wir können es jetzt `sam remote invoke` wieder verwenden, um mit unserer Funktion in der Cloud zu interagieren und unsere Änderungen zu testen.

### SQS-Beispiele
<a name="using-sam-cli-remote-invoke-examples-sqs"></a>

#### Grundlegende Beispiele
<a name="using-sam-cli-remote-invoke-examples-sqs-basic"></a>

**Rufen Sie eine Amazon SQS SQS-Warteschlange auf, indem Sie den ARN als Ressourcen-ID angeben:**

```
$ sam remote invoke arn:aws:sqs:us-west-2:01234567890:sqs-example-4DonhBsjsW1b --event '{"hello": "world"}' --output json

Sending message to SQS queue MySqsQueue                                                                         
{
  "MD5OfMessageBody": "49dfdd54b01cbcd2d2ab5e9e5ee6b9b9",
  "MessageId": "4f464cdd-15ef-4b57-bd72-3ad225d80adc",
  "ResponseMetadata": {
    "RequestId": "95d39377-8323-5ef0-9223-ceb198bd09bd",
    "HTTPStatusCode": 200,
    "HTTPHeaders": {
      "x-amzn-requestid": "95d39377-8323-5ef0-9223-ceb198bd09bd",
      "date": "Wed, 08 Nov 2023 23:27:26 GMT",
      "content-type": "application/x-amz-json-1.0",
      "content-length": "106",
      "connection": "keep-alive"
    },
    "RetryAttempts": 0
  }
}%
```

### Beispiele Step Functions
<a name="using-sam-cli-remote-invoke-examples-sf"></a>

#### Grundlegende Beispiele
<a name="using-sam-cli-remote-invoke-examples-sf-basic"></a>

**Rufen Sie eine Zustandsmaschine auf, indem Sie ihre physische ID als Ressourcen-ID angeben:**

Zuerst verwenden wir, `sam list resources` um unsere physische ID zu erhalten:

```
$ sam list resources --stack-name state-machine-example --output json

[
  {
    "LogicalResourceId": "HelloWorldStateMachine",
    "PhysicalResourceId": "arn:aws:states:us-west-2:513423067560:stateMachine:HelloWorldStateMachine-z69tFEUx0F66"
  },
  {
    "LogicalResourceId": "HelloWorldStateMachineRole",
    "PhysicalResourceId": "simple-state-machine-HelloWorldStateMachineRole-PduA0BDGuFXw"
  }
]
```

Als Nächstes rufen wir unsere Zustandsmaschine auf, wobei wir die physische ID als Ressourcen-ID verwenden. Wir übergeben ein Ereignis an der Befehlszeile mit der `--event` Option:

```
$ sam remote invoke arn:aws:states:us-west-2:01234567890:stateMachine:HelloWorldStateMachine-z69tFEUx0F66 --event '{"is_developer": true}'

Invoking Step Function arn:aws:states:us-west-2:01234567890:stateMachine:HelloWorldStateMachine-z69tFEUx0F66   
"Hello Developer World"%
```

**Rufen Sie eine Zustandsmaschine auf, indem Sie ein leeres Ereignis übergeben:**

```
$ sam remote invoke HelloWorldStateMachine --stack-name state-machine-example

Invoking Step Function HelloWorldStateMachine                                                                   
"Hello World"%
```

## Weiterführende Links
<a name="using-sam-cli-remote-invoke-links"></a>

Dokumentation zu `sam remote invoke` und zur Verwendung von finden Sie im Folgenden: AWS SAMCLI
+ [sam remote invoke](sam-cli-command-reference-remote-invoke.md)
+ [AWS SAMCLIProblembehandlung](sam-cli-troubleshooting.md)