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.
AWS::Serverless::WebFunction
Crée une fonction AWS Lambda Web qui traite les requêtes HTTP via un point de terminaison géré. Contrairement à une fonction d'événement Lambda, qui s'exécute en réponse à des appels et à des événements, une fonction Web exécute votre serveur Web et reçoit directement des requêtes HTTP. À partir d'une seuleAWS::Serverless::WebFunction, il AWS SAM génère la fonction Web, une révision immuable contenant votre code et votre configuration, et un point de terminaison qui achemine le trafic vers une ou plusieurs révisions.
Note
Lorsque vous déployez vers AWS CloudFormation, vos AWS SAM ressources sont AWS SAM transformées en CloudFormation ressources. Pour plus d’informations, consultez Générées CloudFormation ressources pour AWS SAM.
Important
Votre code de fonction doit exécuter un serveur HTTP qui écoute l'hôte et le port dans la variable d'AWS_LAMBDA_HTTP_ENDPOINTenvironnement. Le temps d'exécution n'est pas définiPORT. Par défaut, le moteur d'exécution s'exécute index.js à la racine du package de déploiement. EntryPointÀ utiliser pour exécuter un autre fichier.
Important
Le compartiment Amazon S3 qui contient votre package de déploiement doit répondre aux exigences suivantes :
-
La gestion des versions est activée.
-
Une politique de compartiment accorde
lambda.amazonaws.comless3:GetObjectVersionautorisationss3:GetObjectet. Nous vous recommandons de définir la politique avec uneArnLikeconditionaws:SourceArncorrespondant aux révisions de la fonction, par exemplearn:aws:lambda:.us-east-1:111122223333:web-function/my-function/revision/* -
Si l'objet est chiffré avec SSE-KMS, il utilise une clé gérée par le client dont la politique en matière de clés
lambda.amazonaws.compermet d'appelerkms:Decrypt. La clé AWS gérée pour Amazon S3 (aws/s3) n'est pas prise en charge, car vous ne pouvez pas modifier sa politique en matière de clés.
Pour un exemple de politique de bucket, consultez la section Politique de bucket pour Lambda dans le Guide du AWS Lambda développeur.
CodeUridoit faire référence à un objet dans Amazon S3. Les sam package commandes sam build et ne prennent pas en charge les chemins locaux pour cette ressource.
Syntaxe
Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.
YAML
Type: AWS::Serverless::WebFunction Properties: AuthType:StringAutoDeploymentMode:StringCodeUri:String | CodeUriEgressNetworkConnectorArn:StringEndpointDescription:StringEndpointName:StringEndpointType:StringEntryPoint:StringEnvironmentVariables:MapExecutionRoleArn:StringFunctionName:StringInlineCode:StringKmsKeyArn:StringLoggingConfig:MapMaxConcurrencyPerEnvironment:IntegerReplicaRegions:List | ReplicaRegionsRevisionDescription:StringRevisionWeights:RevisionWeightsRuntime:StringScalingConfig:MapTags:MapThrottleConfig:MapTimeout:Integer
Propriétés
-
AuthType -
Comment le point de terminaison autorise les demandes.
-
IamAuth: Lambda autorise les demandes avec Signature Version 4 et IAM. Les appelants ont besoin de cettelambda:InvokeWebFunctionEndpointautorisation, accordée par le biais d'une politique basée sur les ressources concernant la fonction. -
ApplicationManaged: le point de terminaison est public. Votre fonction doit autoriser elle-même chaque demande.
Valeurs valides :
IamAuth,ApplicationManagedType : chaîne
Obligatoire : oui
CloudFormation compatibilité : cette propriété est transmise directement à la
AuthTypepropriété d'uneAWS::Lambda::WebFunctionEndpointressource. -
-
AutoDeploymentMode -
Comment le point de terminaison achemine le trafic entre les révisions.
-
LatestRevision: envoie 100 % du trafic vers la révision créée par ce déploiement. -
Disabled: achemine le trafic en fonction de RevisionWeights.
Les valeurs que vous pouvez utiliser, et si elles
RevisionWeightssont obligatoires, dépendent des éléments EndpointTypesuivants :-
HomeRegion: utilisez l'une ou l'autre valeur. AvecDisabled,RevisionWeightsest obligatoire. -
MultiRegionouPerRegion: utiliserDisabled. Si vous omettezRevisionWeights, le point de terminaison achemine 100 % du trafic vers la révision créée dans la même pile, de sorte que vous pouvez créer le point de terminaison en un seul déploiement. Le trafic n'est pas transféré vers les révisions créées par les déploiements ultérieurs.
La valeur doit être résolue lors de la AWS SAM transformation du modèle. Un
Refparamètre est pris en charge. Les autres fonctions intrinsèques ne sont pas prises en charge.Valeurs valides :
LatestRevision,DisabledType : chaîne
Obligatoire : non
Par défaut :
LatestRevisionCloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.
-
-
CodeUri -
L'emplacement Amazon S3 du package de déploiement. Spécifiez un
s3://URI ou un objet avecbucket/keyBucket,Key, et desVersionclés facultatives. Pour les exigences relatives aux compartiments, consultez la note en haut de cette page.Type : Chaîne | CodeUri
Obligatoire : oui
CloudFormation compatibilité : cette propriété est similaire à celle
BuildConfig.CodeConfig.S3Objectd'uneAWS::Lambda::WebFunctionRevisionressource. AWS SAM convertit uns3://URI enBucketKey, etVersionId. -
EgressNetworkConnectorArn -
L'ARN qualifié par version d'un connecteur réseau qui achemine le trafic sortant de la fonction via votre VPC. L'ARN doit se terminer par un numéro de version, par exemple
arn:aws:lambda:us-east-1:123456789012:network-connector:my-connector:1. Pour utiliser la dernière version d'un connecteur dans le même modèle, spécifiez!GetAtt. Le connecteur ComputeTypesdoit l'êtreMyConnector.LatestVersionArnWebFunction.Si vous spécifiez une chaîne littérale, AWS SAM vérifiez qu'il s'agit d'un ARN de connecteur réseau qualifié par version. Les fonctions intrinsèques sont transmises et validées par le service. La modification de cette valeur crée une nouvelle révision.
Type : chaîne
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
ServiceConfig.EgressNetworkConnectorArnpropriété d'uneAWS::Lambda::WebFunctionRevisionressource. -
EndpointDescription -
Description du point de terminaison.
Type : chaîne
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
Descriptionpropriété d'uneAWS::Lambda::WebFunctionEndpointressource. -
EndpointName -
Nom du point de terminaison. La modification du nom remplace le point de terminaison. La modification remplace
EndpointTypeégalement le point de terminaison, donc modifiezEndpointNameen même temps. CloudFormation Impossible de remplacer une ressource dont le nom est personnalisé sans un nouveau nom.Type : chaîne
Obligatoire : non
Par défaut :
prodCloudFormation compatibilité : cette propriété est transmise directement à la
EndpointNamepropriété d'uneAWS::Lambda::WebFunctionEndpointressource. -
EndpointType -
Où le point de terminaison dessert le trafic.
-
HomeRegion: sert depuis la région de la pile. -
MultiRegion: réplique la fonction dans les régions ReplicaRegionset achemine chaque demande vers la région la plus proche. -
PerRegion: expose un point de terminaison distinct dans chaque région de réplication.
MultiRegionetPerRegionexigentAutoDeploymentMode: Disabled.Valeurs valides :
HomeRegion,MultiRegion,PerRegionType : chaîne
Obligatoire : non
Par défaut :
HomeRegionCloudFormation compatibilité : cette propriété est transmise directement à la
EndpointTypepropriété d'uneAWS::Lambda::WebFunctionEndpointressource. -
-
EntryPoint -
Le fichier exécuté par le moteur d'exécution, relatif à la racine du package de déploiement. AWS SAM le transmet au moteur d'exécution dans la variable d'
AWS_LAMBDA_NODEJS_ENTRYPOINTenvironnement réservée.Vous ne pouvez pas utiliser cette propriété lorsqu'il
EnvironmentVariabless'agit d'une fonction intrinsèque.Type : chaîne
Obligatoire : non
Par défaut :
index.jsCloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.
-
EnvironmentVariables -
Key-value paires à définir comme variables d'environnement pour la révision.
-
Les touches doivent commencer par une lettre et ne contenir que des lettres, des chiffres et des traits de soulignement.
-
Les valeurs ne doivent pas être vides et comporter au maximum 4 096 caractères.
-
AWS SAM convertit les nombres et les valeurs booléennes en chaînes de caractères.
Type: carte (map)
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
ServiceConfig.EnvironmentVariablespropriété d'uneAWS::Lambda::WebFunctionRevisionressource. -
-
ExecutionRoleArn -
L'ARN du rôle IAM assumé par la fonction lors de son exécution. Si vous ne spécifiez aucun rôle, AWS SAM créez-en un avec la politique
AWSLambdaBasicExecutionRolegérée et l'ID logique de.<resource-logical-id>RoleType : chaîne
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
ServiceConfig.ExecutionRoleArnpropriété d'uneAWS::Lambda::WebFunctionRevisionressource. -
FunctionName -
Nom de la fonction. Les noms de fonctions doivent être uniques au sein d'un compte dans toutes les régions. Si vous ne spécifiez pas de nom, il en AWS SAM génère un à partir de l'ID logique et de l'ID de pile, avec un maximum de 64 caractères. La modification du nom remplace la fonction, sa révision et son point de terminaison.
Type : chaîne
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
FunctionNamepropriété desAWS::Lambda::WebFunctionEndpointressourcesAWS::Lambda::WebFunctionAWS::Lambda::WebFunctionRevision,, et. -
InlineCode -
Non pris en charge pour
AWS::Serverless::WebFunction. Utilisez CodeUri.Type : chaîne
Obligatoire : non
CloudFormation compatibilité : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.
-
KmsKeyArn -
L'ARN de la AWS KMS clé utilisée pour chiffrer les variables d'environnement de la révision.
Type : chaîne
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
KmsKeyArnpropriété d'uneAWS::Lambda::WebFunctionRevisionressource. -
LoggingConfig -
La configuration de journalisation pour la révision, telle que le groupe de journaux et les niveaux de journalisation.
Type: carte (map)
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
ServiceConfig.TelemetryConfig.LoggingConfigpropriété d'uneAWS::Lambda::WebFunctionRevisionressource. -
MaxConcurrencyPerEnvironment -
Nombre maximal de demandes simultanées traitées par chaque environnement d'exécution.
Type : entier
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
ServiceConfig.MaxConcurrencyPerEnvironmentpropriété d'uneAWS::Lambda::WebFunctionRevisionressource. -
ReplicaRegions -
Les régions vers lesquelles répliquer la fonction. Utilisez cette propriété avec les
PerRegionpoints de terminaisonMultiRegionet. Spécifiez une liste de codes de région et de groupes de régions, ou un objet avecIncludeRegionsune optionExcludeRegions.Type : Liste | ReplicaRegions
Obligatoire : non
CloudFormation compatibilité : cette propriété est similaire à celle
Regionsd'uneAWS::Lambda::WebFunctionEndpointressource. AWS SAM développe les groupes de régions et s'appliqueExcludeRegionspour produire la liste des régions. -
RevisionDescription -
Description de la révision créée par ce déploiement.
Type : chaîne
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
Descriptionpropriété d'uneAWS::Lambda::WebFunctionRevisionressource. -
RevisionWeights -
Une carte des identifiants de révision par rapport aux pondérations du trafic. Utilisez cette propriété lorsque
AutoDeploymentModec'est le casDisabled. Spécifiez jusqu'à deux révisions. Chaque poids est un entier compris entre 1 et 100, et la somme des poids doit être égale à 100.Type : RevisionWeights
Obligatoire : selon les conditions. Obligatoire quand
AutoDeploymentModec'EndpointTypeestDisabledet quandHomeRegion.CloudFormation compatibilité : cette propriété est similaire à celle
RevisionWeightsd'uneAWS::Lambda::WebFunctionEndpointressource. AWS SAM convertit la carte en une liste d'WeightobjetsRevisionIdet. -
Runtime -
Le temps d'exécution de la fonction, par exemple
nodejs24.x.Type : chaîne
Obligatoire : oui
CloudFormation compatibilité : cette propriété est transmise directement à la
BuildConfig.RuntimeConfig.Runtimepropriété d'uneAWS::Lambda::WebFunctionRevisionressource. -
ScalingConfig -
La configuration de dimensionnement pour le point de terminaison, telle que le nombre maximum d'environnements d'exécution.
Type: carte (map)
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
ScalingConfigpropriété d'uneAWS::Lambda::WebFunctionEndpointressource. -
Carte de paires clé-valeur qui spécifie les balises ajoutées à la fonction et au rôle d'exécution qui AWS SAM la génère.
Type: carte (map)
Obligatoire : non
CloudFormation compatibilité : cette propriété est similaire à celle
Tagsd'uneAWS::Lambda::WebFunctionressource. LaTagspropriété in AWS SAM est constituée de paires clé-valeur (alors que dans CloudFormation cette propriété, elle consiste en une liste d'Tagobjets). Ajoute également AWS SAM automatiquement unelambda:createdBy:SAMbalise à la fonction et au rôle par défaut généré pour celle-ci. -
ThrottleConfig -
La configuration de régulation pour le point de terminaison, telle que le taux de demandes maximal.
Type: carte (map)
Obligatoire : non
CloudFormation compatibilité : cette propriété est transmise directement à la
ThrottleConfigpropriété d'uneAWS::Lambda::WebFunctionEndpointressource. -
Timeout -
Durée maximale, en secondes, pendant laquelle la fonction peut être exécutée par requête. Les valeurs valides sont comprises entre 3 et 900.
Type : entier
Obligatoire : non
Par défaut :
30CloudFormation compatibilité : cette propriété est transmise directement à la
ServiceConfig.TimeoutSecondspropriété d'uneAWS::Lambda::WebFunctionRevisionressource.
Valeurs renvoyées
Réf
Lorsque l'identifiant logique de cette ressource est fourni à la fonction Ref intrinsèque, elle renvoie l'ARN de la fonction Web. Lorsque vous avez besoin du nom de la fonction, utilisez FunctionName plutôt la valeur de.
Pour plus d'informations sur l'utilisation de la fonction Ref, consultez Ref dans le Guide de l'utilisateur AWS CloudFormation .
Ventilateur : GetAtt
Fn::GetAtt renvoie une valeur pour un attribut de ce type indiqué. Voici les attributs disponibles et des exemples de valeurs de retour.
Pour plus d'informations sur l'utilisation de Fn::GetAtt, consultez Fn::GetAtt dans le Guide de l'utilisateur AWS CloudFormation .
FunctionArn-
Le nom de ressource Amazon (ARN) de la fonction Web.
State-
État actuel de la fonction Web.
StateReason-
La raison de l'état actuel de la fonction Web.
CreatedAt-
Heure à laquelle la fonction Web a été créée.
UpdatedAt-
Heure à laquelle la fonction Web a été mise à jour pour la dernière fois.
Pour référencer la révision ou le point de terminaison qui AWS SAM génère, utilisez leurs identifiants logiques, et<resource-logical-id>Revision. Par exemple, <resource-logical-id>Endpoint!GetAtt MyWebFunctionEndpoint.DomainName renvoie le nom de domaine du point de terminaison d'une fonction Web avec l'ID logiqueMyWebFunction. Pour plus d’informations, consultez CloudFormation ressources générées lorsque AWS::Serverless::WebFunction est spécifié.
Exemples
Fonction Web de base
L'exemple suivant crée une fonction Web avec un IAM-authorized point de terminaison dans la région de la pile. AWS SAM génère le rôle d'exécution, et le point de terminaison achemine tout le trafic vers la révision créée par ce déploiement.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version:object-version-idTimeout: 30 Outputs: EndpointUrl: Value: !Sub https://${MyWebFunctionEndpoint.DomainName}
Répartissez le trafic entre deux révisions
L'exemple suivant désactive le déploiement automatique et envoie 90 % du trafic vers une révision existante et 10 % vers une autre. Les deux révisions doivent déjà exister.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: s3://amzn-s3-demo-bucket/webfn-v2.zip AutoDeploymentMode: Disabled RevisionWeights: rev-abc123: 90 rev-def456: 10
Multi-Region Fonction Web
L'exemple suivant reproduit la fonction dans les régions des États-Unis sauf us-west-1 et achemine chaque demande vers la région la plus proche. Comme il RevisionWeights est omis, le point de terminaison achemine tout le trafic vers la révision créée dans cette pile.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version:object-version-idEndpointName: prodmr EndpointType: MultiRegion AutoDeploymentMode: Disabled ReplicaRegions: IncludeRegions: - US ExcludeRegions: - us-west-1
Fonction Web avec sortie VPC
L'exemple suivant crée un connecteur réseau pour les fonctions Web et achemine le trafic sortant de la fonction via les sous-réseaux et les groupes de sécurité du connecteur.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: MyConnector: Type: AWS::Serverless::NetworkConnector Properties: ComputeTypes: - WebFunction VpcConfig: SubnetIds: - subnet-0abc123def4567890 - subnet-0def456abc7890123 SecurityGroupIds: - sg-0abc1234abcde0001 NetworkProtocol: IPv4 MyWebFunction: Type: AWS::Serverless::WebFunction Properties: Runtime: nodejs24.x AuthType: IamAuth CodeUri: Bucket: amzn-s3-demo-bucket Key: webfn.zip Version:object-version-idEgressNetworkConnectorArn: !GetAtt MyConnector.LatestVersionArn