Création et gestion de la fonction Lambda URLs - AWS Lambda

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.

Création et gestion de la fonction Lambda URLs

Une fonction URL est un point de terminaison HTTP (S) dédié à votre fonction Lambda. Vous pouvez créer et configurer une fonction URL par le biais de la console Lambda ou du Lambda. API Lorsque vous créez une fonctionURL, Lambda génère automatiquement un point de URL terminaison unique pour vous. Une fois que vous avez créé une fonctionURL, son URL point de terminaison ne change jamais. Les URL points de terminaison des fonctions ont le format suivant :

https://<url-id>.lambda-url.<region>.on.aws
Note

URLsLes fonctions ne sont pas prises en charge dans les pays suivants Régions AWS : Asie-Pacifique (Hyderabadap-south-2) (), Asie-Pacifique (Melbourneap-southeast-4) (), Asie-Pacifique (Malaisieap-southeast-5) (), Canada Ouest (Calgary) (ca-west-1), Europe (Espagne) (eu-south-2), Europe (Zurich) (eu-central-2), Israël (Tel Aviv) (il-central-1) et Moyen-Orient (UAE) (me-central-1).

URLsLes fonctions sont compatibles avec le double empilage, prenant en charge et. IPv4 IPv6 Après avoir configuré une fonction URL pour votre fonction, vous pouvez appeler votre fonction via son point de terminaison HTTP (S) via un navigateur Web, curl, Postman ou n'importe quel HTTP client.

Note

Vous ne pouvez accéder à votre fonction que URL par le biais de l'Internet public. Bien que les fonctions Lambda soient compatibles AWS PrivateLink, les fonctions ne le sont URLs pas.

La fonction Lambda URLs utilise des politiques basées sur les ressources pour la sécurité et le contrôle d'accès. La fonction prend URLs également en charge les options de configuration du partage de ressources entre origines (CORS).

Vous pouvez appliquer une fonction URLs à n'importe quel alias de fonction ou à la version de fonction $LATEST non publiée. Vous ne pouvez pas ajouter de fonction URL à une autre version de fonction.

La section suivante explique comment créer et gérer une fonction à URL l'aide de la console Lambda et du AWS CLI modèle AWS CloudFormation

Création d'une fonction URL (console)

Procédez comme suit pour créer une fonction à URL l'aide de la console.

  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom de la fonction URL pour laquelle vous souhaitez créer la fonction.

  3. Choisissez l'onglet Configuration, puis choisissez Function URL.

  4. Sélectionnez Create functionURL (Créer une fonction).

  5. Pour le type d'authentification, choisissez AWS_IAMou NONE. Pour plus d'informations sur URL l'authentification fonctionnelle, consultezContrôle d’accès.

  6. (Facultatif) Sélectionnez Configurer le partage de ressources entre origines (CORS), puis configurez les CORS paramètres de votre fonctionURL. Pour plus d'informations surCORS, voirPartage de ressources entre origines () CORS.

  7. Choisissez Save (Enregistrer).

Cela crée une fonction URL pour la version $LATEST non publiée de votre fonction. La fonction URL apparaît dans la section Vue d'ensemble des fonctions de la console.

  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom de la fonction avec l'alias URL pour lequel vous souhaitez créer la fonction.

  3. Cliquez sur l'onglet Alias, puis choisissez le nom de l'alias URL pour lequel vous souhaitez créer la fonction.

  4. Choisissez l'onglet Configuration, puis choisissez Function URL.

  5. Sélectionnez Create functionURL (Créer une fonction).

  6. Pour le type d'authentification, choisissez AWS_IAMou NONE. Pour plus d'informations sur URL l'authentification fonctionnelle, consultezContrôle d’accès.

  7. (Facultatif) Sélectionnez Configurer le partage de ressources entre origines (CORS), puis configurez les CORS paramètres de votre fonctionURL. Pour plus d'informations surCORS, voirPartage de ressources entre origines () CORS.

  8. Choisissez Save (Enregistrer).

Cela crée une fonction URL pour votre alias de fonction. La fonction URL apparaît dans la section Vue d'ensemble des fonctions de la console pour votre alias.

Pour créer une nouvelle fonction avec une fonction URL (console)
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Sélectionnez Create function (Créer une fonction).

  3. Sous Basic information (Informations de base), procédez comme suit :

    1. Dans Function name (nom de la fonction), saisissez un nom pour votre fonction, par exemple my-function.

    2. Pour Runtime (Exécution), choisissez l’environnement d’exécution du langage que vous préférez, comme Node.js 18.x.

    3. Pour Architecture, choisissez x86_64 ou arm64.

    4. Développez Permissions (Autorisations), puis choisissez si vous souhaitez créer un nouveau rôle d’exécution ou utiliser un rôle existant.

  4. Développez les paramètres avancés, puis sélectionnez Fonction URL.

  5. Pour le type d'authentification, choisissez AWS_IAMou NONE. Pour plus d'informations sur URL l'authentification fonctionnelle, consultezContrôle d’accès.

  6. (Facultatif) Sélectionnez Configurer le partage de ressources entre origines (CORS). En sélectionnant cette option lors de la création de la fonction, celle-ci URL accepte par défaut les demandes provenant de toutes les origines. Vous pouvez modifier les CORS paramètres de votre fonction URL après l'avoir créée. Pour plus d'informations surCORS, voirPartage de ressources entre origines () CORS.

  7. Sélectionnez Create function (Créer une fonction).

Cela crée une nouvelle fonction avec une fonction URL pour la version $LATEST non publiée de la fonction. La fonction URL apparaît dans la section Vue d'ensemble des fonctions de la console.

Création d'une fonction URL (AWS CLI)

Pour créer une fonction URL pour une fonction Lambda existante à l'aide de AWS Command Line Interface (AWS CLI), exécutez la commande suivante :

aws lambda create-function-url-config \ --function-name my-function \ --qualifier prod \ // optional --auth-type AWS_IAM --cors-config {AllowOrigins="https://example.com"} // optional

Cela ajoute une fonction URL au prod qualificatif de la fonctionmy-function. Pour plus d'informations sur ces paramètres de configuration, reportez-vous CreateFunctionUrlConfigà la API référence.

Note

Pour créer une fonction URL via le AWS CLI, la fonction doit déjà exister.

Ajouter une fonction URL à un CloudFormation modèle

Pour ajouter une AWS::Lambda::Url ressource à votre AWS CloudFormation modèle, utilisez la syntaxe suivante :

JSON

{ "Type" : "AWS::Lambda::Url", "Properties" : { "AuthType" : String, "Cors" : Cors, "Qualifier" : String, "TargetFunctionArn" : String } }

YAML

Type: AWS::Lambda::Url Properties: AuthType: String Cors: Cors Qualifier: String TargetFunctionArn: String

Paramètres

  • (Obligatoire) AuthType — Définit le type d'authentification pour votre fonctionURL. Les valeurs possibles sont soit AWS_IAM, soit NONE. Pour limiter l’accès aux utilisateurs authentifiés uniquement, définissez la valeur sur AWS_IAM. Pour contourner IAM l'authentification et autoriser n'importe quel utilisateur à envoyer des demandes à votre fonction, définissez surNONE.

  • (Facultatif) Cors — Définit les CORSparamètres de votre fonctionURL. Pour ajouter Cors des éléments à votre AWS::Lambda::Url ressource CloudFormation, utilisez la syntaxe suivante.

    Exemple AWS: :Lambda : :Url.Cors () JSON
    { "AllowCredentials" : Boolean, "AllowHeaders" : [ String, ... ], "AllowMethods" : [ String, ... ], "AllowOrigins" : [ String, ... ], "ExposeHeaders" : [ String, ... ], "MaxAge" : Integer }
    Exemple AWS: :Lambda : :Url.Cors () YAML
    AllowCredentials: Boolean AllowHeaders: - String AllowMethods: - String AllowOrigins: - String ExposeHeaders: - String MaxAge: Integer
  • (Facultatif) Qualifier – Le nom de l’alias.

  • (Obligatoire) TargetFunctionArn — Le nom ou Amazon Resource Name (ARN) de la fonction Lambda. Les formats de nom valides sont notamment les suivants :

    • Nom de fonctionmy-function

    • Fonction ARNarn:aws:lambda:us-west-2:123456789012:function:my-function

    • Partiel ARN123456789012:function:my-function

Partage de ressources entre origines () CORS

Pour définir comment les différentes origines peuvent accéder à votre fonctionURL, utilisez le partage de ressources entre origines (CORS). Nous vous recommandons de configurer CORS si vous avez l'intention d'appeler votre fonction URL depuis un autre domaine. Lambda prend en charge les CORS en-têtes de fonction suivants. URLs

CORSen-tête CORSpropriété de configuration Exemples de valeur

Access-Control-Allow-Origine

AllowOrigins

* (autoriser toutes les origines)

https://www.example.com

http://localhost:60905

Access-Control-Allow-Méthodes

AllowMethods

GET, POST, DELETE, *

Access-Control-Allow-En-têtes

AllowHeaders

Date, Keep-Alive, X-Custom-Header

Access-Control-Expose-En-têtes

ExposeHeaders

Date, Keep-Alive, X-Custom-Header

Access-Control-Allow-Informations d'identification

AllowCredentials

TRUE

Access-Control-Max-Âge

MaxAge

5 (par défaut), 300

Lorsque vous configurez une fonction CORS à URL l'aide de la console Lambda ou du, AWS CLI Lambda ajoute automatiquement CORS les en-têtes à toutes les réponses via la fonction. URL Vous pouvez également ajouter manuellement des CORS en-têtes à la réponse de votre fonction. En cas de conflit entre les en-têtes, le comportement attendu dépend du type de demande :

  • Pour les demandes préalables au vol, telles que les OPTIONS demandes, les CORS en-têtes configurés sur la fonction ont prioritéURL. Lambda renvoie uniquement ces CORS en-têtes dans la réponse.

  • Pour les requêtes autres que celles effectuées avant le vol, telles que les POST requêtes GET ou, Lambda renvoie à la fois les CORS en-têtes configurés sur la fonctionURL, ainsi que les CORS en-têtes renvoyés par la fonction. Cela peut entraîner des doublons d'CORSen-têtes dans la réponse. Un message d'erreur similaire au suivant peut s'afficher : The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed

En général, nous recommandons de configurer tous les CORS paramètres de la fonctionURL, plutôt que d'envoyer CORS les en-têtes manuellement dans la réponse de la fonction.

Fonction d'étranglement URLs

La limitation limite le débit auquel la fonction traite les demandes. Cette fonction est utile dans de nombreuses situations, notamment pour empêcher votre fonction de surcharger les ressources en aval ou pour gérer une augmentation soudaine des demandes.

Vous pouvez limiter le taux de demandes traitées par votre fonction Lambda par le biais d'une URL fonction en configurant la simultanéité réservée. La simultanéité réservée limite le nombre maximal d’invocations simultanées pour votre fonction. Le taux de requêtes maximal par seconde (RPS) de votre fonction est équivalent à 10 fois la simultanéité réservée configurée. Par exemple, si vous configurez votre fonction avec une simultanéité réservée de 100, le maximum RPS est de 1 000.

Chaque fois que la simultanéité de votre fonction dépasse la simultanéité réservée, votre fonction URL renvoie un code d'HTTP429état. Si votre fonction reçoit une demande qui dépasse le RPS maximum de 10 fois sur la base de la simultanéité réservée que vous avez configurée, vous recevez également une HTTP 429 erreur. Pour de plus amples informations sur la simultanéité réservée, consultez Configuration de la simultanéité réservée pour une fonction.

Fonction de désactivation URLs

En cas d'urgence, vous souhaiterez peut-être rejeter tout le trafic vers votre fonctionURL. Pour désactiver votre fonctionURL, réglez la simultanéité réservée sur zéro. Cela limite toutes les demandes adressées à votre fonctionURL, ce qui entraîne des réponses de HTTP 429 statut. Pour réactiver votre fonctionURL, supprimez la configuration de simultanéité réservée ou définissez la configuration sur un montant supérieur à zéro.

Fonction de suppression URLs

Lorsque vous supprimez une fonctionURL, vous ne pouvez pas la récupérer. La création d'une nouvelle fonction URL se traduira par une URL adresse différente.

Note

Si vous supprimez une fonction URL avec un type d'authentificationNONE, Lambda ne supprime pas automatiquement la politique basée sur les ressources associée. Si vous souhaitez supprimer cette politique, vous devez le faire manuellement.

  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom de la fonction.

  3. Choisissez l'onglet Configuration, puis choisissez Function URL.

  4. Sélectionnez Delete (Supprimer).

  5. Entrez le mot delete dans le champ pour confirmer la suppression.

  6. Sélectionnez Delete (Supprimer).

Note

Lorsque vous supprimez une fonction qui possède une fonctionURL, Lambda supprime la fonction de manière asynchrone. URL Si vous créez immédiatement une nouvelle fonction portant le même nom dans le même compte, il est possible que la fonction d'origine URL soit mappée à la nouvelle fonction au lieu d'être supprimée.