

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.

# Invoke
<a name="API_Invoke"></a>

Invoque une fonction Lambda. Vous pouvez invoquer une fonction de manière synchrone (et attendre la réponse) ou asynchrone. Par défaut, Lambda invoque votre fonction de manière synchrone (c’est-à-dire `InvocationType` est `RequestResponse`). Pour invoquer une fonction de manière asynchrone, définissez la valeur de `InvocationType` sur `Event`. Lambda transmet l’objet `ClientContext` à votre fonction pour les invocations synchrones uniquement.

Pour une [invocation synchrone](https://docs.aws.amazon.com/lambda/latest/dg/invocation-sync.html), des détails sur la réponse de la fonction, y compris les erreurs, sont inclus dans le corps et les en-têtes de la réponse. Pour chaque type d’invocation, vous pouvez trouver des informations supplémentaires dans le [journal d’exécution](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html) et le [suivi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html).

Quand une erreur se produit, votre fonction peut être invoquée plusieurs fois. Le comportement de nouvelle tentative varie en fonction du type d’erreur, du client, de la source d’événement et du type d’invocation. Par exemple, si vous invoquez de manière asynchrone une fonction qui renvoie une erreur, Lambda exécute la fonction jusqu’à deux fois de plus. Pour plus d’informations, consultez [Gestion des erreurs et tentatives automatiques dans Lambda](https://docs.aws.amazon.com/lambda/latest/dg/invocation-retries.html).

Pour une [invocation asynchrone](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), Lambda ajoute des événements à une file d’attente avant de les envoyer à la fonction. Si votre fonction ne dispose pas d’une capacité suffisante pour suivre la file d’attente, il peut arriver que des événements soient perdus. Parfois, votre fonction peut recevoir le même événement plusieurs fois, même si aucune erreur ne se produit. Pour retenir les événements qui n’ont pas été traités, configurez votre fonction avec une [file d’attente de lettres mortes](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq).

Le code d’état dans la réponse de l’API ne reflète pas les erreurs de fonction. Les codes d’erreur sont réservés aux erreurs qui empêchent l’exécution d’une fonction, telles que les erreurs d’autorisation, les erreurs liées au [quota](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html) ou les problèmes de code et de configuration de la fonction. Par exemple, Lambda renvoie `TooManyRequestsException` si l’exécution de la fonction ferait dépasser une limite de simultanéité au niveau du compte (`ConcurrentInvocationLimitExceeded`) ou au niveau de la fonction (`ReservedFunctionConcurrentInvocationLimitExceeded`).

Pour les fonctions avec un long délai d’attente, votre client peut se déconnecter pendant l’invocation synchrone, pendant qu’il attend une réponse. Configurez votre client HTTP, SDK, pare-feu, proxy ou système d’exploitation pour permettre des connexions longues avec des paramètres de délai d’attente ou de keep-alive.

Cette opération nécessite une autorisation pour l'InvokeFunctionaction [lambda :](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html). Pour plus de détails sur la façon de configurer les autorisations pour les invocations intercomptes, consultez [Octroi d’accès intercomptes à la fonction](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-xaccountinvoke).

## Syntaxe de la demande
<a name="API_Invoke_RequestSyntax"></a>

```
POST /2015-03-31/functions/FunctionName/invocations?Qualifier=Qualifier HTTP/1.1
X-Amz-Invocation-Type: InvocationType
X-Amz-Log-Type: LogType
X-Amz-Client-Context: ClientContext

Payload
```

## Paramètres de demande URI
<a name="API_Invoke_RequestParameters"></a>

La demande utilise les paramètres URI suivants.

 ** [ClientContext](#API_Invoke_RequestSyntax) **   <a name="lambda-Invoke-request-ClientContext"></a>
Jusqu’à 3 583 octets de données codées en base 64 sur le client invoquant pour transmettre à la fonction dans l’objet contextuel. Lambda transmet l’objet `ClientContext` à votre fonction pour les invocations synchrones uniquement.

 ** [FunctionName](#API_Invoke_RequestSyntax) **   <a name="lambda-Invoke-request-FunctionName"></a>
Nom de l’alias, de la version ou de la fonction Lambda.  

**Formats de nom**
+  **Nom de la fonction** – `my-function` (nom-uniquement), `my-function:v1` (avec alias).
+  **ARN de fonction** – `arn:aws:lambda:us-west-2:123456789012:function:my-function`.
+  **ARN partiel** – `123456789012:function:my-function`.
Vous pouvez ajouter un numéro de version ou un alias à l’un des formats. Contrainte de longueur qui s’applique uniquement à l’ARN complet. Si vous spécifiez uniquement le nom de la fonction, ce dernier est limité à 64 caractères.  
Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 170.  
Modèle : `(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?`   
Obligatoire : oui

 ** [InvocationType](#API_Invoke_RequestSyntax) **   <a name="lambda-Invoke-request-InvocationType"></a>
Choisissez parmi les options suivantes.  
+  `RequestResponse` (par défaut) – Invoquer la fonction de manière synchrone. Garder la connexion ouverte jusqu’à ce que la fonction renvoie une réponse ou expire. La réponse de l’API inclut la réponse de la fonction et des données supplémentaires.
+  `Event` – Invoquer la fonction de manière asynchrone. Envoyez les événements qui échouent plusieurs fois à la file d’attente de lettres mortes de la fonction (si elle est configurée). La réponse de l’API inclut uniquement un code d’état.
+  `DryRun` – Valider les valeurs des paramètres et vérifier que l’utilisateur ou le rôle possèdent l’autorisation pour invoquer la fonction.
Valeurs valides : `Event | RequestResponse | DryRun` 

 ** [LogType](#API_Invoke_RequestSyntax) **   <a name="lambda-Invoke-request-LogType"></a>
Définissez sur `Tail` pour inclure le journal d’exécution dans la réponse. S’applique uniquement aux fonctions invoquées de manière synchrone.  
Valeurs valides : `None | Tail` 

 ** [Qualifier](#API_Invoke_RequestSyntax) **   <a name="lambda-Invoke-request-Qualifier"></a>
Spécifiez une version ou un alias pour invoquer une version publiée de la fonction.  
Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 128.  
Modèle : `(|[a-zA-Z0-9$_-]+)` 

## Corps de la demande
<a name="API_Invoke_RequestBody"></a>

La demande accepte les données binaires suivantes.

 ** [Payload](#API_Invoke_RequestSyntax) **   <a name="lambda-Invoke-request-Payload"></a>
JSON à fournir à votre fonction Lambda en entrée.  
Vous pouvez saisir directement le format JSON. Par exemple, `--payload '{ "key": "value" }'`. Vous pouvez également spécifier un chemin d’accès au fichier. Par exemple, `--payload file://payload.json`.

## Syntaxe de la réponse
<a name="API_Invoke_ResponseSyntax"></a>

```
HTTP/1.1 StatusCode
X-Amz-Function-Error: FunctionError
X-Amz-Log-Result: LogResult
X-Amz-Executed-Version: ExecutedVersion

Payload
```

## Eléments de réponse
<a name="API_Invoke_ResponseElements"></a>

Si l’action aboutit, le service renvoie la réponse HTTP suivante.

 ** [StatusCode](#API_Invoke_ResponseSyntax) **   <a name="lambda-Invoke-response-StatusCode"></a>
Le code d’état HTTP s’inscrit dans la plage 200 pour une demande réussie. Pour le type d’invocation `RequestResponse`, ce code d’état est 200. Pour le type d’invocation `Event`, ce code d’état est 202. Pour le type d’invocation `DryRun`, le code d’état est 204.

La réponse renvoie les en-têtes HTTP suivants.

 ** [ExecutedVersion](#API_Invoke_ResponseSyntax) **   <a name="lambda-Invoke-response-ExecutedVersion"></a>
Version de la fonction exécutée. Lorsque vous invoquez une fonction avec un alias, cela indique la version résultant de la résolution de l’alias.  
Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 1024.  
Modèle : `(\$LATEST|[0-9]+)` 

 ** [FunctionError](#API_Invoke_ResponseSyntax) **   <a name="lambda-Invoke-response-FunctionError"></a>
Indique qu’une erreur s’est produite lors de l’exécution de la fonction. Les détails sur l’erreur sont inclus dans la charge utile de la réponse.

 ** [LogResult](#API_Invoke_ResponseSyntax) **   <a name="lambda-Invoke-response-LogResult"></a>
4 derniers Ko du journal d’exécution codé en base 64.

La réponse renvoie ce qui suit en tant que corps HTTP.

 ** [Payload](#API_Invoke_ResponseSyntax) **   <a name="lambda-Invoke-response-Payload"></a>
Réponse de la fonction, ou objet erreur.

## Erreurs
<a name="API_Invoke_Errors"></a>

Pour plus d'informations sur les erreurs courantes pour toutes les actions, consultez [Erreurs courantes](CommonErrors.md).

 ** EC2AccessDeniedException **   
Besoin d’autorisations supplémentaires pour configurer les paramètres du VPC.  
Code d’état HTTP : 502

 ** EC2ThrottledException **   
Amazon EC2 a limité AWS Lambda lors de l’initialisation de la fonction Lambda en utilisant le rôle d’exécution fourni pour la fonction.  
Code d’état HTTP : 502

 ** EC2UnexpectedException **   
 AWS Lambda a reçu une exception client Amazon EC2 inattendue lors de la configuration de la fonction Lambda.  
Code d’état HTTP : 502

 ** EFSIOException **   
Une erreur s’est produite lors de la lecture d’un système de fichiers connecté, ou lors de l’écriture sur celui-ci.  
Code d’état HTTP : 410

 ** EFSMountConnectivityException **   
La fonction Lambda n’a pas pu établir une connexion réseau au système de fichiers configuré.  
Code d’état HTTP : 408

 ** EFSMountFailureException **   
La fonction Lambda n’a pas pu monter le système de fichiers configuré en raison d’un problème d’autorisation ou de configuration.  
Code d’état HTTP : 403

 ** EFSMountTimeoutException **   
La fonction Lambda a établi une connexion réseau avec le système de fichiers configuré, mais l’opération de montage a été interrompue.  
Code d’état HTTP : 408

 ** ENILimitReachedException **   
 AWS Lambda n’a pas pu créer une interface réseau Elastic dans le VPC, spécifié comme faisant partie de la configuration de la fonction Lambda, car la limite des interfaces réseau a été atteinte. Pour plus d’informations, consultez [Quotas Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).  
Code d’état HTTP : 502

 ** InvalidParameterValueException **   
L’un des paramètres dans la demande n’est pas valide.  
Code d’état HTTP : 400

 ** InvalidRequestContentException **   
Le corps de la demande n’a pas pu être analysé en tant que JSON.  
Code d’état HTTP : 400

 ** InvalidRuntimeException **   
L’exécution ou la version d’exécution spécifiée n’est pas prise en charge.  
Code d’état HTTP : 502

 ** InvalidSecurityGroupIDException **   
L’ID de groupe de sécurité spécifié dans la configuration VPC de la fonction Lambda n’est pas valide.  
Code d’état HTTP : 502

 ** InvalidSubnetIDException **   
L’ID de sous-réseau spécifié dans la configuration VPC de la fonction Lambda n’est pas valide.  
Code d’état HTTP : 502

 ** InvalidZipFileException **   
 AWS Lambda n’est pas parvenu à décompresser le package de déploiement.  
Code d’état HTTP : 502

 ** KMSAccessDeniedException **   
Lambda n’a pas pu déchiffrer les variables d’environnement, car l’accès AWS KMS a été refusé. Vérifiez les autorisations KMS de la fonction Lambda.  
Code d’état HTTP : 502

 ** KMSDisabledException **   
Lambda n’a pas pu déchiffrer les variables d’environnement, car le AWS KMS key utilisé est désactivé. Vérifiez les paramètres de clé KMS de la fonction Lambda.  
Code d’état HTTP : 502

 ** KMSInvalidStateException **   
Lambda n’a pas pu déchiffrer les variables d’environnement, car l’état du AWS KMS key utilisé n’est pas valide pour le déchiffrage. Vérifiez les paramètres de clé KMS de la fonction.  
Code d’état HTTP : 502

 ** KMSNotFoundException **   
Lambda n’a pas pu déchiffrer les variables d’environnement, car le AWS KMS key utilisé n’a pas été trouvé. Vérifiez les paramètres de clé KMS de la fonction.  
Code d’état HTTP : 502

 ** RecursiveInvocationException **   
Lambda a détecté que votre fonction était invoquée dans une boucle récursive avec d’autres ressources AWS et a arrêté l’invocation de votre fonction.  
Code d’état HTTP : 400

 ** RequestTooLargeException **   
La charge utile de la demande dépassait le quota d’entrée JSON de corps de demande `Invoke`. Pour plus d’informations, consultez [Quotas Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).  
Code d’état HTTP : 413

 ** ResourceConflictException **   
La ressource existe déjà ou une autre opération est en cours.  
Code d’état HTTP : 409

 ** ResourceNotFoundException **   
La ressource spécifiée dans la demande n’existe pas.  
Code d’état HTTP : 404

 ** ResourceNotReadyException **   
La fonction est inactive et sa connexion VPC n’est plus disponible. Attendez que la connexion VPC soit rétablie, puis réessayez.  
Code d’état HTTP : 502

 ** ServiceException **   
Le service AWS Lambda a rencontré une erreur interne.  
Code d’état HTTP : 500

 ** SnapStartException **   
Le [hook d’exécution](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-runtime-hooks.html) `afterRestore()` a rencontré une erreur. Pour plus d'informations, consultez les CloudWatch journaux Amazon.  
Code d’état HTTP : 400

 ** SnapStartNotReadyException **   
Lambda est en train d’initialiser votre fonction. Vous pouvez invoquer la fonction lorsque l’[état de la fonction](https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html) devient `Active`.  
Code d’état HTTP : 409

 ** SnapStartTimeoutException **   
Lambda n’a pas pu restaurer l’instantané dans le délai imparti.  
Code d’état HTTP : 408

 ** SubnetIPAddressLimitReachedException **   
 AWS Lambda n’a pas pu configurer l’accès VPC pour la fonction Lambda, car un ou plusieurs sous-réseaux configurés n’ont pas d’adresse IP disponible.  
Code d’état HTTP : 502

 ** TooManyRequestsException **   
La limite de débit de demande a été dépassée. Pour plus d’informations, consultez [Quotas Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).  
Code d’état HTTP : 429

 ** UnsupportedMediaTypeException **   
Le type de contenu du corps de la demande `Invoke` n’est pas JSON.  
Code d’état HTTP : 415

## consultez aussi
<a name="API_Invoke_SeeAlso"></a>

Pour plus d’informations sur l’utilisation de cette API dans l’un des kits SDK AWS spécifiques au langage, consultez les ressources suivantes :
+  [Interface de ligne de commande AWS](https://docs.aws.amazon.com/goto/aws-cli/lambda-2015-03-31/Invoke) 
+  [AWS SDK pour .NET](https://docs.aws.amazon.com/goto/DotNetSDKV3/lambda-2015-03-31/Invoke) 
+  [Kit AWS SDK pour C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/lambda-2015-03-31/Invoke) 
+  [Kit AWS SDK pour Go](https://docs.aws.amazon.com/goto/SdkForGoV1/lambda-2015-03-31/Invoke) 
+  [Kit SDK AWS pour Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/lambda-2015-03-31/Invoke) 
+  [AWSSDK pour V3 JavaScript ](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/lambda-2015-03-31/Invoke) 
+  [Kit AWS SDK pour PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/lambda-2015-03-31/Invoke) 
+  [Kit AWS SDK pour Python](https://docs.aws.amazon.com/goto/boto3/lambda-2015-03-31/Invoke) 
+  [Kit SDK AWS pour Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/lambda-2015-03-31/Invoke) 