

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
<a name="urls-configuration"></a>

Une URL de fonction est un point de terminaison HTTP(S) dédié pour votre fonction Lambda. Vous pouvez créer et configurer une URL de fonction via la console Lambda ou l’API Lambda.

**Astuce**  
Lambda propose deux méthodes pour appeler votre fonction via un point de terminaison HTTP : function URLs et Amazon API Gateway. Si vous ne savez pas quelle est la meilleure méthode pour votre cas d’utilisation, consultez [Sélection d’une méthode pour invoquer votre fonction Lambda à l’aide d’une requête HTTP](furls-http-invoke-decision.md).

Lorsque vous créez une URL de fonction, Lambda génère automatiquement un point de terminaison URL unique pour vous. Une fois que vous avez créé une URL de fonction, son point de terminaison URL ne change jamais. Les points de terminaison URL de fonction ont le format suivant :

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

**Note**  
 URLs Les fonctions ne sont pas prises en charge dans les pays suivants Régions AWS : Asie-Pacifique (Hyderabad`ap-south-2`) (), Asie-Pacifique (Malaisie`ap-southeast-4`) (), Asie-Pacifique (Nouvelle Zélande`ap-southeast-5`) (), Asie-Pacifique (Thaïlande) (`ap-southeast-6`), Asie-Pacifique (Thaïlande) (), Asie-Pacifique (Taipei`ap-southeast-7`) ()`ap-east-2`, Canada Ouest (Calgary) (), Europe (Espagne) ()`ca-west-1`, Europe (Zurich`eu-south-2`) (), Israël (Tel Aviv ()`eu-central-2`, et Moyen-Orient (Émirats arabes unis`il-central-1`) (). `me-central-1`

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

**Note**  
Vous pouvez accéder à l’URL de votre fonction via l’Internet public uniquement. 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](access-control-resource-based.md) pour la sécurité et le contrôle d'accès. La fonction prend URLs également en charge les options de configuration de 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 d’URL de fonction à une autre version de fonction.

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

**Topics**
+ [Création d’une URL de fonction (console)](#create-url-console)
+ [Création d’URL de fonction (AWS CLI)](#create-url-cli)
+ [Ajouter une URL de fonction à un CloudFormation modèle](#urls-cfn)
+ [Partage des ressources cross-origin (CORS)](#urls-cors)
+ [Fonction d'étranglement URLs](#urls-throttling)
+ [Fonction de désactivation URLs](#urls-deactivating)
+ [Fonction de suppression URLs](#w2aac39c81c53)
+ [Contrôler l'accès à la fonction Lambda URLs](urls-auth.md)
+ [Invocation d’URL de fonctions Lambda](urls-invocation.md)
+ [Surveillance des URL de fonctions Lambda](urls-monitoring.md)
+ [Sélection d’une méthode pour invoquer votre fonction Lambda à l’aide d’une requête HTTP](furls-http-invoke-decision.md)
+ [Didacticiel : création d’un point de terminaison webhook à l’aide d’une URL de fonction Lambda](urls-webhook-tutorial.md)

## Création d’une URL de fonction (console)
<a name="create-url-console"></a>

Suivez ces étapes pour créer une URL de fonction à l’aide de la console.

### Créer une URL de fonction pour une fonction existante
<a name="create-url-existing-function"></a>

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Choisissez le nom de la fonction pour laquelle vous souhaitez créer l’URL de fonction.

1. Choisissez l’onglet **Configuration**, puis **Function URL** (URL de fonction).

1. Choisissez **Create function URL** (Créer une URL de fonction).

1. Pour **le type d'authentification**, choisissez **AWS\_IAM****NONE**. Pour plus d’informations sur l’authentification de l’URL de fonction, consultez [Contrôle d’accès](urls-auth.md).

1. (Facultatif) Sélectionnez **Configure cross-origin resource sharing (CORS)** (Configurer le partage des ressources cross-origin [CORS]), puis configurez les paramètres CORS pour l’URL de votre fonction. Pour plus d’informations sur le CORS, consultez [Partage des ressources cross-origin (CORS)](#urls-cors).

1. Choisissez **Save** (Enregistrer).

Une URL de fonction est créée pour la version non publiée `$LATEST` de votre fonction. L’URL de la fonction s’affiche dans la section **Function overview** (Présentation de la fonction) de la console.

### Créer une URL de fonction pour un alias existant
<a name="create-url-existing-alias"></a>

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

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

1. Choisissez l’onglet **Aliases** (Alias), puis le nom de l’alias pour lequel vous souhaitez créer l’URL de fonction.

1. Choisissez l’onglet **Configuration**, puis **Function URL** (URL de fonction).

1. Choisissez **Create function URL** (Créer une URL de fonction).

1. Pour **le type d'authentification**, choisissez **AWS\_IAM****NONE**. Pour plus d’informations sur l’authentification de l’URL de fonction, consultez [Contrôle d’accès](urls-auth.md).

1. (Facultatif) Sélectionnez **Configure cross-origin resource sharing (CORS)** (Configurer le partage des ressources cross-origin [CORS]), puis configurez les paramètres CORS pour l’URL de votre fonction. Pour plus d’informations sur le CORS, consultez [Partage des ressources cross-origin (CORS)](#urls-cors).

1. Choisissez **Enregistrer**.

Cela crée une URL de fonction pour votre alias de fonction. L’URL de fonction s’affiche dans la section **Function overview** (Présentation des fonctions) de la console.

### Créer une nouvelle fonction avec une URL de fonction
<a name="create-url-new-function"></a>

**Pour créer une nouvelle fonction avec une URL de fonction (console)**

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Choisissez **Créer une fonction**.

1. 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**.

   1. Pour **Runtime**, choisissez le langage d'exécution que vous préférez, tel que **Node.js 24**.

   1. Pour **Architecture**, choisissez **x86\_64** ou **arm64**.

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

1. Développez **Advanced settings** (Paramètres avancés), puis sélectionnez **Function URL** (URL de fonction).

1. Pour **le type d'authentification**, choisissez **AWS\_IAM****NONE**. Pour plus d’informations sur l’authentification de l’URL de fonction, consultez [Contrôle d’accès](urls-auth.md).

1. (Facultatif) Sélectionnez **Configure cross-origin resource sharing (CORS)** (Configuration du partage des ressources cross-origin). En sélectionnant cette option lors de la création de la fonction, l’URL de votre fonction autorise par défaut les demandes de toutes les origines. Vous pouvez modifier les paramètres CORS de l’URL de votre fonction après avoir créé la fonction. Pour plus d’informations sur le CORS, consultez [Partage des ressources cross-origin (CORS)](#urls-cors).

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

Ceci crée une nouvelle fonction avec une URL de fonction pour la `$LATEST` version non publiée de la fonction. L’URL de la fonction s’affiche dans la section **Function overview** (Présentation des fonctions) de la console.

## Création d’URL de fonction (AWS CLI)
<a name="create-url-cli"></a>

Pour créer une URL de fonction 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
```

Une URL de fonction est ajoutée au qualificateur **prod** pour la fonction **my-function**. Pour plus d'informations sur ces paramètres de configuration, consultez [CreateFunctionUrlConfig](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunctionUrlConfig.html) dans la référence d'API.

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

## Ajouter une URL de fonction à un CloudFormation modèle
<a name="urls-cfn"></a>

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

### JSON
<a name="urls-cfn-json"></a>

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

### YAML
<a name="urls-cfn-yaml"></a>

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

### Parameters
<a name="urls-cfn-params"></a>
+ (Obligatoire) `AuthType` – Définit le type d’authentification pour l’URL de votre fonction. 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 l’authentification IAM et autoriser n’importe quel utilisateur à envoyer des demandes à votre fonction, définissez la valeur `NONE`.
+ (Facultatif) `Cors` – Définit les [paramètres CORS](#urls-cors) de l’URL de votre fonction. Pour ajouter `Cors` des éléments à votre `AWS::Lambda::Url` ressource CloudFormation, utilisez la syntaxe suivante.

    
**Example AWS::Lambda::Url.Cors (JSON)**  

  ```
  {
    "AllowCredentials" : Boolean,
    "AllowHeaders" : [ String, ... ],
    "AllowMethods" : [ String, ... ],
    "AllowOrigins" : [ String, ... ],
    "ExposeHeaders" : [ String, ... ],
    "MaxAge" : Integer
  }
  ```  
**Example 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 l’ARN (Amazon Resource Name) de la fonction Lambda. Les formats de nom valides sont notamment les suivants :
  + **Nom de fonction** – `my-function`
  + **ARN de fonction** – `arn:aws:lambda:us-west-2:123456789012:function:my-function`
  + **ARN partiel** – `123456789012:function:my-function`

## Partage des ressources cross-origin (CORS)
<a name="urls-cors"></a>

Pour définir comment différentes origines peuvent accéder à l’URL de votre fonction, utilisez le [partage de ressources cross-origin (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). Nous vous recommandons de configurer CORS si vous avez l’intention d’appeler l’URL de votre fonction à partir d’un autre domaine. Lambda prend en charge les en-têtes CORS suivants pour les fonctions. URLs


| En-têtes CORS | Propriété de configuration CORS | Exemples de valeur | 
| --- | --- | --- | 
| [ Access-Control-Allow-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) | `AllowOrigins` | `*` (autoriser toutes les origines)<br />`https://www.example.com`<br />`http://localhost:60905` | 
| [ Access-Control-Allow-Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods) | `AllowMethods` | `GET`, `POST`, `DELETE`, `*` | 
| [ Access-Control-Allow-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) | `AllowHeaders` | `Date`, `Keep-Alive`, `X-Custom-Header` | 
| [ Access-Control-Expose-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers) | `ExposeHeaders` | `Date`, `Keep-Alive`, `X-Custom-Header` | 
| [ Access-Control-Allow-Credentials](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials) | `AllowCredentials` | `TRUE` | 
| [ Access-Control-Max-Age](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age) | `MaxAge` | `5` (par défaut), `300` | 

Lorsque vous configurez CORS pour une URL de fonction à l'aide de la console Lambda ou du AWS CLI, Lambda ajoute automatiquement les en-têtes CORS à toutes les réponses via l'URL de la fonction. Vous pouvez également ajouter manuellement des en-têtes CORS à la réponse de votre fonction. En cas de conflit d’en-têtes, le comportement attendu dépend du type de la requête :
+ Pour les requêtes en amont, telles que les requêtes OPTIONS, les en-têtes CORS configurés sur l’URL de la fonction ont priorité. Lambda renvoie uniquement ces en-têtes CORS dans la réponse.
+ Pour les requêtes autres que celles effectuées en amont, telles que les requêtes GET ou POST, Lambda renvoie à la fois les en-têtes CORS configurés sur l’URL de la fonction, ainsi que les en-têtes CORS renvoyés par la fonction. Cela peut entraîner une duplication d’en-têtes CORS dans la réponse. Vous pouvez voir une erreur similaire à ce qui suit : `The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed`.

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

## Fonction d'étranglement URLs
<a name="urls-throttling"></a>

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 débit des demandes traitées par votre fonction Lambda via une URL de 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 débit de demandes 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 RPS maximal est de 1 000.

Lorsque la simultanéité de la fonction dépasse la simultanéité réservée, l’URL de votre fonction renvoie un code d’état HTTP `429`. Si votre fonction reçoit une demande qui dépasse le maximum de 10 fois le RPS par rapport à la simultanéité réservée configurée, vous recevez également une erreur HTTP `429`. Pour de plus amples informations sur la simultanéité réservée, consultez [Configuration de la simultanéité réservée pour une fonction](configuration-concurrency.md).

## Fonction de désactivation URLs
<a name="urls-deactivating"></a>

En cas d’urgence, vous pouvez rejeter tout le trafic vers l’URL de fonction. Pour désactiver votre URL de fonction, définissez la simultanéité réservée sur zéro. Cela limite toutes les demandes envoyées à l’URL de votre fonction, ce qui entraîne des réponses d’état HTTP `429`. Pour réactiver l’URL de votre fonction, 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
<a name="w2aac39c81c53"></a>

Lorsque vous supprimez une URL de fonction, vous ne pouvez pas la récupérer. La création d’une nouvelle URL de fonction entraînera une adresse URL différente.

**Note**  
Si vous supprimez une URL de fonction avec un type d’authentification `NONE`, 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](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Choisissez le nom de la fonction.

1. Choisissez l’onglet **Configuration**, puis **Function URL** (URL de fonction).

1. Sélectionnez **Delete** (Supprimer).

1. Entrez le mot *delete* dans le champ pour confirmer la suppression.

1. Sélectionnez **Delete (Supprimer)**.

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