

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.

# Déploiement d’une API REST dans API Gateway
<a name="how-to-deploy-api"></a>

 Après avoir créé votre API, vous devez la déployer pour que vos utilisateurs puissent l’appeler. 

Pour déployer une API, vous devez créer un déploiement d’API et l’associer à une étape. Une étape est une référence logique à un état du cycle de vie de votre API (par exemple, `dev`, `prod`, `beta`, `v2`). Les étapes d’API sont identifiées par l’ID de l’API et un nom d’étape. Elles sont incluses dans l’URL que vous utilisez pour appeler l’API. Chaque étape est une référence nommée à un déploiement de l'API et elle est mise à la disposition des applications clientes à appeler. 

**Important**  
Chaque fois que vous mettez à jour une API, vous devez redéployer l’API vers une étape existante ou vers une nouvelle étape. La mise à jour d’une API inclut la modification des routes, des méthodes, des intégrations, des mécanismes d’autorisation, des ressources de politiques et de tout élément autre que les paramètres d’étape. 

À mesure que votre API évolue, vous pouvez continuer à la déployer dans différentes étapes sous forme de versions distinctes de l’API. Vous pouvez également déployer vos mises à jour d’API en tant que [déploiement de version Canary](canary-release.md). Cela permet à vos clients API d’accéder, au cours de la même étape, à la version de production via la version de production, et à la version mise à jour via la version Canary. 

Pour appeler une API déployée, le client soumet une demande par rapport à l’URL d’une API. L’URL est déterminée par le protocole d’une API (HTTP(S) ou (WSS)), le nom d’hôte, le nom de l’étape et (pour l’API REST) le chemin d’accès à la ressource. Le nom d’hôte et le nom de l’étape déterminent l’URL de base de l’API. 

Avec le nom de domaine par défaut de l’API, l’URL de base (par exemple) d’une API REST à une étape donnée (`{stageName}`) a le format suivant :

```
https://{restapi-id}.execute-api.{region}.amazonaws.com/{stageName}
```

 Pour rendre une URL de base par défaut de l’API plus conviviale, vous pouvez créer un nom de domaine personnalisé (par exemple, `api.example.com`) pour remplacer le nom d’hôte par défaut de l’API. Pour prendre en charge plusieurs API sous le nom de domaine personnalisé, vous devez mapper une étape d’API à un chemin de base. 

Avec un nom de domaine personnalisé `{api.example.com}` et l’étape d’API mappée à un chemin de base (`{basePath}`) sous le nom de domaine personnalisé, l’URL de base d’une API REST est remplacée par : 

```
https://{api.example.com}/{basePath}
```

 Pour chaque étape, vous pouvez optimiser les performances de l’API en ajustant les limitations de demande au niveau du compte par défaut et en activant la mise en cache des API. Vous pouvez également activer la journalisation des appels d’API dans CloudTrail ou CloudWatch, et sélectionner un certificat client pour que le backend authentifie les demandes d’API. En outre, vous pouvez remplacer des paramètres au niveau d’une étape pour des méthodes individuelles et définir des variables d’étape pour transmettre à l’intégration d’API des contextes d’environnement spécifiques à l’étape au moment de l’exécution. 

Les étapes permettent un contrôle de version solide de votre API. Par exemple, vous pouvez déployer une API dans une étape `test` et une étape `prod`, puis utiliser l’étape `test` comme version de test et l’étape `prod` comme version stable. Une fois que les mises à jour passent le test, vous pouvez migrer l’étape `test` vers l’étape `prod`. Pour ce faire, redéployez l’API dans l’étape `prod` ou mettez à jour une valeur de variable d’étape en remplaçant le nom d’étape `test` par `prod`.

 Dans cette section, nous expliquons comment déployer une API en utilisant la [console API Gateway](https://console.aws.amazon.com/apigateway) ou en appelant l’[API REST API Gateway](https://docs.aws.amazon.com/apigateway/latest/api/). Pour utiliser d’autres outils, reportez-vous à la documentation de la [CLI AWS](https://docs.aws.amazon.com/cli/latest/reference/apigateway/) ou d’un [kit AWS SDK](https://aws.amazon.com/developer/tools/#sdk). 

**Topics**
+ [Création d’un déploiement pour une API REST dans API Gateway](set-up-deployments.md)
+ [Configuration d’une étape pour une API REST dans API Gateway](set-up-stages.md)
+ [Configuration d’un déploiement de la version Canary API Gateway](canary-release.md)
+ [Mises à jour de REST APIs nécessitant un redéploiement](updating-api.md)

# Création d’un déploiement pour une API REST dans API Gateway
<a name="set-up-deployments"></a>

 Dans API Gateway, le déploiement d’une API REST est représenté par une ressource [Deployment](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html). Il est similaire à un exécutable d’une API qui est représentée par une ressource [RestApi](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html). 

Pour que le client appelle l’API, vous devez créer un déploiement et y associer une étape. Une étape est représentée par une ressource [Stage](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html). Elle représente un instantané de l’API, y compris les méthodes, les intégrations, les modèles, les modèles de mappage et les mécanismes d’autorisation Lambda (anciennement appelés mécanismes d’autorisation personnalisés). Lorsque vous mettez à jour l’API, vous pouvez redéployer l’API en associant une nouvelle étape au déploiement existant. Nous aborderons la création d’une étape sous [Configuration d’une étape pour une API REST dans API Gateway](set-up-stages.md).

**Topics**
+ [Création d’un déploiement](#create-deployment)
+ [Prochaines étapes pour le déploiement de votre API](#apigateway-deployment-next-steps)

## Création d’un déploiement
<a name="create-deployment"></a>

Les procédures suivantes montrent comment créer un déploiement pour une API REST.

------
#### [ AWS Management Console ]

 Vous devez avoir créé une API REST avant de la déployer pour la première fois. Pour plus d’informations, consultez [Développez REST APIs dans API Gateway](rest-api-develop.md). 

 La console API Gateway vous permet de déployer une API en créant un déploiement et en l’associant à une étape nouvelle ou existante. 

1. Connectez-vous à la console API Gateway à l’adresse [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1.  Dans le volet de navigation **APIs**, sélectionnez l’API que vous souhaitez déployer. 

1. Dans le volet **Resources**, sélectionnez **Deploy API**.

1. Pour **Étape**, sélectionnez l’une des options suivantes :

   1. Pour créer une nouvelle étape, sélectionnez **Nouvelle étape**, puis entrez un nom dans **Nom de l’étape**. Vous pouvez éventuellement fournir une description du déploiement dans **Description du déploiement**.

   1. Pour choisir une étape existante, sélectionnez le nom de l’étape dans le menu déroulant. Vous pouvez également fournir une description du nouveau déploiement dans **Description du déploiement**.

   1. Pour créer un déploiement qui n’est pas associé à une étape, sélectionnez **Aucune étape**. Plus tard, vous pourrez associer ce déploiement à une étape.

1. Choisissez **Deploy (Déployer)**.

------
#### [ AWS CLI ]

Lorsque vous créez un déploiement, vous instanciez la ressource [Deployment](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html).

La commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) suivante crée un déploiement :

```
 aws apigateway create-deployment --rest-api-id rest-api-id
```

Vous ne pouvez pas appeler l’API tant que vous n’associez pas ce déploiement à une étape. Si l’étape existe déjà, remplacez sa propriété [deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) par l’ID du déploiement que vous venez de créer. La commande [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) suivante met à jour l’étape avec un nouveau déploiement. Dans la console, cette opération s’appelle **déploiement actif**.

```
 aws apigateway update-stage \
    --rest-api-id rest-api-id \ 
    --stage-name 'stage-name' \ 
    --patch-operations op='replace',path='/deploymentId',value='deployment-id'
```

Vous pouvez également associer le déploiement que vous êtes en train de créer à une nouvelle étape. La commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) suivante crée un déploiement et l’associe à une nouvelle étape appelée `beta` :

```
 aws apigateway create-deployment \
    --rest-api-id rest-api-id \
    --stage-name beta
```

------

Pour redéployer une API, exécutez les mêmes étapes. Vous pouvez réutiliser la même étape.

## Prochaines étapes pour le déploiement de votre API
<a name="apigateway-deployment-next-steps"></a>

Les prochaines étapes pour le déploiement de votre API sont les suivantes.

Modification des paramètres d’étape  
Une fois qu’une API est déployée, vous pouvez modifier les paramètres d’étape pour activer ou désactiver le cache API, la journalisation ou les limitations de demande. Vous pouvez également choisir un certificat client pour que le backend authentifie API Gateway et définisse des variables d’étape afin de transmettre le contexte de déploiement à l’intégration d’API au moment de l’exécution. Pour plus d’informations, consultez [Modification des paramètres d’étape](set-up-stages.md#how-to-stage-settings).  
Après avoir modifié les paramètres d’étape, vous devez redéployer l’API pour que les modifications prennent effet.  
 Si les paramètres mis à jour, par exemple, l’activation de la journalisation, nécessitent un nouveau rôle IAM, vous pouvez ajouter le rôle IAM requis sans redéployer l’API. Cependant, cela peut prendre quelques minutes avant que le nouveau rôle IAM prenne effet. Avant cela, les traces de vos appels d’API ne sont pas consignées, même si vous avez activé l’option de journalisation. 

Choix de différentes combinaisons d’étapes de déploiement  
 Étant donné qu’un déploiement représente un instantané d’API et qu’une étape définit un chemin vers un instantané, vous pouvez choisir différentes combinaisons d’étapes de déploiement pour contrôler la façon dont les utilisateurs appellent différentes versions de l’API. Cela s’avère utile, par exemple, lorsque vous voulez restaurer l’état de l’API à un déploiement antérieur ou fusionner une branche « privée » de l’API dans une branche publique.   
 La procédure suivante montre comment procéder à l’aide de l’éditeur **Stage Editor (Éditeur d’étape)** dans la console API Gateway. Nous supposons que vous devez avoir déployé une API plusieurs fois.   

1. Si vous n’êtes pas déjà dans le volet **Étapes**, dans le panneau de navigation principal, choisissez **Étapes**.

1. Sélectionnez l’étape que vous souhaitez mettre à jour.

1. Sous l’onglet **Historique de déploiement**, sélectionnez le déploiement que vous voulez que l’étape utilise. 

1. Choisissez **Modifier le déploiement actif**.

1. Confirmez que vous souhaitez changer le déploiement actif et choisissez **Modifier le déploiement actif** dans la boîte de dialogue **Rendre le déploiement actif**.

Transmission des données spécifiques au déploiement à votre API.  
 Pour un déploiement, vous pouvez définir ou modifier des variables d’étape pour transmettre des données spécifiques au déploiement à l’intégration d’API au moment de l’exécution. Vous pouvez effectuer cette opération dans l’onglet **Stage Variables** dans l’éditeur **Stage Editor**. Pour plus d’informations, consultez les instructions dans [Utilisation de variables d’étape pour une API REST dans API Gateway](stage-variables.md).

# Configuration d’une étape pour une API REST dans API Gateway
<a name="set-up-stages"></a>

Une étape est une référence nommée à un déploiement qui est un instantané de l’API. Vous utilisez une [Stage (Étape)](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) pour gérer et optimiser un déploiement spécifique. Par exemple, vous pouvez configurer les paramètres d’une étape pour activer la mise en cache, personnaliser la limitation des requêtes, configurer la journalisation, définir des variables d’étapes ou attacher une version Canary à des fins de test. La section suivante montre comment créer et configurer votre étape.

## Création d’une étape
<a name="how-to-create-stage-console"></a>

 Après le déploiement initial, vous pouvez ajouter d’autres étapes et les associer à des déploiements existants. Vous pouvez utiliser la console API Gateway pour créer une étape ou vous pouvez choisir une étape existante pendant le déploiement d’une API. En règle générale, vous pouvez ajouter une nouvelle étape à un déploiement d’API avant de redéployer l’API. Pour créer une étape à l’aide de la console API Gateway, procédez comme suit : 

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez une API REST.

1. Dans le volet de navigation principal, choisissez **Étapes** sous une API.

1. Dans le volet de navigation **Étapes**, choisissez **Créer une étape**.

1.  Pour **Nom de l’étape**, entrez un nom, par exemple **prod**. 
**Note**  
Les noms d’étape peuvent contenir uniquement des caractères alphanumériques, des tirets et des traits de soulignement. La longueur maximale est de 128 caractères.

1.  (Facultatif) Pour **Description**, entrez une brève description.

1. Pour **Déploiement**, sélectionnez la date et l’heure du déploiement d’API existant que vous voulez associer à cette étape.

1. Sous **Paramètres supplémentaires**, vous pouvez définir des paramètres supplémentaires pour votre étape.

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

## Modification des paramètres d’étape
<a name="how-to-stage-settings"></a>

Après un déploiement réussi d’une API, l’étape est remplie avec les paramètres par défaut. Vous pouvez utiliser la console ou l’API REST API Gateway pour modifier les paramètres de l’étape, y compris la mise en cache des API et la journalisation. Si vous avez modifié le point de terminaison par défaut de votre API REST, lorsque vous mettez à jour une étape, la modification est propagée à toutes les étapes de votre API. Les étapes suivantes vous montrent comment effectuer cette opération dans l’**Éditeur d’étape** de la console API Gateway.

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez une API REST.

1. Dans le volet de navigation principal, choisissez **Étapes** sous une API.

1. Dans le volet **Stages**, choisissez le nom de l’étape.

1. Dans la section **Détails de l’étape**, choisissez **Modifier**.

1. (Facultatif) Pour **Description de l’étape**, modifiez la description.

1. Pour **Paramètres supplémentaires**, vous modifiez les paramètres suivants :

     
**Paramètres du cache**  
Pour activer la mise en cache de l’API pour l’étape, activez **Configurer le cache d’API**. Configurez ensuite la **mise en cache au niveau de la méthode par défaut**, la **capacité du cache**, le **chiffrement des données du cache**, le **cache time-to-live (TTL)**, ainsi que les exigences relatives à l'invalidation du cache par clé.  
La mise en cache n’est active que lorsque vous activez la mise en cache au niveau de la méthode par défaut ou le cache au niveau de la méthode pour une méthode spécifique.  
Pour plus d’informations sur les paramètres de cache, consultez [Paramètres de cache pour REST APIs dans API Gateway](api-gateway-caching.md).  
Si vous activez la mise en cache d'API pour une étape d'API, la mise en cache d'API peut être facturée sur votre AWS compte. La mise en cache n'est pas éligible au niveau AWS gratuit.  
**Paramètres de limitation**  
Pour définir les cibles de limitation au niveau de l’étape pour toutes les méthodes associées à cette API, activez **Limitation**.  
Pour **Rate (Taux)**, entrez un taux cible. Il s’agit du taux, en requêtes par seconde, auquel les jetons sont ajoutés au compartiment de jetons. Ce taux au niveau de l’étape ne doit pas être supérieur au taux [au niveau du compte](api-gateway-request-throttling.md#apig-request-throttling-account-level-limits), comme indiqué dans [Quotas pour la configuration et l’exécution d’une API REST dans API Gateway](api-gateway-execution-service-limits-table.md).   
Pour **Rafale**, entrez un taux de rafale cible. Le taux de rafale correspond à la capacité du compartiment de jetons. Cela permet de passer plus de demandes pendant une période de temps que le taux cible. Ce taux en rafale au niveau de l’étape doit pas être supérieur au taux en rafale [au niveau du compte](api-gateway-request-throttling.md#apig-request-throttling-account-level-limits), comme indiqué dans [Quotas pour la configuration et l’exécution d’une API REST dans API Gateway](api-gateway-execution-service-limits-table.md).   
Les limites des taux de limitation ne sont pas strictes et sont appliquées au mieux. Dans certains cas, les clients peuvent dépasser les quotas que vous avez définis. Ne comptez pas sur la limitation pour contrôler les coûts ou bloquer l’accès à une API. Pensez à utiliser [AWS Budgets](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) pour contrôler les coûts et [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) pour gérer les demandes d’API.  
**Paramètres du pare-feu et des certificats**  
Pour associer une ACL AWS WAF Web à la scène, sélectionnez une ACL Web dans la liste déroulante **Web ACL**. Si vous le souhaitez, choisissez **Block API Request if WebACL cannot be evaluated (Fail- Close) (Bloquer la demande d’API si la liste ACL web ne peut pas être évaluée (Échec - Fermeture))**.  
Pour sélectionner un certificat client pour votre étape, sélectionnez-le dans le menu déroulant **Certificat de client**.

1. Sélectionnez **Continuer**.

1. Passez en revue vos modifications et choisissez **Enregistrer les modifications**.

1. Pour activer Amazon CloudWatch Logs pour toutes les méthodes associées à cette étape de cette API API Gateway, dans la section **Journaux et suivi**, choisissez **Modifier**.
**Note**  
Pour activer CloudWatch les journaux, vous devez également spécifier l'ARN d'un rôle IAM qui permet à API Gateway d'écrire des informations dans CloudWatch les journaux au nom de votre utilisateur. Pour ce faire, choisissez **Paramètres dans** le volet de navigation **APIs**principal. Ensuite, pour **le rôle CloudWatch log**, entrez l'ARN d'un rôle IAM.   
Pour les scénarios d'application courants, le rôle IAM peut associer la politique gérée d'[Amazon APIGateway PushToCloudWatchLogs](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAPIGatewayPushToCloudWatchLogs.html).  
Le rôle IAM doit également contenir la déclaration de relation d’approbation suivante :  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "apigateway.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```
  
Pour plus d'informations CloudWatch, consultez le *[guide de CloudWatch l'utilisateur Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)*.

1. Sélectionnez un niveau de journalisation dans le menu déroulant **CloudWatch Logs**. Les niveaux de journalisation sont les suivants :
   + **Désactivé** – La journalisation n’est pas activée pour cette étape. 
   + **Erreurs uniquement** – La journalisation n’est activée que pour les erreurs. 
   + **Journaux d’erreurs et d’informations** – La journalisation est activée pour tous les événements.

1. Sélectionnez **Data tracing** pour qu'API Gateway fasse rapport à CloudWatch la journalisation du suivi des données de votre étape. Cela peut être utile pour résoudre les problèmes APIs, mais peut entraîner l'enregistrement de données sensibles.
**Note**  
Nous vous recommandons de ne pas utiliser le **suivi des données** pour la production APIs.

1. Sélectionnez **les métriques détaillées** pour qu'API Gateway produise un rapport CloudWatch sur les métriques d'API de `API calls``Latency`,`Integration latency`,`400 errors`, et`500 errors`. Pour plus d'informations CloudWatch, consultez les sections [Surveillance de base et surveillance détaillée](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-metrics-basic-detailed.html) dans le guide de CloudWatch l'utilisateur Amazon.
**Important**  
Votre compte est débité pour accéder aux métriques au niveau de la méthode, mais pas aux CloudWatch métriques au niveau de l'API ou au niveau de l'étape.

1. Pour activer la journalisation des accès à une destination, activez **Journalisation des accès personnalisée**.

1. Pour **ARN de destination des journaux d’accès**, saisissez l’ARN d’un groupe de journaux ou d’un flux Firehose. 

   Le format ARN de Firehose est `arn:aws:firehose:{region}:{account-id}:deliverystream/amazon-apigateway-{your-stream-name}`. Le nom de votre flux Firehose doit être `amazon-apigateway-{your-stream-name}`.

1. Dans **Format de journal**, entrez un format de journal. Pour en savoir plus sur les exemples de formats de journal, consultez [CloudWatch formats de journal pour API Gateway](set-up-logging.md#apigateway-cloudwatch-log-formats).

1. Pour activer le suivi [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-apigateway.html) pour l’étape d’API, sélectionnez **Suivi X-Ray**. Pour de plus amples informations, veuillez consulter [Suivi des demandes des utilisateurs adressées aux API REST à l’aide de X-Ray dans API Gateway](apigateway-xray.md).

1. Sélectionnez **Save Changes (Enregistrer les modifications)**. Redéployez votre API pour que les nouveaux paramètres prennent effet.

## Remplacement des paramètres au niveau de l’étape
<a name="how-to-method-override"></a>

Après avoir personnalisé les paramètres au niveau de l’étape, vous pouvez les remplacer pour chaque méthode d’API. Certaines de ces options peuvent entraîner des frais supplémentaires pour votre Compte AWS.

1. Pour configurer les remplacements de méthode, développez l’étape sous le volet de navigation secondaire, puis choisissez une méthode.  
![\[Développez l’étape sous le volet de navigation secondaire, puis choisissez une méthode.\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/method-override-view-new-console.png)

1. Ensuite, pour **Remplacements de méthode**, choisissez **Modifier**.

1. Pour activer les CloudWatch paramètres au niveau de la méthode, pour **CloudWatch Logs**, sélectionnez un niveau de journalisation.

1. Pour activer la journalisation du suivi des données pour votre méthode, sélectionnez **Suivi des données**.
**Note**  
Nous vous recommandons de ne pas utiliser le **suivi des données** pour la production APIs.

1. Pour activer les métriques détaillées au niveau de la méthode, sélectionnez **Métriques détaillées**. Votre compte est débité pour accéder aux métriques au niveau de la méthode, mais pas aux CloudWatch métriques au niveau de l'API ou au niveau de l'étape.

1. Pour activer la limitation au niveau de la méthode, sélectionnez **Limitation.** Saisissez les options appropriées au niveau de la méthode. Pour en savoir plus sur la limitation, consultez [Limitez les requêtes adressées à votre REST APIs pour améliorer le débit dans API Gateway](api-gateway-request-throttling.md).

1. Pour configurer le cache au niveau de la méthode, sélectionnez **Activer le cache de la méthode**. Si vous modifiez le paramètre de mise en cache au niveau de la méthode par défaut dans **Détails de l’étape**, ce paramètre n’en sera pas affecté.

1. Choisissez **Enregistrer**.

# Ajouter une API REST API Gateway en tant que cible pour Amazon Bedrock AgentCore Gateway
<a name="mcp-server"></a>

Une AgentCore passerelle Amazon Bedrock fournit aux développeurs d'agents d'intelligence artificielle un moyen sécurisé d'exposer votre API Gateway REST en APIs tant qu'outils compatibles avec le Model Context Protocol (MCP). AgentCore Gateway utilise des cibles pour définir les outils. Lorsque vous ajoutez votre stage en tant que cible, votre passerelle devient une URL MCP unique qui permet à un agent d'accéder aux outils. Pour plus d'informations, consultez les [étapes de l'API REST API Gateway en tant que cibles](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-target-api-gateway.html) dans le manuel *Amazon Bedrock AgentCore Gateway Developer Guide*.

Les cibles d'API Gateway connectent votre AgentCore passerelle aux étapes de votre REST APIs. Vous pouvez inclure l'ensemble de l'étape en tant que cible ou sélectionner des ressources. Après avoir créé la cible API Gateway, AgentCore Gateway traduit les demandes MCP entrantes en requêtes HTTP et gère le formatage des réponses. Les clients MCP peuvent récupérer la documentation de l'API à l'aide de la `tools/list` méthode et l'invoquer APIs à l'aide de la `tools/call` méthode.

## Considérations
<a name="w2aac15c11c11c34c11b7"></a>

Les considérations suivantes peuvent avoir un impact sur votre utilisation de l'ajout d'une étape en tant que cible à une AgentCore passerelle :
+ Vous devez déjà disposer d'une AgentCore passerelle.
+ Seul le REST public APIs est pris en charge.
+ Le point de terminaison par défaut de votre API ne peut pas être désactivé.
+ Chaque méthode de votre API doit soit avoir un [nom d'opération](https://docs.aws.amazon.com/apigateway/latest/api/API_PutMethod.html#apigw-PutMethod-request-operationName) défini, soit vous devez créer un remplacement de nom lorsque vous ajoutez votre étape en tant que cible. Ce nom est utilisé comme nom d'outil que les agents utilisent pour interagir avec votre méthode.
+ Vous pouvez utiliser `API_KEY``NO_AUTH`, ou des types de fournisseurs `GATEWAY_IAM_ROLE` d'informations d'identification pour l'authentification sortante afin de permettre à votre passerelle d'accéder à votre API. Le fournisseur `API_KEY` d'informations d'identification est défini par AgentCore Gateway. Vous pouvez utiliser votre clé d'API API Gateway existante. Pour plus d'informations, consultez la section [Configuration de l'authentification sortante](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-outbound-auth.html).
+ Si vous utilisez un groupe d'utilisateurs Amazon Cognito ou un autorisateur Lambda pour contrôler l'accès à votre API, les clients MCP ne peuvent pas y accéder.
+ Votre API doit se trouver dans le même compte et dans la même région que votre AgentCore passerelle.

## Ajouter une étape d'une API en tant que cible pour une AgentCore passerelle
<a name="mcp-server-api-gateway"></a>

La procédure suivante montre comment ajouter une étape d'une API en tant que cible pour une AgentCore passerelle.

**Pour ajouter une étape d'une API en tant que cible pour une AgentCore passerelle**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez une API REST déployée sur une étape.

1. Dans le volet de navigation principal, choisissez **Étapes**.

1. Choisissez **Stage actions**, puis **Create MCP target**.

1. Pour **AgentCore Gateway**, sélectionnez une AgentCore Gateway.

1. Pour **Nom de la cible**, entrez un nom de cible.

1. Pour **Description de la cible**, entrez une description.

1. Conservez l'API et le stage fournis.

1. Pour **Select API resources**, sélectionnez les ressources de votre API auxquelles les agents utilisant votre AgentCore passerelle peuvent accéder.

   Si vous ne sélectionnez aucune ressource, un agent ne peut pas consulter la documentation ni appeler le point de terminaison. 

1. La combinaison de la ressource et de la méthode correspond aux opérations de l'outil. Si votre opération n'a pas de nom, créez un remplacement de nom.

   Vous pouvez également définir un nom d'opération pour une méthode lorsque vous la créez.

1. **Pour la **configuration de l'authentification sortante**, choisissez le **rôle IAM**, **Aucune autorisation** ou la clé API.**

1. Sélectionnez **Créer une cible**.

Pour afficher toutes les AgentCore passerelles qui ont accès à votre compte APIs, choisissez la section **cibles MCP** dans le volet de navigation principal. Dans cette section, vous pouvez créer une cible MCP pour n'importe quelle API de votre région déployée sur une étape. Choisissez **Create MCP target** et suivez les étapes précédentes.

Vous pouvez également consulter les outils disponibles pour votre cible et modifier votre cible dans la console AgentCore Gateway. Pour plus d'informations, voir [Ajouter des cibles à une AgentCore passerelle existante](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-building-adding-targets.html).

# Suppression d'une étape
<a name="how-to-delete-stage"></a>

Lorsque vous n'avez plus besoin d'une étape, vous pouvez le supprimer pour éviter de payer pour des ressources inutilisées. Les étapes suivantes vous montrent comment utiliser la console API Gateway pour supprimer une étape.

**Avertissement**  
 Suite à la suppression d'une étape, il est possible que tout ou partie de l'API correspondante soit inutilisable par les appelants de l'API. La suppression d'une étape ne peut pas être annulée, mais vous pouvez recréer l'étape et l'associer au même déploiement. 

1. Connectez-vous à la console API Gateway à l’adresse [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Choisissez une API REST.

1. Dans le volet de navigation principal, choisissez **Étapes**.

1. Dans le volet **Étapes**, sélectionnez l'étape à supprimer, puis choisissez **Actions d'étape** et **Supprimer une étape**.

1. Lorsque vous y êtes invité, entrez **confirm**, puis choisissez **Supprimer**.

# Configuration de balises pour une étape d’API dans API Gateway
<a name="set-up-tags"></a>

Dans API Gateway, vous pouvez ajouter une balise à une étape d’API, supprimer la balise de l’étape ou afficher la balise. Pour ce faire, vous pouvez utiliser la console API Gateway, l’AWS CLI/le kit SDK ou l’API REST API Gateway.

Une étape peut également hériter des balises de son API REST parente. Pour de plus amples informations, veuillez consulter [Héritage de balises dans l’API Amazon API Gateway V1](apigateway-tagging-supported-resources.md#apigateway-tagging-inheritance).

Pour plus d’informations sur le balisage des ressources API Gateway, consultez [Ajout de balises à vos ressources API Gateway](apigateway-tagging.md).

**Topics**
+ [Configuration des balises pour une étape d’API à l’aide de la console API Gateway](#set-up-tags-using-console)
+ [Configuration de balises pour une étape d’API à l’aide de l’AWS CLI](#set-up-tags-using-cli)
+ [Configuration des balises pour une étape d’API à l’aide de l’API REST API Gateway](#set-up-tags-using-api)

## Configuration des balises pour une étape d’API à l’aide de la console API Gateway
<a name="set-up-tags-using-console"></a>

La procédure suivante explique comment configurer des balises pour une étape d’API.

**Pour configurer les balises pour une étape d’API à l’aide de la console API Gateway**

1. Connectez-vous à la console API Gateway.

1. Choisissez une API existante ou créez-en une qui comporte des ressources, des méthodes et les intégrations correspondantes.

1. Choisissez une étape ou déployez l’API dans une nouvelle étape.

1. Dans le volet de navigation principal, choisissez **Étapes**.

1. Sélectionnez l’onglet **Tags** (Identifications). Vous devrez peut-être choisir la flèche droite pour afficher l’onglet.

1. Choisissez **Gérer les balises**.

1. Dans **Éditeur de balise**, choisissez **Ajouter une balise**. Entrez une clé de balise (par exemple, `Department`) dans le champ **Key (Clé)**, puis entrez une valeur de balise (par exemple, `Sales`) dans le champ colonne **Value (Valeur)**. Choisissez **Enregistrer** pour enregistrer la balise.

1.  Si nécessaire, répétez l’étape 5 pour ajouter des balises supplémentaires à l’étape d’API. Le nombre maximal de balises par étape est de 50.

1.  Pour supprimer une balise existante de l’étape, choisissez **Supprimer**.

1. Si l’API a déjà été déployée dans la console API Gateway, vous devez la redéployer pour que les changements prennent effet.

## Configuration de balises pour une étape d’API à l’aide de l’AWS CLI
<a name="set-up-tags-using-cli"></a>

Vous pouvez configurer des balises pour une étape d’API à l’aide de l’AWS CLI en utilisant la commande [create-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-stage.html) ou [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/apigateway/tag-resource.html). Vous pouvez supprimer une ou plusieurs balises d’une étape d’API à l’aide de la commande [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/apigateway/untag-resource.html). 

La commande [create-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-stage.html) suivante ajoute une balise lors de la création d’une étape `test` :

```
aws apigateway create-stage --rest-api-id abc1234 --stage-name test --description 'Testing stage' --deployment-id efg456 --tag Department=Sales
```

La commande [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/apigateway/tag-resource.html) suivante ajoute une balise à une étape `prod` :

```
aws apigateway tag-resource --resource-arn arn:aws:apigateway:us-east-2::/restapis/abc123/stages/prod --tags Department=Sales
```

La commande [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/apigateway/untag-resource.html) suivante supprime la balise `Department=Sales` de l’étape `test` :

```
aws apigateway untag-resource --resource-arn arn:aws:apigateway:us-east-2::/restapis/abc123/stages/test --tag-keys Department 
```

## Configuration des balises pour une étape d’API à l’aide de l’API REST API Gateway
<a name="set-up-tags-using-api"></a>

Vous pouvez configurer des balises pour une étape d’API à l’aide de l’API REST API Gateway en effectuant l’une des actions suivantes :
+ Appelez [https://docs.aws.amazon.com/apigateway/latest/api/API_TagResource.html](https://docs.aws.amazon.com/apigateway/latest/api/API_TagResource.html) pour baliser une étape d’API.
+  Appelez [https://docs.aws.amazon.com/apigateway/latest/api/API_UntagResource.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UntagResource.html) pour supprimer une ou plusieurs balises d’une étape d’API.
+ Appelez [https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html) pour ajouter une ou plusieurs balises à une étape d’API que vous êtes en train de créer.

Vous pouvez également appeler [https://docs.aws.amazon.com/apigateway/latest/api/API_GetTags.html](https://docs.aws.amazon.com/apigateway/latest/api/API_GetTags.html) pour décrire les balises d’une étape d’API.

### Balisage d’une étape d’API
<a name="tag-a-stage-using-api"></a>

Une fois que vous avez déployé une API (`m5zr3vnks7`) sur une étape (`test`), balisez cette dernière en appelant [https://docs.aws.amazon.com/apigateway/latest/api/API_TagResource.html](https://docs.aws.amazon.com/apigateway/latest/api/API_TagResource.html). L’ARN (Amazon Resource Name) obligatoire de l’étape (`arn:aws:apigateway:us-east-1::/restapis/m5zr3vnks7/stages/test`) doit être encodé en URL (`arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftest`). 

```
PUT /tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftest

{
  "tags" : {
    "Department" : "Sales"
  }
}
```

 Vous pouvez également utiliser la demande précédente pour mettre à jour une balise existante avec une nouvelle valeur. 

Vous pouvez ajouter des balises à une étape lorsque vous appelez [https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html) pour créer l’étape :

```
POST /restapis/<restapi_id>/stages

{
  "stageName" : "test",
  "deploymentId" : "adr134",
  "description" : "test deployment",
  "cacheClusterEnabled" : "true",
  "cacheClusterSize" : "500",
  "variables" : {
    "sv1" : "val1"
  },
  "documentationVersion" : "test",

  "tags" : {
    "Department" : "Sales",
    "Division" : "Retail"
  }
}
```

### Suppression du balisage d’une étape d’API
<a name="untag-a-stage-using-api"></a>

 Pour supprimer la balise `Department` de l’étape, appelez [https://docs.aws.amazon.com/apigateway/latest/api/API_UntagResource.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UntagResource.html) : 

```
DELETE /tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftest?tagKeys=Department
Host: apigateway.us-east-1.amazonaws.com
Authorization: ...
```

 Pour supprimer plusieurs balises, utilisez une liste de clés de balise séparées par des virgules dans l’expression de requête : par exemple, `?tagKeys=Department,Division,…`. 

### Description des balises d’une étape d’API
<a name="get-tags-using-api"></a>

Pour décrire les balises existantes au niveau d’une étape donnée, appelez [https://docs.aws.amazon.com/apigateway/latest/api/API_GetTags.html](https://docs.aws.amazon.com/apigateway/latest/api/API_GetTags.html):

```
GET /tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftags
Host: apigateway.us-east-1.amazonaws.com
Authorization: ...
```

La réponse positive est semblable à ce qui suit :

```
200 OK

{
    "_links": {
        "curies": {
            "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-tags-{rel}.html",
            "name": "tags",
            "templated": true
        },
        "tags:tag": {
            "href": "/tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftags"
        },
        "tags:untag": {
            "href": "/tags/arn%3Aaws%3Aapigateway%3Aus-east-1%3A%3A%2Frestapis%2Fm5zr3vnks7%2Fstages%2Ftags{?tagKeys}",
            "templated": true
        }
    },
    "tags": {
        "Department": "Sales"
    }
}
```

# Utilisation de variables d’étape pour une API REST dans API Gateway
<a name="stage-variables"></a>

Les variables d’étape sont des paires clé-valeur que vous pouvez définir en tant qu’attributs de configuration associés à une étape de déploiement d’une API REST. Elles se comportent comme les variables d’environnement et peuvent être utilisées dans vos modèles de mappage et de configuration d’API. Grâce aux étapes de déploiement dans API Gateway, vous pouvez gérer plusieurs étapes de version pour chaque API et utiliser des variables d’étape pour configurer une étape de déploiement d’API afin qu’elle interagisse avec différents points de terminaison backend.

Les variables d’étape ne sont pas destinées à être utilisées pour des données sensibles, telles que les informations d’identification. Pour transmettre des données sensibles aux intégrations, utilisez un AWS Lambda autorisateur. Vous pouvez transmettre des données sensibles aux intégrations dans la sortie du mécanisme d’autorisation Lambda. Pour en savoir plus, consultez la section [Sortie d’un mécanisme d’autorisation Lambda API Gateway](api-gateway-lambda-authorizer-output.md).

## Cas d’utilisation des variables d’étape
<a name="use-cases"></a>

Voici quelques cas d’utilisation pour vos variables d’étape.

**Spécification d’un autre point de terminaison backend**  
Votre API peut transmettre une demande `GET` en tant que proxy HTTP à l’hôte web backend. Vous pouvez utiliser une variable d’étape afin qu’API Gateway appelle `example.com` lorsque les appelants d’API invoquent votre point de terminaison de production. Ensuite, lorsque les appelants d’API invoquent l’étape bêta, API Gateway appelle un autre hôte web, par exemple `beta.example.com`. De même, vous pouvez utiliser des variables d’étape pour spécifier un nom de fonction AWS Lambda différent pour chaque étape de votre API. Vous ne pouvez pas utiliser une variable d’étape pour définir un autre point de terminaison d’intégration, par exemple pour pointer la demande `GET` vers une intégration de proxy HTTP dans une étape et une intégration de proxy Lambda dans une autre étape.  
Lorsque vous spécifiez un nom de fonction Lambda en tant que valeur de variable d’étape, vous devez configurer les autorisations sur cette fonction Lambda manuellement. Lorsque vous spécifiez une fonction Lambda dans la console API Gateway, une AWS CLI commande apparaît pour configurer les autorisations appropriées. Pour ce faire, vous pouvez également utiliser la AWS CLI commande suivante.  

```
aws lambda add-permission --function-name "arn:aws:lambda:us-east-2:123456789012:function:my-function" --source-arn "arn:aws:execute-api:us-east-2:123456789012:api_id/*/HTTP_METHOD/resource" --principal apigateway.amazonaws.com --statement-id apigateway-access --action lambda:InvokeFunction
```

**Transmission d’informations à l’aide de modèles de mappage**  
Vous pouvez également accéder aux variables d’étape dans les modèles de mappage, ou transmettre les paramètres de configuration à votre backend AWS Lambda ou HTTP. Par exemple, vous pouvez souhaiter réutiliser la même fonction Lambda pour plusieurs étapes de votre API, mais cette fonction doit lire les données d’une table Amazon DynamoDB différente selon l’étape. Dans les modèles de mappage qui génèrent la demande de la fonction Lambda, vous pouvez utiliser des variables d’étape pour transmettre le nom de la table à Lambda.

Pour utiliser une variable d’étape, vous devez d’abord la configurer, puis lui attribuer une valeur. Par exemple, pour personnaliser le point de terminaison d’intégration HTTP, créez d’abord la variable d’étape `url`, puis saisissez sa valeur, **http://\$1\$1stageVariables.url\$1**, dans la demande d’intégration de votre API. Cette valeur dit à API Gateway de remplacer votre variable d’étape `${}` au moment de l’exécution, en fonction de l’étape où se trouve votre API. Pour de plus amples informations, veuillez consulter [Configuration des variables d'étape pour REST APIs dans API Gateway](how-to-set-stage-variables-aws-console.md). 

# Configuration des variables d'étape pour REST APIs dans API Gateway
<a name="how-to-set-stage-variables-aws-console"></a>

Cette section explique comment définir diverses variables d’étape pour deux étapes de déploiement d’un exemple d’API à l’aide de la console Amazon API Gateway. Pour comprendre comment utiliser les variables d’étape dans API Gateway, nous vous recommandons de suivre toutes les procédures décrites dans cette section.

## Conditions préalables
<a name="how-to-set-stage-variables-aws-console-prerequisites"></a>

Avant de commencer, vérifiez que vous respectez les conditions requises suivantes : 
+ Vous devez disposer d’une API disponible dans API Gateway. Suivez les instructions de la section [Développez REST APIs dans API Gateway](rest-api-develop.md).
+ Vous devez avoir déployé l’API au moins une fois. Suivez les instructions de la section [Déploiement d’une API REST dans API Gateway](how-to-deploy-api.md).
+ Vous devez avoir créé la première étape pour une API déployée. Suivez les instructions de la section [Création d’une étape](set-up-stages.md#how-to-create-stage-console).

  

## Invocation d’un point de terminaison HTTP via une API avec une variable d’étape
<a name="how-to-set-stage-variables-aws-console-http-endpoint"></a>

Cette procédure décrit comment créer une variable d’étape pour un point de terminaison HTTP et deux étapes pour votre API. En outre, vous devez créer les variables d’étape `url`, `stageName` et `function` qui sont utilisées dans les procédures suivantes de cette section.

**Pour invoquer un point de terminaison HTTP via une API avec une variable d’étape**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Créez une API, puis créez une méthode `GET` sur la ressource racine de l’API. Définissez le type d’intégration sur **HTTP** et définissez **URL du point de terminaison** sur **http://\$1\$1stageVariables.url\$1**.

1. Déployez l’API vers une nouvelle étape nommée **beta**. 

1. Dans le volet de navigation principal, choisissez **Étapes**, puis sélectionnez l’étape **bêta**. 

1. Dans l’onglet **Variables d’étape**, choisissez **Modifier**.

1. Choisissez **Ajouter une variable d’étape**.

1. Pour **Nom**, saisissez **url**. Pour **Valeur**, entrez **httpbin.org/get**.

1. Choisissez **Ajouter une variable d’étape**, puis procédez comme suit :

   Pour **Nom**, saisissez **stageName**. Pour **Valeur**, entrez **beta**.

1. Choisissez **Ajouter une variable d’étape**, puis procédez comme suit :

   Pour **Nom**, saisissez **function**. Pour **Valeur**, entrez **HelloWorld**.

1. Choisissez **Enregistrer**.

1.  Créez maintenant une deuxième étape. Dans le volet de navigation **Étapes**, choisissez **Créer une étape**. Sous **Stage name (Nom de l’étape)**, entrez **prod**. Sélectionnez un déploiement récent dans **Déploiement**, puis choisissez **Créer une étape**.

1.  Comme pour l’étape **bêta**, définissez les trois variables d’étape (**url**, **stageName** et **function**) sur des valeurs différentes (**petstore-demo-endpoint.execute-api.com/petstore/pets**, **prod** et **HelloEveryone**) respectivement. 

1. Dans le volet de navigation **Stages**, sélectionnez **beta**. Sous **Détails de l’étape**, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis saisissez l’URL d’invocation de votre API dans un navigateur web. Cela lance la demande `GET` de l’étape **beta** sur la ressource racine de l’API. 
**Note**  
Le lien **Invoke URL** pointe sur la ressource racine de l’API à l’étape **beta**. L’entrée de l’URL dans un navigateur web appelle la méthode `GET` à l’étape **bêta** sur la ressource racine. Si les méthodes sont définies sur les ressources enfants et non sur la ressource racine elle-même, l’entrée de l’URL dans un navigateur web renvoie une réponse d’erreur `{"message":"Missing Authentication Token"}`. Dans ce cas, vous devez ajouter le nom d’une ressource enfant spécifique au lien **Invoke URL**. 

1. La réponse renvoyée par la demande `GET` à l’étape **beta** est présentée ci-dessous. Vous pouvez également vérifier le résultat en utilisant un navigateur pour accéder à l’adresse **http://httpbin.org/get**. Cette valeur a été affectée à la variable `url` à l’étape **beta**. Les deux réponses sont identiques. 

1. Dans le volet de navigation **Stages**, sélectionnez l’étape **prod**. Sous **Détails de l’étape**, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis saisissez l’URL d’invocation de votre API dans un navigateur web. Cela lance la demande `GET` de l’étape **prod** sur la ressource racine de l’API. 

1. La réponse renvoyée par la demande `GET` à l’étape **prod** est présentée ci-dessous. Vous pouvez vérifier le résultat en utilisant un navigateur pour accéder à **http ://petstore-demo-endpoint.execute-api. com/petstore/pets**. Cette valeur a été affectée à la variable `url` à l’étape **prod**. Les deux réponses sont identiques. 

## Transmission de métadonnées spécifiques à l’étape à un backend HTTP
<a name="how-to-set-stage-variables-aws-console-stage-metadata"></a>

Cette procédure explique comment utiliser une valeur de variable d’étape dans une expression de paramètre de requête pour transmettre les métadonnées spécifiques à l’étape à un backend HTTP. Nous allons utiliser la variable d’étape `stageName` déclarée dans la procédure précédente.

**Pour transmettre des métadonnées spécifiques à l’étape à un backend HTTP**

1. Dans le volet de navigation **Resource**, sélectionnez la méthode **GET**. 

   Pour ajouter un paramètre de chaîne de requête à l’URL de la méthode, sélectionnez l’onglet **Demande de méthode**, puis dans la section **Paramètres de la demande de méthode**, choisissez **Modifier**. 

1. Choisissez **Paramètres de chaîne de requête d’URL** et procédez comme suit :

   1. Sélectionnez **Add query string** (Ajouter une chaîne de requêtes).

   1. Pour **Nom**, saisissez **stageName**.

   1. Gardez **Obligatoire** et **Mise en cache** désactivés.

1. Choisissez **Enregistrer**.

1. Choisissez l’onglet **Demande d’intégration**, puis dans la section **Paramètres de la demande d’intégration**, sélectionnez **Modifier**.

1. Pour **URL du point de terminaison**, ajoutez **?stageName=\$1\$1stageVariables.stageName\$1** à la valeur d’URL définie précédemment, de sorte que l’**URL du point de terminaison** soit **http://\$1\$1stageVariables.url\$1?stageName=\$1\$1stageVariables.stageName\$1**.

1. Choisissez **Déployer l’API** et sélectionnez l’étape **bêta**.

1. Dans le volet de navigation principal, choisissez **Étapes**. Dans le volet de navigation **Stages**, sélectionnez **beta**. Sous **Détails de l’étape**, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis saisissez l’URL d’invocation de votre API dans un navigateur web. 
**Note**  
 Nous utilisons ici l’étape beta, car le point de terminaison HTTP spécifié par la variable `url`, « http://httpbin.org/get », accepte les expressions de paramètre de requête et les renvoie en tant qu’objet `args` dans sa réponse. 

1. Vous recevez la réponse suivante. Notez que la valeur `beta`, affectée à la variable d’étape `stageName`, est transmise au backend en tant qu’argument `stageName`. 

      
![\[Réponse de la méthode GET de l’API avec un point de terminaison HTTP utilisant la variable d’étape url.\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/stageVariables-new-console-invoke-beta-stage-with-url-and-stageName-response.png)

## Invocation d’une fonction Lambda via une API avec une variable d’étape
<a name="how-to-set-stage-variables-aws-console-lambda-function"></a>

Cette procédure explique comment utiliser une variable d’étape pour appeler une fonction Lambda en tant que backend de votre API. Vous allez utiliser la variable d’étape `function` déclarée dans la section [Invocation d’un point de terminaison HTTP via une API avec une variable d’étape](#how-to-set-stage-variables-aws-console-http-endpoint).

 Lorsque vous définissez une fonction Lambda en tant que valeur d’une variable d’étape, utilisez le nom local de la fonction, en incluant éventuellement son alias ou sa spécification de version, comme dans **HelloWorld**, **HelloWorld:1** ou **HelloWorld:alpha**. N’utilisez pas l’ARN de la fonction (par exemple, **arn:aws:lambda:us-east-1:123456789012:function:HelloWorld**). La console API Gateway considère la valeur de la variable d’étape d’une fonction Lambda comme le nom de fonction non qualifié et développe la variable d’étape donnée en un ARN. 

**Pour invoquer une fonction Lambda via une API avec une variable d’étape**

1. Créez une fonction Lambda nommée **HelloWorld** à l’aide de l’exécution Node.js par défaut. Le code doit contenir ce qui suit :

   ```
   export const handler = function(event, context, callback) {
       if (event.stageName)
           callback(null, 'Hello, World! I\'m calling from the ' + event.stageName + ' stage.');
       else
           callback(null, 'Hello, World! I\'m not sure where I\'m calling from...');
   };
   ```

   Pour plus d’informations sur la création d’une Fonction Lambda, consultez [Bien démarrer avec la console d’API REST](getting-started-rest-new-console.md#getting-started-rest-new-console-create-function).

1. Dans le volet **Ressources**, sélectionnez **Créer une ressource**, puis procédez comme suit :

   1. Pour **Chemin de ressources**, sélectionnez **/**.

   1. Sous **Resource Name (Nom de la ressource)**, entrez **lambdav1**.

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

1. Sélectionnez la ressource **/lambdav1**, puis choisissez **Créer une méthode**.

   Ensuite, procédez comme suit :

   1. Pour **Type de méthode**, sélectionnez **GET**.

   1. Pour **Type d’intégration**, sélectionnez **Fonction Lambda**.

   1. Maintenez **Intégration proxy Lambda** désactivée.

   1. Sous **Lambda function (Fonction Lambda)**, saisissez `${stageVariables.function}`.  
![\[Création d’une méthode GET intégrée avec une fonction Lambda spécifiée par la variable d’étape function\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/stageVariables-new-console-create-lambda-get-method.png)
**Astuce**  
Lorsque vous y êtes invité avec la commande **Ajouter une autorisation**, copiez la commande [add-permission](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html). Exécutez la commande sur chaque Fonction Lambda qui sera affectée à la variable d’étape `function`. Par exemple, si la valeur `$stageVariables.function` est `HelloWorld`, exécutez la commande AWS CLI suivante :   

      ```
      aws lambda add-permission --function-name arn:aws:lambda:us-east-1:account-id:function:HelloWorld --source-arn arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/lambdav1 --principal apigateway.amazonaws.com --statement-id statement-id-guid --action lambda:InvokeFunction
      ```
 Si vous ne le faites pas, l’appel de la méthode renverra une réponse `500 Internal Server Error`. Remplacez `${stageVariables.function}` par le nom de la Fonction Lambda qui est affectée à la variable d’étape.   
   

![\[AWS CLI commande pour ajouter l'autorisation à la fonction Lambda à invoquer par la méthode que vous avez créée.\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/stageVariables-new-console-add-permission-to-lambda-function.png)


   1. Choisissez **Créer une méthode**.

1. Déployez l’API dans les étapes **prod** et **beta**.

1. Dans le volet de navigation principal, choisissez **Étapes**. Dans le volet de navigation **Stages**, sélectionnez **beta**. Sous **Détails de l’étape**, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis saisissez l’URL d’invocation de votre API dans un navigateur web. Ajoutez **/lambdav1** à l’URL avant d’appuyer sur Entrée.

   Vous recevez la réponse suivante.

   ```
   "Hello, World! I'm not sure where I'm calling from..."
   ```

## Transmission des métadonnées spécifiques à l’étape à une fonction Lambda via une variable d’étape
<a name="pass-version-info-to-lambda-backend-with-stage-variable"></a>

Cette procédure explique comment utiliser une variable d’étape pour transmettre les métadonnées de configuration spécifiques à l’étape à une fonction Lambda. Vous créez une méthode `POST` et un modèle de mappage d’entrée pour générer la charge utile à l’aide de la variable d’étape `stageName` déclarée précédemment.

**Pour transmettre des métadonnées spécifiques à l’étape à une fonction Lambda via une variable d’étape**

1. Sélectionnez la ressource **/lambdav1**, puis choisissez **Créer une méthode**.

   Ensuite, procédez comme suit :

   1. Pour **Type de méthode**, sélectionnez **POST**.

   1. Pour **Type d’intégration**, sélectionnez **Fonction Lambda**.

   1. Maintenez **Intégration proxy Lambda** désactivée.

   1. Sous **Lambda function (Fonction Lambda)**, saisissez `${stageVariables.function}`.

   1. Lorsque vous y êtes invité avec la commande **Ajouter une autorisation**, copiez la commande [add-permission](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html). Exécutez la commande sur chaque Fonction Lambda qui sera affectée à la variable d’étape `function`.

   1. Choisissez **Créer une méthode**.

1. Choisissez l’onglet **Demande d’intégration**, puis dans la section **Paramètres de la demande d’intégration**, sélectionnez **Modifier**.

1. Choisissez **Modèles de mappage**, puis choisissez **Ajouter un modèle de mappage**.

1. Pour **Type de contenu**, entrez **application/json**.

1. Pour **Corps du modèle**, entrez le modèle suivant :

   ```
   #set($inputRoot = $input.path('$'))
   {
       "stageName" : "$stageVariables.stageName"
   }
   ```
**Note**  
 Dans un modèle de mappage, une variable d’étape doit être référencée entre guillemets (comme dans `"$stageVariables.stageName"` ou `"${stageVariables.stageName}"`). Dans d’autres endroits, il doit être référencé sans guillemets (comme dans `${stageVariables.function}`). 

1. Choisissez **Enregistrer**.

1. Déployez l’API dans les étapes **beta** et **prod**.

1. Pour utiliser un client d’API REST afin de transmettre des métadonnées spécifiques à l’étape, procédez comme suit :

   1. Dans le volet de navigation **Stages**, sélectionnez **beta**. Sous **Détails de l’étape**, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis entrez l’URL d’invocation de votre API dans le champ d’entrée d’un client d’API REST. Ajoutez **/lambdav1** avant de soumettre votre demande.

      Vous recevez la réponse suivante.

      ```
      "Hello, World! I'm calling from the beta stage."
      ```

   1. Dans le volet de navigation **Étapes**, choisissez **prod**. Sous **Détails de l’étape**, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis entrez l’URL d’invocation de votre API dans le champ d’entrée d’un client d’API REST. Ajoutez **/lambdav1** avant de soumettre votre demande.

      Vous recevez la réponse suivante.

      ```
      "Hello, World! I'm calling from the prod stage."
      ```

1. Pour utiliser la fonctionnalité **Test** afin de transmettre des métadonnées spécifiques à l’étape, procédez comme suit :

   1. Dans le volet de navigation **Ressources**, choisissez l’onglet **Test**. Vous devrez peut-être choisir la flèche droite pour afficher l’onglet.

   1. Pour **function**, entrez **HelloWorld**.

   1. Pour **stageName**, entrez **beta**.

   1. Sélectionnez **Tester)**. Vous n’avez pas besoin d’ajouter de corps à votre demande `POST`.

      Vous recevez la réponse suivante.

      ```
      "Hello, World! I'm calling from the beta stage."
      ```

   1. Vous pouvez répéter les étapes précédentes pour tester l’étape **Prod**. Pour **stageName**, entrez **Prod**.

      Vous recevez la réponse suivante.

      ```
      "Hello, World! I'm calling from the prod stage."
      ```

# Référence des variables de stage API Gateway pour REST APIs dans API Gateway
<a name="aws-api-gateway-stage-variables-reference"></a>

 Vous pouvez utiliser les variables d’étape API Gateway dans les cas suivants.

## Expressions de mappage de paramètres
<a name="stage-variables-in-parameter-mapping-expressions"></a>

Une variable d’étape peut être utilisée dans une expression de mappage de paramètres pour un paramètre d’en-tête de demande ou de réponse d’une méthode d’API, sans aucune substitution partielle. Dans l’exemple suivant, la variable d’étape est référencée sans le caractère `$` et sans être indiquée entre accolades `{...}`. 
+ `stageVariables.<variable_name>`

## Modèles de mappage
<a name="stage-variables-in-mapping-templates"></a>

 Une variable d’étape peut être utilisée n’importe où dans un modèle de mappage, comme illustré dans les exemples suivants. 
+  `{ "name" : "$stageVariables.<variable_name>"}`
+ `{ "name" : "${stageVariables.<variable_name>}"}`

## Intégration HTTP URIs
<a name="stage-variables-in-integration-HTTP-uris"></a>

Une variable d’étape peut être utilisée dans une URL d’intégration HTTP, comme illustré dans les exemples suivants :
+ URI complet sans protocole – `http://${stageVariables.<variable_name>}`
+ Domaine complet – `http://${stageVariables.<variable_name>}/resource/operation`
+ Sous-domaine – `http://${stageVariables.<variable_name>}.example.com/resource/operation`
+ Chemin – `http://example.com/${stageVariables.<variable_name>}/bar`
+ Chaîne de requête – `http://example.com/foo?q=${stageVariables.<variable_name>}` 

## AWS intégration URIs
<a name="stage-variables-in-integration-aws-uris"></a>

 Une variable d'étape peut être utilisée dans le cadre d'une action d' AWS URI ou de composants de chemin, comme illustré dans l'exemple suivant.
+ `arn:aws:apigateway:<region>:<service>:${stageVariables.<variable_name>}`

## AWS intégration URIs (fonctions Lambda)
<a name="stage-variables-in-integration-lambda-functions"></a>

 Une variable d’étape peut être utilisée à la place d’un nom de fonction Lambda, ou de sa version/son alias, comme illustré dans les exemples suivants. 
+ `arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:${stageVariables.<function_variable_name>}/invocations`
+ `arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:<function_name>:${stageVariables.<version_variable_name>}/invocations`

**Note**  
Pour utiliser une variable d’étape pour une fonction Lambda, la fonction doit se trouver dans le même compte que l’API. Les variables d’étape ne prennent pas en charge les fonctions Lambda inter-comptes.

## Groupe d’utilisateurs Amazon Cognito
<a name="stage-variables-in-integration-lambda-functions"></a>

Une variable d’étape peut être utilisée à la place d’un groupe d’utilisateurs Amazon Cognito pour un mécanisme d’autorisation `COGNITO_USER_POOLS`.
+ `arn:aws:cognito-idp:<region>:<account_id>:userpool/${stageVariables.<variable_name>}`

## AWS informations d'identification d'intégration
<a name="stage-variables-in-integration-aws-credentials"></a>

 Une variable d'étape peut être utilisée dans le cadre de l'ARN des informations d'identification AWS utilisateur/rôle, comme indiqué dans l'exemple suivant. 
+  `arn:aws:iam::<account_id>:${stageVariables.<variable_name>}` 

# Configuration d’un déploiement de la version Canary API Gateway
<a name="canary-release"></a>

La [version Canary](https://martinfowler.com/bliki/CanaryRelease.html) est une politique de développement logiciel qui consiste à déployer une nouvelle version d’API (ou de tout autre logiciel) à des fins de test, tandis que la version de base reste déployée en tant que version de production pour l’exploitation normale dans la même étape. Dans le cadre de cette documentation, la version de base est désignée sous le nom de version de production. Même si cela est raisonnable, vous êtes libre d’appliquer une version Canary à une version hors production à des fins de test.

Dans le cadre du déploiement d’une version Canary, l’ensemble du trafic d’API est séparé de façon aléatoire entre la version de publication et la version Canary selon un rapport préconfiguré. En règle générale, la version Canary reçoit un petit pourcentage du trafic d’API et la version de production utilise le reste. Les fonctions d’API mises à jour ne sont visibles au niveau du trafic d’API qu’à travers la version Canary. Vous pouvez ajuster le pourcentage de trafic Canary pour optimiser la couverture ou les performances de test. 

En maintenant le trafic Canary à un niveau limité et en conservant la sélection aléatoire, les utilisateurs ne sont pour la plupart jamais perturbés par les bogues éventuels de la nouvelle version, et aucun utilisateur n’est perturbé de façon permanente sur le plan individuel.

Dès lors que les métriques de test ont satisfait à vos exigences, vous pouvez promouvoir la version Canary en version de production et désactiver la Canary dans le déploiement. Les nouvelles fonctions deviennent alors disponibles dans l’étape de production. 

**Topics**
+ [Déploiement des versions Canary dans API Gateway](#api-gateway-canary-release-deployment-overview)
+ [Création d’un déploiement de version Canary](create-canary-deployment.md)
+ [Mise à jour d’une version Canary](update-canary-deployment.md)
+ [Promotion d’une version Canary](promote-canary-deployment.md)
+ [Désactivation d’une version canary](delete-canary-deployment.md)

## Déploiement des versions Canary dans API Gateway
<a name="api-gateway-canary-release-deployment-overview"></a>

 Dans API Gateway, le déploiement d’une version Canary s’appuie sur l’étape de déploiement de la version de production de la version de base d’une API, et attache à l’étape une version Canary pour les nouvelles versions, par rapport à la version de base, de l’API. L’étape est associée au déploiement initial et Canary aux déploiements suivants. Au début, l’étape et Canary pointent toutes les deux vers la même version d’API. Tout au long de cette section, nous parlons indifféremment d’étape et de version de production, mais aussi de Canary et de version Canary.

Pour déployer une API avec une version Canary, vous devez créer un déploiement de version Canary en ajoutant des [paramètres Canary](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) à l’[étape](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) d’un [déploiement](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html) standard. Les paramètres Canary décrivent la version Canary sous-jacente, tandis que l’étape représente la version de production de l’API dans le cadre de ce déploiement. Pour ajouter des paramètres Canary, définissez `canarySettings` pour l’étape de déploiement et spécifiez les éléments suivants : 
+  Un ID de déploiement, au départ identique à l’ID du déploiement de la version de base défini au niveau de l’étape. 
+  Un [pourcentage du trafic d’API](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#percentTraffic), entre 0,0 et 100,0 (inclus), pour la version Canary. 
+  [Variables d’étape de la version Canary](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#stageVariableOverrides) qui peuvent remplacer les variables d’étape de version de production. 
+  L'[utilisation du cache de stage](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#useStageCache) pour les requêtes Canary, s'il [useStageCache](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#useStageCache)est défini et si la mise en cache de l'API est activée sur le stage.

 Du moment qu’une version Canary est activée, l’étape de déploiement ne peut pas être associée à un autre déploiement de version non Canary tant que la version Canary n’est pas désactivée et que les paramètres Canary ne sont pas supprimés de l’étape. 

Lorsque vous activez la journalisation d’exécution d’API, les journaux et les métriques propres à la version Canary sont générés pour toutes les demandes Canary. Ils sont signalés à un groupe de CloudWatch journaux Logs en phase de production ainsi qu'à un groupe de CloudWatch journaux Logs spécifique à Canary. Il en va de même pour la journalisation d’accès. Les journaux propres à Canary s’avèrent utiles pour valider les nouvelles modifications apportées à l’API et pour décider s’il convient de les accepter et de promouvoir la version Canary en étape de production, ou s’il est préférable d’abandonner les modifications et de supprimer la version Canary de l’étape de production.

Le groupe de journaux d’exécution s’intitule `API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}` dans le cas de l’étape de production et `API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}/Canary` dans le cas de la version Canary. Pour la journalisation d’accès, vous devez créer un groupe de journaux ou en choisir un existant. Le nom du groupe de journaux d’accès de la version Canary est assorti du suffixe `/Canary`, qui est ajouté au nom du groupe de journaux sélectionné. 

Une version de Canary peut utiliser le cache de stage, s'il est activé, pour stocker les réponses et utiliser les entrées mises en cache pour renvoyer les résultats aux prochaines demandes Canary, dans un délai préconfiguré time-to-live (TTL). 

Dans le cadre du déploiement d’une version Canary, la version de production et la version Canary de l’API peuvent être associées à une même version ou à des versions différentes. Lorsqu’elles sont associées à des versions différentes, les réponses concernant les demandes de production et Canary sont mises en cache séparément et le cache d’étape renvoie les résultats correspondant aux demandes de production et Canary. Lorsque la version de production et la version Canary sont associées à un même déploiement, le cache d’étape utilise une seule clé de cache pour les deux types de demande et renvoie la même réponse aux mêmes demandes de la version de production et de la version Canary. 

# Création d’un déploiement de version Canary
<a name="create-canary-deployment"></a>

La création d’un déploiement de version Canary consiste à déployer l’API en ajoutant en entrée les [paramètres Canary](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateDeployment.html#canarySettings) à l’opération de [création du déploiement](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateDeployment.html). 

Vous pouvez également créer un déploiement de version Canary à partir d’un déploiement non Canary existant en formulant une demande [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) de façon à ajouter les paramètres Canary à l’étape.

Au moment de créer un déploiement de version non Canary, vous pouvez spécifier un nom d’étape qui n’existe pas. Dans ce cas, API Gateway crée l’étape. En revanche, vous ne pouvez pas spécifier le nom d’une étape qui n’existe pas au moment de créer un déploiement de version Canary. Vous obtenez dans ce cas une erreur et API Gateway ne crée pas le déploiement de la version Canary. 

 Vous pouvez créer un déploiement de version Canary dans API Gateway à l'aide de la console API Gateway AWS CLI, du ou d'un AWS SDK.

**Topics**
+ [Création d’un déploiement Canary à l’aide de la console API Gateway](#create-canary-deployment-using-console)
+ [Créez un déploiement Canary à l'aide du AWS CLI](#create-canary-deployment-using-cli)

## Création d’un déploiement Canary à l’aide de la console API Gateway
<a name="create-canary-deployment-using-console"></a>

Pour créer un déploiement de version Canary à l’aide de la console API Gateway, suivez les instructions ci-dessous :<a name="to-create-canary-release-on-new-deployment"></a>

**Pour créer le déploiement initial d’une version Canary**

1.  Connectez-vous à la console API Gateway.

1.  Choisissez une API REST existante ou créez-en une.

1.  Dans le volet de navigation principal, choisissez **Resources**, puis **Déployer l’API**. Suivez les instructions à l’écran dans **Deploy API** pour déployer l’API dans une nouvelle étape. 

   À ce stade, vous avez déployé l’API dans une étape de version de production. La prochaine étape va consister à configurer les paramètres Canary au niveau de l’étape et, si nécessaire, à activer la mise en cache, à définir des variables d’étape ou à configurer des journaux d’accès ou d’exécution d’API.

1.  Pour activer la mise en cache des API ou associer une ACL AWS WAF Web à l'étape, dans la section **Détails de l'étape**, choisissez **Modifier**. Pour plus d’informations, consultez [Paramètres de cache pour REST APIs dans API Gateway](api-gateway-caching.md) ou [Pour associer une ACL AWS WAF Web à un stage d'API API Gateway à l'aide de la console API Gateway](apigateway-control-access-aws-waf.md#apigateway-control-access-aws-waf-console).

1.  Pour configurer la journalisation d’exécution ou d’accès, dans la section **Journaux et suivi**, choisissez **Modifier** et suivez les instructions à l’écran. Pour de plus amples informations, veuillez consulter [Configuration de la CloudWatch journalisation pour REST APIs dans API Gateway](set-up-logging.md).

1. Pour définir des variables d’étape, choisissez l’onglet **Variables d’étape**, puis suivez les instructions à l’écran pour ajouter ou modifier des variables d’étape. Pour de plus amples informations, veuillez consulter [Utilisation de variables d’étape pour une API REST dans API Gateway](stage-variables.md).

1.  Choisissez l’onglet **Canary**, puis choisissez **Créer Canary**. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet **Canary**.

1.  Sous **Paramètres Canary**, pour **Canary**, entrez le pourcentage de demandes à renvoyer vers le canary.

1. Si vous le souhaitez, sélectionnez **Cache d’étape** pour activer la mise en cache pour la version canary. Le cache n’est pas accessible à la version Canary tant que la mise en cache d’API n’est pas activée.

1. Pour remplacer les variables d’étape existantes, pour **Remplacement canary**, entrez une nouvelle valeur de variable d’étape.

Une fois la version Canary initialisée dans l’étape de déploiement, vous pouvez modifier l’API et tester les modifications. Vous pouvez redéployer l’API dans la même étape pour pouvoir accéder à la version mise à jour et à la version de base via la même étape. Les étapes suivantes expliquent comment procéder. <a name="to-deploy-latest-api-to-canary-release"></a>

**Pour déployer la dernière version d’API dans une version Canary**

1.  À chaque mise à jour de l’API, choisissez **Déployer l’API**.

1.  Dans **Déployer l’API**, choisissez l’étape qui contient un canary dans la liste déroulante **Étape de déploiement**. 

1.  (Facultatif) Entrez une description pour **Description du déploiement**. 

1.  Choisissez **Deploy** pour transférer (en mode push) la dernière version d’API vers la version Canary.

1.  Si vous le souhaitez, reconfigurez les paramètres d’étape, les journaux ou les paramètres Canary, comme indiqué dans [Pour créer le déploiement initial d’une version Canary](#to-create-canary-release-on-new-deployment).

 En conséquence, la version Canary pointe vers la dernière version, alors que la version de production continue de pointer vers la version initiale de l’API. La propriété [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) affiche désormais une nouvelle valeur **deploymentId**, alors que l’étape présente toujours la valeur [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) initiale. En arrière-plan, la console appelle [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html).

## Créez un déploiement Canary à l'aide du AWS CLI
<a name="create-canary-deployment-using-cli"></a>

**Pour créer un déploiement canary pour une nouvelle étape**

1. Utilisez la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) pour créer un déploiement avec deux variables d’étape, mais sans canary :

   ```
   aws apigateway create-deployment \
       --variables sv0=val0,sv1=val1 \
       --rest-api-id abcd1234 \
       --stage-name 'prod'
   ```

   Le résultat se présente comme suit :

   ```
   {
       "id": "du4ot1", 
       "createdDate": 1511379050
   }
   ```

1. Utilisez la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) suivante pour créer un déploiement canary sur l’étape `prod` :

   ```
   aws apigateway create-deployment \
       --rest-api-id abcd1234 \
       --canary-settings percentTraffic=10.5,stageVariableOverrides={sv1='val2',sv2='val3'},useStageCache=false \
       --stage-name 'prod'
   ```

   Le résultat se présente comme suit :

   ```
   {
       "id": "a6rox0", 
       "createdDate": 1511379433
   }
   ```

   L’`id` de déploiement obtenu identifie la version de test de l’API pour la version Canary. En conséquence, l’étape associée est activée pour Canary.

1. (Facultatif) Utilisez la commande [get-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-stage.html) suivante pour afficher la représentation de l’étape :

   ```
   aws apigateway get-stage --rest-api-id acbd1234 --stage-name prod
   ```

   L’exemple suivant montre une représentation de `Stage` comme sortie de la commande :

   ```
   {
       "stageName": "prod", 
       "variables": {
           "sv0": "val0", 
           "sv1": "val1"
       }, 
       "cacheClusterEnabled": false, 
       "cacheClusterStatus": "NOT_AVAILABLE", 
       "deploymentId": "du4ot1", 
       "lastUpdatedDate": 1511379433, 
       "createdDate": 1511379050, 
       "canarySettings": {
           "percentTraffic": 10.5, 
           "deploymentId": "a6rox0", 
           "useStageCache": false, 
           "stageVariableOverrides": {
               "sv2": "val3", 
               "sv1": "val2"
           }
       }, 
       "methodSettings": {}
   }
   ```

   Dans cet exemple, la version de base de l’API utilise les variables d’étape `{"sv0":val0", "sv1":val1"}`, tandis que la version de test utilise les variables d’étape `{"sv1":val2", "sv2":val3"}`. La version de production et la version Canary utilisent toutes les deux la même variable d’étape `sv1`, mais avec des valeurs différentes : `val1` et `val2`, respectivement. La variable d’étape `sv0` est seulement utilisée dans la version de production, alors que la variable d’étape `sv2` est utilisée dans la version Canary uniquement. 

Vous pouvez également créer un déploiement de version canary à partir d’un déploiement standard existant en mettant à jour l’étape de façon à activer un canary.

**Pour créer un déploiement de version canary à partir d’un déploiement existant**

1. Utilisez la commande [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) pour créer un déploiement sans canary :

   ```
   aws apigateway create-deployment \
       --variables sv0=val0,sv1=val1 \  
       --rest-api-id abcd1234 \
       --stage-name 'beta'
   ```

1. Utilisez la commande [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) pour mettre à jour l’étape de façon à activer un canary :

   ```
   aws apigateway update-stage \
       --rest-api-id abcd1234 \
       --stage-name 'beta' \
       --patch-operations '[{
               "op": "replace",
               "value": "0.0",
               "path": "/canarySettings/percentTraffic"
           }, {
               "op": "copy",
               "from": "/canarySettings/stageVariableOverrides",
               "path": "/variables"
           }, {
               "op": "copy",
               "from": "/canarySettings/deploymentId",
               "path": "/deploymentId"
           }]'
   ```

   Le résultat se présente comme suit :

   ```
   {
       "stageName": "beta", 
       "variables": {
           "sv0": "val0", 
           "sv1": "val1"
       }, 
       "cacheClusterEnabled": false, 
       "cacheClusterStatus": "NOT_AVAILABLE", 
       "deploymentId": "cifeiw", 
       "lastUpdatedDate": 1511381930, 
       "createdDate": 1511380879, 
       "canarySettings": {
           "percentTraffic": 10.5, 
           "deploymentId": "cifeiw", 
           "useStageCache": false, 
           "stageVariableOverrides": {
               "sv2": "val3", 
               "sv1": "val2"
           }
       }, 
       "methodSettings": {}
   }
   ```

   Comme vous venez d’activer un canary dans une version existante de l’API, la version de production (`Stage`) et la version canary (`canarySettings`) pointent toutes les deux vers le même déploiement. Une fois que vous avez modifié l’API et que vous l’avez redéployée dans cette étape, la nouvelle version se trouve dans la version Canary, alors que la version de base reste dans la version de production. Cela se manifeste dans l’évolution de l’étape lorsque `deploymentId` est mis à jour dans la version Canary avec le nouvel `id` de déploiement et que `deploymentId` reste inchangé dans la version de production.

# Mise à jour d’une version Canary
<a name="update-canary-deployment"></a>

 Après avoir déployé une version Canary, vous pouvez souhaiter ajuster le pourcentage du trafic Canary ou activer/désactiver l’utilisation d’un cache d’étape pour optimiser les performances de test. Vous pouvez également modifier les variables d’étape utilisées dans la version Canary lors de la mise à jour du contexte d’exécution. Pour effectuer de telles mises à jour, appelez l’opération [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) avec des nouvelles valeurs dans [canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings). 

Vous pouvez mettre à jour une version de Canary à l'aide de la console API Gateway, de la commande AWS CLI [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) ou d'un AWS SDK.

**Topics**
+ [Mise à jour d’une version Canary à l’aide de la console API Gateway](#update-canary-deployment-using-console)
+ [Mettez à jour une version de Canary à l'aide du AWS CLI](#update-canary-deployment-using-cli)

## Mise à jour d’une version Canary à l’aide de la console API Gateway
<a name="update-canary-deployment-using-console"></a>

Pour mettre à jour les paramètres Canary existants d’une étape à l’aide de la console API Gateway, procédez comme suit :

**Pour mettre à jour les paramètres canary existants**

1.  Connectez-vous à la console API Gateway et choisissez l’API REST existante.

1.  Dans le volet de navigation principal, choisissez **Étapes**, puis choisissez une étape existante.

1.  Choisissez l’onglet **Canary**, puis **Modifier**. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet **Canary**. 

1.  Mettez à jour **Distribution de demande** en augmentant ou en diminuant la valeur de pourcentage entre 0,0 et 100,0 (inclus). 

1.  Activez ou désactivez la case à cocher **Cache d’étape**. 

1.  Ajoutez, supprimez ou modifiez **Variables d’étape Canary**.

1.  Choisissez **Enregistrer**.

## Mettez à jour une version de Canary à l'aide du AWS CLI
<a name="update-canary-deployment-using-cli"></a>

Pour mettre AWS CLI à jour un canari, utilisez la [https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)commande et modifiez l'opération de correctif pour chaque paramètre du canari.

La commande [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) suivante effectue une mise à jour si le canary utilise le cache de l’étape :

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/useStageCache,value=true
```

La commande [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) suivante met à jour le pourcentage de trafic canary :

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/percentTraffic,value=25.0
```

La commande [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) suivante met à jour les variables de l’étape. L’exemple suivant montre comment créer une variable d’étape nommée `newVar`, remplacer la variable d’étape `var2` et supprimer la variable d’étape `var1` :

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}'  \
    --patch-operations '[{                                      
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                      
      }, { 
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/var2",   
        "value": "val4"                                        
      }, {                                                      
        "op": "remove",                                         
        "path": "/canarySettings/stageVariableOverrides/var1"    
      }]'
```

Vous pouvez mettre à jour tout ce qui précède en combinant les opérations dans une même valeur `patch-operations` :

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations '[{                                       
        "op": "replace",                                         
        "path": "/canarySettings/percentTraffic",                        
        "value": "20.0"                                          
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/useStageCache",                        
        "value": "true"                                          
    }, {                                                         
        "op": "remove",                                          
        "path": "/canarySettings/stageVariableOverrides/var1"    
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                        
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/val2",   
        "value": "val4"                                          
      }]'
```



# Promotion d’une version Canary
<a name="promote-canary-deployment"></a>

Lors de la promotion d’une version Canary, cette dernière remplace les paramètres d’étape en cours. La promotion d’une version Canary n’a pas pour effet de la désactiver au niveau de l’étape. Pour désactiver une version Canary, vous devez supprimer les paramètres Canary de l’étape. Pour promouvoir une version Canary, procédez comme suit.
+ Réinitialisez l’[ID de déploiement](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) de l’étape avec les paramètres d’[ID de déploiement](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) de la version Canary. Cette tâche a pour effet de mettre à jour l’instantané d’API de l’étape par rapport à l’instantané de la version Canary, ce qui fait de la version de test aussi la version de production.
+ Mise à jour des variables d’étape par rapport aux variables d’étape Canary, le cas échéant. Cette tâche a pour effet de mettre à jour le contexte d’exécution d’API de l’étape par rapport à celui de la version Canary. Sans cette mise à jour, la nouvelle version d’API peut produire des résultats inattendus si la version de test utilise des variables d’étape différentes ou des valeurs différentes pour les variables d’étape existantes.
+ Définition du pourcentage de trafic Canary sur 0.0%.

**Topics**
+ [Promotion d’une version Canary à l’aide de la console API Gateway](#promote-canary-release-deployment-console)
+ [Faites la promotion d'une version de Canary à l'aide du AWS CLI](#promote-canary-release-cli)

## Promotion d’une version Canary à l’aide de la console API Gateway
<a name="promote-canary-release-deployment-console"></a>

Pour promouvoir le déploiement d’une version Canary à l’aide de la console API Gateway, procédez comme suit :

**Pour promouvoir un déploiement de version canary**

1.  Connectez-vous à la console API Gateway et choisissez l’API existante dans le panneau de navigation principal.

1.  Dans le volet de navigation principal, choisissez **Étapes**, puis choisissez une étape existante.

1.  Choisissez l'onglet **Canary**.

1.  Choisissez **Promouvoir le canary**.

1.  Confirmez les modifications à apporter, puis choisissez **Promouvoir le canary**.

À l’issue de la promotion, la version de production fait référence à la même version d’API (**deploymentId**) que la version Canary. Vous pouvez le vérifier à l'aide du AWS CLI. Pour obtenir un exemple, consultez [Faites la promotion d'une version de Canary à l'aide du AWS CLI](#promote-canary-release-cli). 

## Faites la promotion d'une version de Canary à l'aide du AWS CLI
<a name="promote-canary-release-cli"></a>

Pour promouvoir une version de Canary en version de production à l'aide des AWS CLI commandes, appelez la `update-stage` commande pour copier la version associée au canary `deploymentId` vers la version associée à l'étape`deploymentId`, pour remettre le pourcentage de trafic Canary à zéro (`0.0`) et pour copier toutes les variables d'étape liées au canary dans celles liées à l'étape correspondantes. 

Supposons que nous ayons un déploiement de version canary, décrit par une phase semblable à la suivante : 

```
{
    "_links": {
        ...
    },
    "accessLogSettings": {
        ...
    },
    "cacheClusterEnabled": false,
    "cacheClusterStatus": "NOT_AVAILABLE",
    "canarySettings": {
        "deploymentId": "eh1sby",
        "useStageCache": false,
        "stageVariableOverrides": {
            "sv2": "val3",
            "sv1": "val2"
        },
        "percentTraffic": 10.5
    },
    "createdDate": "2017-11-20T04:42:19Z",
    "deploymentId": "nfcn0x",
    "lastUpdatedDate": "2017-11-22T00:54:28Z",
    "methodSettings": {
        ...
    },
    "stageName": "prod",
    "variables": {
        "sv1": "val1"
    }
}
```

Utilisez la commande [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) suivante pour promouvoir le canary :

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id}  \
    --stage-name '{stage-name}'  \
    --patch-operations '[{                                
        "op": "replace",                                  
        "value": "0.0",                                    
        "path": "/canarySettings/percentTraffic"         
      }, {                                                
        "op": "copy",                                     
        "from": "/canarySettings/stageVariableOverrides", 
        "path": "/variables"                             
      }, {                                                
        "op": "copy",                                     
        "from": "/canarySettings/deploymentId",           
        "path": "/deploymentId"                           
      }]'
```

Le résultat se présente comme suit :

```
{
    "_links": {
        ...
    },
    "accessLogSettings": {
        ...
    },
    "cacheClusterEnabled": false,
    "cacheClusterStatus": "NOT_AVAILABLE",
    "canarySettings": {
        "deploymentId": "eh1sby",
        "useStageCache": false,
        "stageVariableOverrides": {
            "sv2": "val3",
            "sv1": "val2"
        },
        "percentTraffic": 0
    },
    "createdDate": "2017-11-20T04:42:19Z",
    "deploymentId": "eh1sby",
    "lastUpdatedDate": "2017-11-22T05:29:47Z",
    "methodSettings": {
        ...
    },
    "stageName": "prod",
    "variables": {
        "sv2": "val3",
        "sv1": "val2"
    }
}
```

La promotion d’une version Canary à l’étape ne désactive pas le canary et le déploiement demeure un déploiement de version Canary. Pour rendre régulier un déploiement de la version de production, vous devez désactiver la configuration canary. Pour plus d’informations sur la façon de désactiver un déploiement de version canary, consultez [Désactivation d’une version canary](delete-canary-deployment.md).

# Désactivation d’une version canary
<a name="delete-canary-deployment"></a>

Pour désactiver le déploiement d’une version canary, vous devez attribuer à [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) la valeur null pour la supprimer de l’étape. 

Vous pouvez désactiver le déploiement d'une version Canary à l'aide de la console API Gateway AWS CLI, du ou d'un AWS SDK.

**Topics**
+ [Désactivation d’une version canary à l’aide de la console API Gateway](#delete-canary-release-console)
+ [Désactivez une version Canary à l'aide du AWS CLI](#delete-canary-release-cli)

## Désactivation d’une version canary à l’aide de la console API Gateway
<a name="delete-canary-release-console"></a>

Pour désactiver le déploiement d’une version canary à l’aide de la console API Gateway, suivez les étapes suivantes :

**Désactivation d’un déploiement de version canary**

1. Connectez-vous à la console API Gateway et choisissez l’API existante dans le volet de navigation principal.

1. Dans le volet de navigation principal, choisissez **Étapes**, puis choisissez une étape existante.

1.  Choisissez l'onglet **Canary**.

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

1.  Confirmez votre souhait de supprimer la version Canary en choisissant **Delete**.

Résultat : la propriété [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) prend la valeur `null` et est supprimée de l’[étape](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) de déploiement. Vous pouvez le vérifier à l'aide du AWS CLI. Pour obtenir un exemple, consultez [Désactivez une version Canary à l'aide du AWS CLI](#delete-canary-release-cli).

## Désactivez une version Canary à l'aide du AWS CLI
<a name="delete-canary-release-cli"></a>

La commande [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) suivante désactive le déploiement de la version canary :

```
aws apigateway update-stage \
    --rest-api-id abcd1234 \
    --stage-name canary \
    --patch-operations '[{"op":"remove", "path":"/canarySettings"}]'
```

Le résultat se présente comme suit :

```
{
    "stageName": "prod", 
    "accessLogSettings": {
        ...
    }, 
    "cacheClusterEnabled": false, 
    "cacheClusterStatus": "NOT_AVAILABLE", 
    "deploymentId": "nfcn0x", 
    "lastUpdatedDate": 1511309280, 
    "createdDate": 1511152939, 
    "methodSettings": {
        ...
    }
}
```

 Comme illustré dans la sortie, la propriété [canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) n’est plus présente dans l’[étape](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) d’un déploiement canary désactivé.

# Mises à jour de REST APIs nécessitant un redéploiement
<a name="updating-api"></a>

La gestion d’une API revient à afficher, mettre à jour et supprimer les configurations de l’API existantes. Vous pouvez gérer une API à l'aide de la console API Gateway AWS CLI CloudFormation, d'un SDK ou de l'API REST API Gateway. La mise à jour d’une API implique de modifier certaines propriétés de ressource ou certains paramètres de configuration de l’API. Les mises à jour de ressource nécessitent le redéploiement de l’API, contrairement aux mises à jour de configuration. 

Le tableau suivant décrit les ressources d’API qui nécessitent le redéploiement de votre API lorsque vous les mettez à jour. 


| Ressource | Remarques | 
| --- | --- | 
| [ApiKey](https://docs.aws.amazon.com/apigateway/latest/api/API_ApiKey.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [apikey:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateApiKey.html). La mise à jour nécessite le redéploiement de l’API. | 
| [Mécanisme d’autorisation](https://docs.aws.amazon.com/apigateway/latest/api/API_Authorizer.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [authorizer:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateAuthorizer.html). La mise à jour nécessite le redéploiement de l’API. | 
|  [disableExecuteApiPoint de terminaison](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRestApi.html#apigw-UpdateRestApi-response-disableExecuteApiEndpoint) | La mise à jour nécessite de modifier n’importe quelle étape de l’API (redéploiement de l’API dans une étape, par exemple). | 
| [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPart.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [documentationpart:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateDocumentationPart.html). La mise à jour nécessite le redéploiement de l’API. | 
| [DocumentationVersion](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationVersion.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [documentationversion:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateDocumentationVersion.html). La mise à jour nécessite le redéploiement de l’API. | 
| [GatewayResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_GatewayResponse.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [gatewayresponse:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateGatewayResponse.html#remarks). La mise à jour nécessite le redéploiement de l’API. | 
| [Integration](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html) |  Pour les propriétés applicables et les opérations prises en charge, consultez [integration:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateIntegration.html). La mise à jour nécessite le redéploiement de l’API.  | 
| [IntegrationResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_IntegrationResponse.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [integrationresponse:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateIntegrationResponse.html). La mise à jour nécessite le redéploiement de l’API. | 
| [Method](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [method:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateMethod.html). La mise à jour nécessite le redéploiement de l’API. | 
| [MethodResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [methodresponse:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateMethodResponse.html). La mise à jour nécessite le redéploiement de l’API. | 
| [Modèle](https://docs.aws.amazon.com/apigateway/latest/api/API_Model.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [model:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateModel.html). La mise à jour nécessite le redéploiement de l’API. | 
| [RequestValidator](https://docs.aws.amazon.com/apigateway/latest/api/API_RequestValidator.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [requestvalidator:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRequestValidator.html). La mise à jour nécessite le redéploiement de l’API. | 
| [Ressource](https://docs.aws.amazon.com/apigateway/latest/api/API_Resource.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [resource:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateResource.html). La mise à jour nécessite le redéploiement de l’API. | 
| [RestApi](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRestApi.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [restapi:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRestApi.html). La mise à jour nécessite le redéploiement de l’API. Cela inclut la modification des stratégies de ressources. | 
| [VpcLink](https://docs.aws.amazon.com/apigateway/latest/api/API_VpcLink.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [vpclink:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateVpcLink.html). La mise à jour nécessite le redéploiement de l’API. | 

Le tableau suivant décrit les configurations d’API qui ne nécessitent pas le redéploiement de votre API lorsque vous les mettez à jour.


| Configuration | Remarques | 
| --- | --- | 
| [Compte](https://docs.aws.amazon.com/apigateway/latest/api/API_GetAccount.html) |  Pour les propriétés applicables et les opérations prises en charge, consultez [account:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateAccount.html). La mise à jour ne nécessite pas le redéploiement de l’API.  | 
| [Déploiement](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [deployment:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateDeployment.html).  | 
| [DomainName](https://docs.aws.amazon.com/apigateway/latest/api/API_DomainName.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [domainname:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateDomainName.html). La mise à jour ne nécessite pas le redéploiement de l’API. | 
| [BasePathMapping](https://docs.aws.amazon.com/apigateway/latest/api/API_BasePathMapping.html) |  Pour les propriétés applicables et les opérations prises en charge, consultez [basepathmapping:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateBasePathMapping.html). La mise à jour ne nécessite pas le redéploiement de l’API.  | 
| [Type d’adresse IP](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) |  La mise à jour ne nécessite pas le redéploiement de l’API.  | 
| [Étape](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) |  Pour les propriétés applicables et les opérations prises en charge, consultez [stage:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html). La mise à jour ne nécessite pas le redéploiement de l’API.  | 
| [Utilisation](https://docs.aws.amazon.com/apigateway/latest/api/API_GetUsage.html) |  Pour les propriétés applicables et les opérations prises en charge, consultez [usage:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateUsage.html). La mise à jour ne nécessite pas le redéploiement de l’API.  | 
| [UsagePlan](https://docs.aws.amazon.com/apigateway/latest/api/API_UsagePlan.html) | Pour les propriétés applicables et les opérations prises en charge, consultez [usageplan:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateUsagePlan.html). La mise à jour ne nécessite pas le redéploiement de l’API. | 