

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Présentation des tests dans le cloud avec sam remote invoke
<a name="using-sam-cli-remote-invoke"></a>

Utilisez la AWS Serverless Application Model commande Command Line Interface (AWS SAM CLI) `sam remote invoke` pour interagir avec les AWS ressources prises en charge dans le AWS Cloud. Vous pouvez utiliser `sam remote invoke` pour appeler les ressources suivantes :
+ **Amazon Kinesis Data** Streams : envoyez des enregistrements de données aux applications Kinesis Data Streams.
+ **AWS Lambda**— Invoquez et transmettez des événements à vos fonctions Lambda.
+ **Amazon Simple Queue Service (Amazon SQS**) — Envoyez des messages aux files d'attente Amazon SQS.
+ **AWS Step Functions**— Invoquez les machines d'état Step Functions pour démarrer l'exécution.

Pour une introduction à la AWS SAMCLI, voir [Qu'est-ce que c'est AWS SAMCLI ?](what-is-sam-overview.md#what-is-sam-cli)

Pour un exemple d'utilisation de `sam remote invoke` dans le cadre d'un flux de travail de développement classique, consultez [Étape 5 : Interagissez avec votre fonction dans AWS Cloud](serverless-getting-started-hello-world.md#serverless-getting-started-hello-world-remote-invoke).

**Topics**
+ [Utilisation de la même commande d'invocation à distance](#using-sam-cli-remote-invoke-use)
+ [Utilisation des options de commande sam remote invoke](#using-sam-cli-remote-invoke-options)
+ [Configurez le fichier de configuration de votre projet](#using-sam-cli-remote-invoke-configure)
+ [Exemples](#using-sam-cli-remote-invoke-examples)
+ [Liens connexes](#using-sam-cli-remote-invoke-links)

## Conditions préalables
<a name="using-sam-cli-remote-invoke-prerequisites"></a>

Pour utiliser `sam remote invoke`, installez la CLI AWS SAM en procédant comme suit :
+ [AWS SAM prérequis](prerequisites.md).
+ [Installer la CLI  AWS SAM](install-sam-cli.md).

Nous vous recommandons également de passer à la dernière version du AWS SAMCLI. Pour en savoir plus, veuillez consulter la section [Mise à niveau de la CLI  AWS SAM en cours](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade).

Avant d'utiliser `sam remote invoke`, nous vous recommandons d'avoir des connaissances de base sur les points suivants :
+ [Configuration de la CLI  AWS SAM](using-sam-cli-configure.md).
+ [Créez votre application dans AWS SAM](using-sam-cli-init.md).
+ [Initiation à la construction avec AWS SAM](using-sam-cli-build.md).
+ [Présentation du déploiement avec AWS SAM](using-sam-cli-deploy.md).
+ [Présentation de l'utilisation sam sync de la synchronisation avec AWS Cloud](using-sam-cli-sync.md).

## Utilisation de la même commande d'invocation à distance
<a name="using-sam-cli-remote-invoke-use"></a>

Avant d'utiliser cette commande, votre ressource doit être déployée sur  AWS Cloud.

Utilisez la structure de commande suivante et exécutez-la à partir du répertoire racine de votre projet :

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

**Note**  
Cette page affiche les options proposées à l'invite de commande. Vous pouvez également configurer les options dans le fichier de configuration de votre projet au lieu de les transmettre à l'invite de commandes. Pour en savoir plus, consultez [Configuration des paramètres de projet](using-sam-cli-configure.md#using-sam-cli-configure-project).

Pour une description des `sam remote invoke` arguments et des options, consultez[sam remote invoke](sam-cli-command-reference-remote-invoke.md).

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

Vous pouvez envoyer des enregistrements de données à une application Kinesis Data Streams. Il AWS SAM CLI enverra votre enregistrement de données et renverra un identifiant de partition et un numéro de séquence. Voici un exemple :

```
$ 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"
	}%
```

**Pour envoyer un enregistrement de données**

1. Entrez une valeur d'ID de ressource comme argument pour votre application Kinesis Data Streams. Pour plus d'informations sur une ressource valide IDs, consultez la section [Identifiant de ressource](sam-cli-command-reference-remote-invoke.md#sam-cli-command-reference-remote-invoke-args-resource-id).

1. Fournissez l'enregistrement de données sous forme d'événement à envoyer à votre application Kinesis Data Streams. Vous pouvez fournir l'événement sur la ligne de commande à l'aide de l'`--event`option, ou à partir d'un fichier à l'aide de`--event-file`. Si vous ne fournissez aucun événement, AWS SAM CLI envoie un événement vide.

### Utilisation avec les fonctions Lambda
<a name="using-sam-cli-remote-invoke-use-lambda"></a>

Vous pouvez appeler une fonction Lambda dans le cloud et transmettre un événement vide ou fournir un événement sur la ligne de commande ou à partir d'un fichier. Il AWS SAM CLI invoquera votre fonction Lambda et renverra sa réponse. Voici un exemple :

```
$ 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\"}"}%
```

**Pour appeler une fonction Lambda**

1. Fournissez une valeur d'ID de ressource comme argument pour votre fonction Lambda. Pour plus d'informations sur une ressource valide IDs, consultez la section [Identifiant de ressource](sam-cli-command-reference-remote-invoke.md#sam-cli-command-reference-remote-invoke-args-resource-id).

1. Fournissez un événement à envoyer à votre fonction Lambda. Vous pouvez fournir l'événement sur la ligne de commande à l'aide de l'`--event`option, ou à partir d'un fichier à l'aide de`--event-file`. Si vous ne fournissez aucun événement, AWS SAM CLI envoie un événement vide.

#### Fonctions Lambda configurées avec le streaming de réponses
<a name="using-sam-cli-remote-invoke-invoke-stream"></a>

La commande `sam remote invoke` prend en charge les fonctions Lambda configurées pour diffuser les réponses. Vous pouvez configurer une fonction Lambda pour diffuser les réponses à l'aide de la `FunctionUrlConfig` propriété de vos AWS SAM modèles. Lorsque vous utilisez `sam remote invoke`, la CLI  AWS SAM détecte automatiquement votre configuration Lambda et l'invoque avec le streaming des réponses.

Pour obtenir un exemple, consultez [Configuration d'une fonction Lambda pour le streaming des réponses](#using-sam-cli-remote-invoke-examples-lambda-stream).

#### Transmettre des événements de test partageables à une fonction Lambda dans le cloud
<a name="using-sam-cli-remote-invoke-shareable"></a>

Les événements de test partageables sont des événements de test que vous pouvez partager avec d'autres personnes dans le même Compte AWS. Pour en savoir plus, consultez la rubrique relative aux [événements de test partageables](https://docs.aws.amazon.com/lambda/latest/dg/testing-functions.html#creating-shareable-events) dans le *Guide du développeur AWS Lambda *.

##### Accès et gestion des événements de test partageables
<a name="using-sam-cli-remote-invoke-shareable-access"></a>

Vous pouvez utiliser la AWS SAM CLI `sam remote test-event` commande pour accéder aux événements de test partageables et les gérer. Par exemple, vous pouvez utiliser `sam remote test-event` pour effectuer les opérations suivantes :
+ Récupérez les événements de test partageables depuis le registre des EventBridge schémas Amazon.
+ Modifiez les événements de test partageables localement et téléchargez-les dans le registre des EventBridge schémas.
+ Supprimez les événements de test partageables du registre des EventBridge schémas.

Pour en savoir plus, veuillez consulter la section [Présentation des tests dans le cloud avec sam remote test-event](using-sam-cli-remote-test-event.md).

##### Transmettre un événement de test partageable à une fonction Lambda dans le cloud
<a name="using-sam-cli-remote-invoke-shareable-pass"></a>

Pour transmettre un événement de test partageable du registre de EventBridge schémas à votre fonction Lambda dans le cloud, utilisez l'option et `--test-event-name` indiquez le nom de l'événement de test partageable. Voici un exemple :

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

Si vous enregistrez l'événement de test partageable localement, vous pouvez utiliser l'option `--event-file` et fournir le chemin et le nom du fichier de l'événement de test local. Voici un exemple :

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

### Utilisation d’ avec Amazon SQS
<a name="using-sam-cli-remote-invoke-use-sqs"></a>

Vous pouvez envoyer des messages aux files d'attente Amazon SQS. Le résultat AWS SAM CLI renvoie ce qui suit :
+ ID de message
+ MD5 du corps du message
+ Métadonnées de réponse

 Voici un exemple :

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

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

**Pour envoyer un message**

1. Fournissez une valeur d'ID de ressource comme argument pour la file d'attente Amazon SQS. Pour plus d'informations sur une ressource valide IDs, consultez la section [Identifiant de ressource](sam-cli-command-reference-remote-invoke.md#sam-cli-command-reference-remote-invoke-args-resource-id).

1. Indiquez un événement à envoyer à votre file d'attente Amazon SQS. Vous pouvez fournir l'événement sur la ligne de commande à l'aide de l'`--event`option, ou à partir d'un fichier à l'aide de`--event-file`. Si vous ne fournissez aucun événement, AWS SAM CLI envoie un événement vide.

### Utilisation avec Step Functions
<a name="using-sam-cli-remote-invoke-use-sf"></a>

Vous pouvez appeler une machine d'état Step Functions pour démarrer l'exécution. AWS SAM CLIAttendra que le flux de travail de la machine à états soit terminé et renverra un résultat de la dernière étape de l'exécution. Voici un exemple :

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

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

**Pour invoquer une machine à états**

1. Fournissez une valeur d'ID de ressource comme argument pour la machine d'état Step Functions. Pour plus d'informations sur une ressource valide IDs, consultez la section [Identifiant de ressource](sam-cli-command-reference-remote-invoke.md#sam-cli-command-reference-remote-invoke-args-resource-id).

1. Fournissez un événement à envoyer à votre machine d'état. Vous pouvez fournir l'événement sur la ligne de commande à l'aide de l'`--event`option, ou à partir d'un fichier à l'aide de`--event-file`. Si vous ne fournissez aucun événement, AWS SAM CLI envoie un événement vide.

## Utilisation des options de commande sam remote invoke
<a name="using-sam-cli-remote-invoke-options"></a>

Cette section décrit certaines des principales options que vous pouvez utiliser avec la `sam remote invoke` commande. Pour une liste complète des options, voir[sam remote invoke](sam-cli-command-reference-remote-invoke.md).

### Transférez un événement à votre ressource
<a name="using-sam-cli-remote-invoke-options-event"></a>

Utilisez les options suivantes pour transmettre des événements à vos ressources dans le cloud :
+ `--event`— Passez un événement sur la ligne de commande.
+ `--event-file`— Transmet un événement depuis un fichier.

#### Exemples Lambda
<a name="using-sam-cli-remote-invoke-options-event-lambda-examples"></a>

**`--event`À utiliser pour transmettre un événement sur la ligne de commande sous forme de valeur de chaîne :**

```
$ 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!\"}"}%
```

**`--event-file`À utiliser pour transmettre un événement depuis un fichier et fournir le chemin d'accès au fichier :**

```
$ 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\"}"}%
```

**Réussissez un événement en utilisant `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\"}"}%
```

### Configuration de la sortie de AWS SAMCLI réponse
<a name="using-sam-cli-remote-invoke-options-output"></a>

Lorsque vous invoquez une ressource prise en charge avec`sam remote invoke`, le AWS SAMCLI renvoie une réponse contenant les éléments suivants :
+ **Métadonnées de la demande** : métadonnées associées à la demande. Cela inclut un ID de demande et l'heure de début de la demande.
+ **Réponse de la ressource** : réponse de votre ressource après avoir été invoquée dans le cloud.

Vous pouvez utiliser `--output` cette option pour configurer la réponse AWS SAM CLI de sortie. Les valeurs suivantes sont disponibles avec :
+ `json`— Les métadonnées et la réponse aux ressources sont renvoyées dans une JSON structure. La réponse contient le résultat complet SDK.
+ `text`— Les métadonnées sont renvoyées sous forme de structure de texte. La réponse de la ressource est renvoyée dans le format de sortie de la ressource.

Voici un exemple de résultat `json` :

```
$ 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\\\"}\"}"
}%
```

Lorsque vous spécifiez un résultat `json`, la réponse complète est renvoyée à `stdout`. Voici un exemple :

```
$ 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\\\"}\"}"
}%
```

Voici un exemple de résultat `text` :

```
$ 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\"}"}%
```

Lorsque vous spécifiez un résultat `text`, la sortie d'exécution de la fonction Lambda (par exemple, les journaux) est renvoyée vers `stderr`. La charge utile de la fonction Lambda est renvoyée à `stdout`. Voici un exemple :

```
$ 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\"}"}%
```

### Personnaliser les paramètres Boto3
<a name="using-sam-cli-remote-invoke-options-boto3"></a>

En `sam remote invoke` effet, il AWS SAM CLI utilise le AWS SDK pour Python (Boto3) afin d'interagir avec vos ressources dans le cloud. Vous pouvez utiliser l’option `--parameter` pour personnaliser les paramètres Boto3. Pour obtenir la liste des paramètres pris en charge que vous pouvez personnaliser, reportez-vous à la section `--parameter`.

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

**Appelez une fonction Lambda pour valider les valeurs des paramètres et vérifier les autorisations :**

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

**Utilisez l'`--parameter`option plusieurs fois dans une seule commande pour fournir plusieurs paramètres :**

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

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

Pour obtenir la liste complète des options `sam remote invoke`, consultez la section [sam remote invoke](sam-cli-command-reference-remote-invoke.md).

## Configurez le fichier de configuration de votre projet
<a name="using-sam-cli-remote-invoke-configure"></a>

Pour configurer `sam remote invoke` dans votre fichier de configuration, utilisez `remote_invoke` dans votre tableau. Voici un exemple de fichier `samconfig.toml` qui configure les valeurs par défaut de la commande `sam remote invoke`.

```
...
version =0.1

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

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

Pour un exemple d'utilisation de base`sam remote invoke`, consultez la section [Tester des AWS Lambda fonctions AWS SAM à distance](https://aws.amazon.com/blogs/compute/testing-aws-lambda-functions-with-aws-sam-remote-invoke/) dans le *AWS Compute Blog*.

### Exemples de Kinesis Data Streams
<a name="using-sam-cli-remote-invoke-examples-kinesis"></a>

#### Exemples de base
<a name="using-sam-cli-remote-invoke-examples-kinesis-basic"></a>

**Envoyez un enregistrement de données à une application Kinesis Data Streams à partir d'un fichier. L'application Kinesis Data Streams est identifiée en fournissant un ARN pour l'ID de ressource :**

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

**Envoyez un événement fourni sur la ligne de commande à une application Kinesis Data Streams :**

```
$ 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"
}%
```

**Obtenez l'identifiant physique de l'application Kinesis Data Streams. Indiquez ensuite un événement sur la ligne de commande :**

```
$ 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"
}%
```

**Fournissez une chaîne JSON sur la ligne de commande en tant qu'événement :**

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

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

**Envoyez un événement vide à l'application Kinesis Data Streams :**

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

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

**Renvoie la AWS SAM CLI réponse au format JSON :**

```
$ 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
  }
}%
```

**Renvoyez la sortie JSON à stdout :**

```
$ 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
  }
}%
```

### Exemples Lambda
<a name="using-sam-cli-remote-invoke-examples-lambda"></a>

#### Exemples de base
<a name="using-sam-cli-remote-invoke-examples-lambda-basic"></a>

**Invoquez une fonction Lambda en fournissant l'ARN comme ID de ressource :**

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

**Invoquez une fonction Lambda en fournissant l'identifiant logique en tant qu'ID de ressource :**

Vous devez également fournir le nom de la CloudFormation pile à l'aide de l'`--stack-name`option. Voici un exemple :

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

Si votre application contient une seule fonction Lambda, vous n'avez pas à spécifier son ID logique. Vous pouvez uniquement fournir l’option `--stack-name`. Voici un exemple :

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

**Invoquez une fonction Lambda en fournissant l'identifiant physique en tant qu'identifiant de ressource :**

L'identifiant physique est créé lorsque vous déployez à l'aide de CloudFormation.

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

**Invoquez une fonction Lambda d'une pile enfant :**

Pour cet exemple, notre application contient la structure de répertoires suivante :

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

Pour appeler la fonction Lambda de notre`childstack`, nous exécutons ce qui suit :

```
$ 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\": {}}"}%
```

#### Configuration d'une fonction Lambda pour le streaming des réponses
<a name="using-sam-cli-remote-invoke-examples-lambda-stream"></a>

Dans cet exemple, nous utilisons la CLI  AWS SAM pour initialiser une nouvelle application sans serveur qui contient une fonction Lambda configurée pour diffuser sa réponse. Nous déployons notre application sur le AWS Cloud et l'utilisons `sam remote invoke` pour interagir avec notre fonction dans le cloud.

Nous commençons par exécuter la commande `sam init` pour créer une nouvelle application sans serveur. Nous sélectionnons le modèle de démarrage rapide **Lambda Response Streaming** et nommons notre application. **lambda-streaming-nodejs-app**

```
$ 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
```

 AWS SAMCLICela crée notre projet avec la structure suivante :

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

Voici un exemple de code de fonction Lambda :

```
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();
	  }
	);
```

Voici un exemple de fichier `template.yaml`. Le streaming des réponses pour notre fonction Lambda est configuré à l'aide de la propriété `FunctionUrlConfig`.

```
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
```

Généralement, vous pouvez utiliser `sam build` et `sam deploy --guided` pour créer et déployer une application de production. Dans cet exemple, nous allons utiliser un environnement de développement et utiliser la `sam sync` commande pour créer et déployer notre application.

**Note**  
La commande `sam sync` est recommandée pour les environnements de développement. Pour en savoir plus, veuillez consulter la section [Présentation de l'utilisation sam sync de la synchronisation avec AWS Cloud](using-sam-cli-sync.md).

Avant de lancer `sam sync`, nous vérifions que notre projet est correctement configuré dans notre fichier `samconfig.toml`. Plus important encore, nous vérifions les valeurs de `stack_name` et `watch`. Ces valeurs étant spécifiées dans notre fichier de configuration, nous n'avons pas à les fournir sur la ligne de commande.

```
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"
```

Ensuite, nous exécutons `sam sync` pour déployer notre application. Comme l'option `--watch` est configurée dans notre fichier de configuration, la CLI  AWS SAM créera notre application, la déploiera et surveillera les modifications.

```
$ 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.
```

Maintenant que notre fonction est déployée dans le cloud, nous pouvons utiliser `sam remote invoke` pour interagir avec notre fonction. La CLI  AWS SAM détecte automatiquement que notre fonction est configurée pour le streaming des réponses et commence immédiatement à générer une réponse diffusée de notre fonction en temps réel.

```
$ 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
```

Lorsque nous modifions notre code de fonction, la CLI  AWS SAM détecte et déploie instantanément nos modifications. Voici un exemple de réponse générée par la CLI  AWS SAM après que des modifications ont été apportées à notre code de fonction :

```
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.
```

Nous pouvons à présent utiliser `sam remote invoke` à nouveau pour interagir avec notre fonction dans le cloud et tester nos modifications.

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

#### Exemples de base
<a name="using-sam-cli-remote-invoke-examples-sqs-basic"></a>

**Appelez une file d'attente Amazon SQS en fournissant l'ARN comme ID de ressource :**

```
$ 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
  }
}%
```

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

#### Exemples de base
<a name="using-sam-cli-remote-invoke-examples-sf-basic"></a>

**Invoquez une machine à états en fournissant son identifiant physique en tant qu'identifiant de ressource :**

Tout d'abord, nous utilisons `sam list resources` pour obtenir notre identifiant physique :

```
$ 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"
  }
]
```

Ensuite, nous invoquons notre machine à états en utilisant l'identifiant physique comme identifiant de ressource. Nous transmettons un événement en ligne de commande avec l'`--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"%
```

**Invoquez une machine à états en transmettant un événement vide :**

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

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

## Liens connexes
<a name="using-sam-cli-remote-invoke-links"></a>

Pour la documentation relative à `sam remote invoke` et à l'utilisation du AWS SAMCLI, consultez les rubriques suivantes :
+ [sam remote invoke](sam-cli-command-reference-remote-invoke.md)
+ [Résolution des problèmes de la CLI AWS SAM](sam-cli-troubleshooting.md)