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
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, 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 et le suivi.
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.
Pour une invocation asynchrone, 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.
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 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 :. 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.
Syntaxe de la demande
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
La demande utilise les paramètres URI suivants.
- ClientContext
-
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
-
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
-
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
-
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
-
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
La demande accepte les données binaires suivantes.
- Payload
-
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
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
Si l’action aboutit, le service renvoie la réponse HTTP suivante.
- StatusCode
-
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’invocationEvent
, ce code d’état est 202. Pour le type d’invocationDryRun
, le code d’état est 204.
La réponse renvoie les en-têtes HTTP suivants.
- ExecutedVersion
-
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
-
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
-
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
-
Réponse de la fonction, ou objet erreur.
Erreurs
Pour plus d'informations sur les erreurs courantes pour toutes les actions, consultez Erreurs courantes.
- 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.
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.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
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 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.
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
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 :