CreateFunction - AWS Lambda

CreateFunction

Crée une fonction Lambda Pour créer une fonction, vous avez besoin d’un package de déploiement et d’un rôle d’exécution. Le package de déploiement est une archive de fichier .zip ou une image conteneur contenant votre code de fonction. Le rôle d’exécution accorde à la fonction l’autorisation d’utiliser des services AWS, tels qu’Amazon CloudWatch Logs pour la diffusion des journaux, et X-Ray pour le suivi des demandes.

Vous définissez le type de package sur Image si le package de déploiement est une image de conteneur. Pour une image de conteneur, la propriété code doit inclure l’URI d’une image de conteneur dans le registre Amazon ECR. Vous n’avez pas besoin de spécifier le gestionnaire et les propriétés d’exécution.

Vous définissez le type de package sur Zip si le package de déploiement est une archive de fichier .zip. Pour une archive de fichier .zip, la propriété code spécifie l’emplacement du fichier .zip. Vous devez également spécifier le gestionnaire et les propriétés d’exécution. Le code du package de déploiement doit être compatible avec l’architecture de l’ensemble des instructions cible de la fonction (x86-64 ou arm64). Si vous ne spécifiez pas l’architecture, la valeur par défaut est x86-64.

Lorsque vous créez une fonction, Lambda approvisionne une instance de la fonction et ses ressources associées. Si votre fonction se connecte à un VPC, ce processus peut prendre environ une minute. Pendant ce temps, vous ne pouvez ni appeler ni modifier la fonction. Les champs State, StateReason et StateReasonCode dans la réponse de GetFunctionConfiguration indiquent quand la fonction est prête pour être appelée. Pour plus d’informations, consultez la section États de fonction.

Une fonction a une version non publiée et peut avoir des versions et des alias publiés. La version non publiée change quand vous mettez à jour le code et la configuration de votre fonction. Une version publiée est un instantané de votre code de fonction et de votre configuration, qui ne peut pas être modifié. Un alias est une ressource nommée qui mappe à une version, et peut être modifiée pour mapper à une version différente. Utilisez le paramètre Publish pour créer une version 1 de votre fonction à partir de sa configuration initiale.

Les autres paramètres vous permettent de configurer des paramètres spécifiques de la version et au niveau de la fonction. Vous pourrez modifier les paramètres spécifiques de la version ultérieurement avec UpdateFunctionConfiguration. Les paramètres au niveau de la fonction s’appliquent aux versions tant publiées que non publiées de la fonction, et incluent des étiquettes (TagResource) ainsi que des limites de simultanéité par fonction (PutFunctionConcurrency).

Vous pouvez utiliser la signature de code si votre package de déploiement est une archive de fichier .zip. Pour activer la signature de code pour cette fonction, spécifiez l’ARN d’une configuration de signature de code. Lorsqu’un utilisateur tente de déployer un package de code avec UpdateFunctionCode, Lambda vérifie que le package de code possède la signature valide d’un éditeur de confiance. La configuration de la signature de code inclut un ensemble de profils de signature, qui définissent les éditeurs de confiance pour cette fonction.

Si un autre compte ou un service AWS appelle votre fonction, utilisez AddPermission pour accorder l’autorisation en créant une stratégie IAM basée sur une ressource. Vous pouvez accorder des autorisations au niveau de la fonction sur une version ou un alias.

Pour appeler votre fonction directement, utilisez Invoke. Pour appeler votre fonction en réponse à des événements dans d’autres services AWS, créez un mappage de source d’événement (CreateEventSourceMapping), ou configurez un déclencheur de fonction dans l’autre service. Pour plus d’informations, consultez Appel de fonctions.

Syntaxe de la demande

POST /2015-03-31/functions HTTP/1.1 Content-type: application/json { "Architectures": [ "string" ], "Code": { "ImageUri": "string", "S3Bucket": "string", "S3Key": "string", "S3ObjectVersion": "string", "ZipFile": blob }, "CodeSigningConfigArn": "string", "DeadLetterConfig": { "TargetArn": "string" }, "Description": "string", "Environment": { "Variables": { "string" : "string" } }, "FileSystemConfigs": [ { "Arn": "string", "LocalMountPath": "string" } ], "FunctionName": "string", "Handler": "string", "ImageConfig": { "Command": [ "string" ], "EntryPoint": [ "string" ], "WorkingDirectory": "string" }, "KMSKeyArn": "string", "Layers": [ "string" ], "MemorySize": number, "PackageType": "string", "Publish": boolean, "Role": "string", "Runtime": "string", "Tags": { "string" : "string" }, "Timeout": number, "TracingConfig": { "Mode": "string" }, "VpcConfig": { "SecurityGroupIds": [ "string" ], "SubnetIds": [ "string" ] } }

Paramètres de demande URI

La demande n’utilise pas de paramètres URI.

Corps de la demande

Cette demande accepte les données suivantes au format JSON.

Architectures

Architecture de l’ensemble des instructions prise en charge par la fonction. Saisissez un tableau de chaînes avec l’une des valeurs valides (arm64 ou x86_64). La valeur par défaut est x86_64.

Type : tableau de chaînes

Membres du tableau : nombre fixe de 1 élément.

Valeurs valides : x86_64 | arm64

Obligatoire : non

Code

Code pour la fonction.

Type : objet FunctionCode

Obligatoire : oui

CodeSigningConfigArn

Pour activer la signature de code pour cette fonction, spécifiez l’ARN d’une configuration de signature de code. Une configuration de signature de code inclut un ensemble de profils de signature, qui définissent les éditeurs de confiance pour cette fonction.

Type : chaîne

Contraintes de longueur : Longueur maximum de 200.

Modèle : arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\d{1}:\d{12}:code-signing-config:csc-[a-z0-9]{17}

Obligatoire : non

DeadLetterConfig

Une configuration de file d’attente de lettres mortes qui spécifie la file d’attente ou la rubrique où Lambda envoie les événements asynchrones lorsqu’ils échouent au traitement. Pour plus d’informations, consultez la section Files d’attente de lettres mortes.

Type : objet DeadLetterConfig

Obligatoire : non

Description

Description de la fonction.

Type : chaîne

Contraintes de longueur : Longueur minimum de 0. Longueur maximum de 256.

Obligatoire : non

Environment

Les variables d’environnement qui sont accessibles à partir du code de fonction au cours de l’exécution.

Type : objet Environment

Obligatoire : non

FileSystemConfigs

Paramètres de connexion pour un système de fichiers Amazon EFS.

Type : tableau d’objets FileSystemConfig

Membres du tableau : nombre maximum de 1 élément.

Obligatoire : non

FunctionName

Nom de la fonction Lambda.

Formats de nom

  • Nom de fonction - my-function.

  • ARN de fonction - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • ARN partiel - 123456789012:function:my-function.

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.

Type : chaîne

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 140.

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

Handler

Nom de la méthode au sein de votre code que Lambda appelle pour exécuter votre fonction. Le gestionnaire est requis si le package de déploiement est une archive de fichier .zip. Le format inclut le nom de fichier. Il peut également inclure des espaces de noms et d’autres qualificateurs, selon l’exécution. Pour de plus amples informations, veuillez consulterModèle de programmation.

Type : chaîne

Contraintes de longueur : Longueur maximum de 128.

Modèle : [^\s]+

Obligatoire : non

ImageConfig

Valeurs de configuration d’image conteneur qui remplacent les valeurs d’image conteneur Dockerfile.

Type : objet ImageConfig

Obligatoire : non

KMSKeyArn

ARN de la clé AWS Key Management Service (AWS KMS) utilisée pour chiffrer les variables d’environnement de votre fonction. Si elle n’est pas fournie, AWS Lambda utilise une clé de service par défaut.

Type : chaîne

Modèle : (arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()

Obligatoire : non

Layers

Liste des couches de fonction à ajouter à l’environnement d’exécution de la fonction. Spécifiez chaque couche par son ARN, y compris la version.

Type : tableau de chaînes

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 140.

Modèle : arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+:[0-9]+

Obligatoire : non

MemorySize

Quantité de mémoire disponible pour la fonction lors de l’exécution. L’augmentation de la mémoire de la fonction augmente également son allocation d’UC. La valeur par défaut est de 128 Mo. La valeur peut être n’importe quel multiple de 1 Mo.

Type : entier

Plage valide : Valeur minimum de 128. Valeur maximum de 10 240.

Obligatoire : non

PackageType

Type de package de déploiement. Définissez sur Image pour l’image conteneur, et sur Zip pour l’archive ZIP.

Type : chaîne

Valeurs valides : Zip | Image

Obligatoire : non

Publish

Définissez sur VRAI pour publier la première version de la fonction pendant la création.

Type : valeur booléenne

Obligatoire : non

Role

ARN (Amazon Resource Name) du rôle d’exécution de la fonction.

Type : chaîne

Modèle : arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+

Obligatoire : oui

Runtime

Identifiant de l’exécution de la fonction. L’exécution est requise si le package de déploiement est une archive de type .zip.

Type : chaîne

Valeurs valides : nodejs | nodejs4.3 | nodejs6.10 | nodejs8.10 | nodejs10.x | nodejs12.x | nodejs14.x | java8 | java8.al2 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | python3.9 | dotnetcore1.0 | dotnetcore2.0 | dotnetcore2.1 | dotnetcore3.1 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2

Obligatoire : non

Tags

Liste de balises à appliquer à la fonction.

Type : mappage chaîne/chaîne

Obligatoire : non

Timeout

Durée en secondes pendant laquelle Lambda autorise l’exécution d’une fonction avant de l’arrêter. Le durée par défaut est de 3 secondes. La valeur maximum autorisée est de 900 secondes. Pour plus d’informations, consultez la section Environnement d’exécution Lambda.

Type : entier

Plage valide : Valeur minimum de 1.

Obligatoire : non

TracingConfig

Définissez Mode sur Active pour échantillonner et suivre un sous-ensemble de demandes entrantes avec X-Ray.

Type : objet TracingConfig

Obligatoire : non

VpcConfig

Pour une connectivité réseau vers des ressources AWS dans un VPC, spécifiez une liste de groupes de sécurité et de sous-réseaux dans le VPC. Lorsque vous vous connectez une fonction à un VPC, il peut uniquement accéder aux ressources et Internet via ce VPC. Pour de plus amples informations, veuillez consulter Paramètres VPC.

Type : objet VpcConfig

Obligatoire : non

Syntaxe de la réponse

HTTP/1.1 201 Content-type: application/json { "Architectures": [ "string" ], "CodeSha256": "string", "CodeSize": number, "DeadLetterConfig": { "TargetArn": "string" }, "Description": "string", "Environment": { "Error": { "ErrorCode": "string", "Message": "string" }, "Variables": { "string" : "string" } }, "FileSystemConfigs": [ { "Arn": "string", "LocalMountPath": "string" } ], "FunctionArn": "string", "FunctionName": "string", "Handler": "string", "ImageConfigResponse": { "Error": { "ErrorCode": "string", "Message": "string" }, "ImageConfig": { "Command": [ "string" ], "EntryPoint": [ "string" ], "WorkingDirectory": "string" } }, "KMSKeyArn": "string", "LastModified": "string", "LastUpdateStatus": "string", "LastUpdateStatusReason": "string", "LastUpdateStatusReasonCode": "string", "Layers": [ { "Arn": "string", "CodeSize": number, "SigningJobArn": "string", "SigningProfileVersionArn": "string" } ], "MasterArn": "string", "MemorySize": number, "PackageType": "string", "RevisionId": "string", "Role": "string", "Runtime": "string", "SigningJobArn": "string", "SigningProfileVersionArn": "string", "State": "string", "StateReason": "string", "StateReasonCode": "string", "Timeout": number, "TracingConfig": { "Mode": "string" }, "Version": "string", "VpcConfig": { "SecurityGroupIds": [ "string" ], "SubnetIds": [ "string" ], "VpcId": "string" } }

Eléments de réponse

Si l’action aboutit, le service renvoie une réponse HTTP 201.

Les données suivantes sont renvoyées au format JSON par le service.

Architectures

Architecture de l’ensemble des instructions prise en charge par la fonction. L’architecture est un tableau de chaînes avec l’une des valeurs valides. La valeur d’architecture par défaut est x86_64.

Type : tableau de chaînes

Membres du tableau : nombre fixe de 1 élément.

Valeurs valides : x86_64 | arm64

CodeSha256

Hachage SHA256 du package de déploiement de la fonction.

Type : chaîne

CodeSize

Taille du package de déploiement de la fonction, exprimée en octets.

Type : long

DeadLetterConfig

File d’attente de lettres mortes de la fonction.

Type : objet DeadLetterConfig

Description

Description de la fonction.

Type : chaîne

Contraintes de longueur : Longueur minimum de 0. Longueur maximum de 256.

Environment

Variables d’environnement de la fonction.

Type : objet EnvironmentResponse

FileSystemConfigs

Paramètres de connexion pour un système de fichiers Amazon EFS.

Type : tableau d’objets FileSystemConfig

Membres du tableau : nombre maximum de 1 élément.

FunctionArn

Amazon Resource Name (ARN) de la fonction.

Type : chaîne

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-_]+))?

FunctionName

Nom de la fonction.

Type : chaîne

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-_]+))?

Handler

Fonction que Lambda appelle pour commencer à exécuter votre fonction.

Type : chaîne

Contraintes de longueur : Longueur maximum de 128.

Modèle : [^\s]+

ImageConfigResponse

Valeurs de configuration d’image de la fonction.

Type : objet ImageConfigResponse

KMSKeyArn

La clé AWS KMS key qui est utilisée pour chiffrer les variables d’environnement de la fonction. Cette clé est renvoyée uniquement si vous avez configuré une clé gérée par le client.

Type : chaîne

Modèle : (arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()

LastModified

Date et heure de la dernière mise à jour de la fonction, au format ISO-8601 (AAAA-MM-JJThh:mm:ss.sTZD).

Type : chaîne

LastUpdateStatus

État de la dernière mise à jour effectuée sur la fonction. Cette valeur est d’abord définie sur Successful une fois la création de la fonction terminée.

Type : chaîne

Valeurs valides : Successful | Failed | InProgress

LastUpdateStatusReason

Motif pour lequel la dernière mise à jour a été effectuée sur la fonction.

Type : chaîne

LastUpdateStatusReasonCode

Code motif pour lequel la dernière mise à jour a effectuée sur la fonction.

Type : chaîne

Valeurs valides : EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage

Layers

Couches de la fonction.

Type : tableau d’objets Layer

MasterArn

Pour les fonctions Lambda @Edge, l’ARN de la fonction maître.

Type : chaîne

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-_]+))?

MemorySize

Quantité de mémoire disponible pour la fonction lors de l’exécution.

Type : entier

Plage valide : Valeur minimum de 128. Valeur maximum de 10 240.

PackageType

Type de package de déploiement. Spécifiez Image pour l’image de conteneur et Zip pour l’archive de fichier .zip.

Type : chaîne

Valeurs valides : Zip | Image

RevisionId

Dernière révision mise à jour de la fonction ou de l’alias.

Type : chaîne

Role

Rôle d’exécution de la fonction.

Type : chaîne

Modèle : arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+

Runtime

Environnement d’exécution de la fonction Lambda.

Type : chaîne

Valeurs valides : nodejs | nodejs4.3 | nodejs6.10 | nodejs8.10 | nodejs10.x | nodejs12.x | nodejs14.x | java8 | java8.al2 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | python3.9 | dotnetcore1.0 | dotnetcore2.0 | dotnetcore2.1 | dotnetcore3.1 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2

SigningJobArn

ARN de la tâche de signature.

Type : chaîne

Modèle : arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

SigningProfileVersionArn

ARN de la version du profil de signature.

Type : chaîne

Modèle : arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

State

État actuel de la fonction. Lorsque l’état est Inactive, vous pouvez réactiver la fonction en l’appelant.

Type : chaîne

Valeurs valides : Pending | Active | Inactive | Failed

StateReason

Motif de l’état actuel de la fonction.

Type : chaîne

StateReasonCode

Code de motif de l’état actuel de la fonction. Lorsque le code est Creating, vous ne pouvez ni appeler ni modifier la fonction.

Type : chaîne

Valeurs valides : Idle | Creating | Restoring | EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage

Timeout

Durée en secondes pendant laquelle Lambda autorise l’exécution d’une fonction avant de l’arrêter.

Type : entier

Plage valide : valeur minimum de 1.

TracingConfig

Configuration du suivi AWS X-Ray de la fonction.

Type : objet TracingConfigResponse

Version

Version de la fonction Lambda.

Type : chaîne

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 1024.

Modèle : (\$LATEST|[0-9]+)

VpcConfig

Configuration réseau de la fonction.

Type : objet VpcConfigResponse

Errors

CodeSigningConfigNotFoundException

La configuration de signature de code spécifiée n’existe pas.

Code d’état HTTP : 404

CodeStorageExceededException

Vous avez dépassé votre taille totale maximum de code par compte. En savoir plus

Code d’état HTTP : 400

CodeVerificationFailedException

La signature de code a échoué à au moins un contrôle de validation pour cause de non-concordance ou d’expiration de signature, et la stratégie de signature de code est définie sur ENFORCE. Lambda bloque le déploiement.

Code d’état HTTP : 400

InvalidCodeSignatureException

La signature du code a échoué au contrôle d’intégrité. Lambda bloque toujours le déploiement si le contrôle d’intégrité échoue, même si la stratégie de signature de code est définie sur WARN.

Code d’état HTTP : 400

InvalidParameterValueException

L’un des paramètres dans la demande n’est pas valide.

Code d’état HTTP : 400

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

ServiceException

Le service AWS Lambda a rencontré une erreur interne.

Code d’état HTTP : 500

TooManyRequestsException

La limite de débit de demande a été dépassée.

Code d’état HTTP : 429

Voir 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 :