Généralités

Q : Qu'est-ce qu'Amazon API Gateway ?

Amazon API Gateway est un service entièrement géré, qui permet aux développeurs de publier, entretenir, surveiller et sécuriser facilement des API à n'importe quelle échelle. En quelques clics dans AWS Management Console, vous pouvez créer une API qui agit comme une « porte d'entrée » pour que les applications puissent accéder aux données, à la logique métier ou aux fonctionnalités de vos services backend, comme les applications s'exécutant sur Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS) ou AWS Elastic Beanstalk, le code s'exécutant sur AWS Lambda ou encore toute application Web. Amazon API Gateway gère toutes les tâches liées à l'acceptation et au traitement de centaines de milliers d'appels d'API simultanés, notamment la gestion du trafic, le contrôle des autorisations et des accès, la surveillance et la gestion de la version de l'API. Aucuns frais minimum ou coûts initiaux ne s'appliquent à Amazon API Gateway. Pour les API HTTP et REST, vous payez uniquement les appels d'API que vous recevez et la quantité de données en transfert sortant. Pour les API WebSocket, vous ne payez que pour les messages envoyés et reçus et pour la durée de connexion d'un utilisateur/dispositif à l'API WebSocket.

Q : Pourquoi utiliser Amazon API Gateway ?

Amazon API Gateway offre aux développeurs un service simple, flexible, entièrement géré et facturé à l'utilisation, qui gère tous les aspects de la création et de l'exploitation d'API robustes pour les applications backend. Avec API Gateway, vous pouvez lancer de nouveaux services plus rapidement et pour un investissement moindre, ce qui vous permet de vous concentrer sur vos services métier principaux. API Gateway a été conçu pour vous aider dans plusieurs aspects de la création et de la gestion des API :

1) Mesure. API Gateway vous permet d'établir des plans pour mesurer les accès des développeurs tiers à vos API en vue de les restreindre. Vous pouvez définir un ensemble de plans, mais aussi configurer des limitations et des quotas pour chaque clé d'API. API Gateway mesure automatiquement le trafic en direction de vos API et vous permet de connaître les données d'utilisation de chaque clé d'API.

2) Sécurité. API Gateway met à votre disposition plusieurs outils permettant d'autoriser l'accès à vos API et de contrôler l'accès aux opérations de service. API Gateway vous permet de tirer parti des outils de sécurité et d'administration d'AWS, tels que AWS Identity and Access Management (IAM) et Amazon Cognito, afin d'autoriser l'accès à vos API. API Gateway peut vérifier à votre place les appels d'API signés, à l'aide de la même méthodologie que celle utilisée par AWS pour ses propres API. Avec des autorisateurs personnalisés écrits en tant que fonctions AWS Lambda, API Gateway peut aussi vous aider à vérifier les bearer tokens, afin d'éliminer les soucis d'autorisation de votre code backend.

3) Résilience. API Gateway vous permet de gérer le trafic grâce à des limitations, de sorte que les opérations de backend puissent supporter les pics de trafic. API Gateway vous aide également à améliorer les performances de vos API et la latence rencontrée par vos utilisateurs finaux en mettant en cache la sortie des appels d'API, afin d'éviter d'appeler votre service backend à chaque fois.

4) Surveillance des opérations. Une fois qu'une API est publiée et en service, API Gateway met à votre disposition un tableau de bord des mesures permettant de surveiller les appels à vos services. Étant intégré à Amazon CloudWatch, le tableau de bord API Gateway vous fournit des mesures de performance des services dorsaux couvrant les appels d'API, les données de latence et les taux d'erreurs. Vous pouvez configurer des mesures détaillées pour chaque méthode dans vos API, et également recevoir des journaux d'erreur, d'accès ou de débogage dans CloudWatch Logs.

5) Gestion du cycle de vie. Une fois qu'une API a été publiée, il arrive souvent que vous deviez développer et tester de nouvelles versions qui améliorent les fonctionnalités ou en ajoutent de nouvelles. API Gateway vous permet d'exécuter simultanément plusieurs versions d'une API et plusieurs étapes pour chaque version, afin que les applications existantes puissent continuer à appeler les versions précédentes une fois que de nouvelles versions de l'API sont publiées.

6) Conçu pour les développeurs. API Gateway vous permet de créer rapidement des API et d'attribuer du contenu statique à leurs réponses en vue de réduire les efforts de développement entre les équipes et le délai de commercialisation pour vos applications. Les équipes qui dépendent de vos API peuvent commencer leur travail de développement pendant que vous concevez vos processus dorsaux.

7) Communication bidirectionnelle en temps réel. Créez des applications de communication bidirectionnelle en temps réel telles que des applications de chat, des tableaux de bord en continu et des notifications sans avoir à exécuter ou à gérer un serveur. API Gateway maintient une connexion permanente entre les utilisateurs connectés et permet le transfert de messages entre eux.

Q : Quels types d'API sont pris en charge par Amazon API Gateway ?

Amazon API Gateway propose deux manières de créer des API RESTful, HTTP et REST, ainsi qu'une manière de créer des API WebSocket.

API HTTP : les API HTTP sont optimisées pour la création d'API redirigeant vers des fonctions AWS Lambda ou des backends HTTP. Elles sont idéales pour des charges de travail sans serveur. Pour le moment, elles n'apportent pas de fonctionnalités de gestion d'API.

API REST : les API REST proposent des fonctionnalités de proxy et de gestion d'API dans une seule solution. Les fonctionnalités de gestion regroupent les planifications d'utilisation, les clés d'API, la publication et la monétisation des API.

API WebSocket : les API WebSocket maintiennent une connexion permanente entre les clients connectés afin de faciliter la communication de messages en temps réel. Avec les API WebSocket dans API Gateway, vous pouvez définir des intégrations backend avec les fonctions AWS Lambda, Amazon Kinesis, ou tout autre point de terminaison HTTP à invoquer lorsque des messages sont reçus des clients connectés.

Q : Comment commencer à utiliser les API HTTP dans API Gateway ?

Pour démarrer avec les API HTTP, vous pouvez utiliser la console Amazon API Gateway, la CLI AWS, les kits SDK AWS ou AWS CloudFormation. Consultez notre documentation pour en savoir plus sur le démarrage avec les API HTTP.

Q : Comment démarrer avec les API REST dans API Gateway ?

Pour démarrer avec les API REST, vous pouvez utiliser la console Amazon API Gateway, la CLI AWS ou les kits SDK AWS. Consultez notre documentation pour en savoir plus sur le démarrage avec les API REST.

Q : Lorsque je crée des API RESTful, à quel moment dois-je utiliser des API HTTP ou des API REST ?

Vous pouvez créer des API RESTful à l'aide d'API HTTP et REST dans Amazon API Gateway.

Les API HTTP sont optimisées pour la création d'API redirigeant vers des fonctions AWS Lambda ou des backends HTTP. Elles sont idéales pour des workloads sans serveur. Les API HTTP constituent une alternative moins chère et plus rapide pour les API REST mais actuellement, elles ne prennent pas en charge la fonctionnalité de gestion d'API. Les API REST sont destinées à des API nécessitant une fonctionnalité de proxy et de gestion d'API dans une seule solution.

Les API HTTP sont idéales pour :

  1. la création d'API de proxy pour AWS Lambda ou tout autre point de terminaison HTTP ;
  2. la création d'API modernes dotées d'autorisations OIDC ou OAuth 2 ; 
  3. les workloas susceptibles de prendre beaucoup d'ampleur ;
  4. les API pour les workloads sensibles à la latence.
 
Les API REST sont idéales pour :
 
  1. les clients cherchant un tarif unique pour un ensemble complet de fonctionnalités destinées à la création, la gestion et la publication de leurs API. 

Q : Quelles fonctionnalités sont fournies d'office avec les API HTTP d'API Gateway ?

De base, les API HTTP prennent en charge CORS, OICD et OAuth 2 pour l'authentification et l'autorisation, ainsi que des déploiements automatiques selon les étapes.

Q : Puis-je importer une définition OpenAPI pour créer une API HTTP ?

Oui, vous pouvez importer une définition d'API à l'aide d'OpenAPI 3. Cela créera des routes, des intégrations et des modèles d'API. Pour en savoir plus sur l'importation de définitions OpenAPI, consultez notre documentation.

Q : Comment migrer de mon API REST actuelle vers une API HTTP ?

Pour migrer de votre API REST actuelle vers une API HTTP dans Amazon API Gateway, procédez comme suit :

  1. Vérifiez que toutes les fonctionnalités dont vous avez besoin sont disponibles dans HTTP. Pour avoir une liste complète des fonctionnalités, rendez-vous ici
  2. Allez dans votre API REST et exportez la définition OpenAPI à partir de là.
  3. Allez dans votre API HTTP et importez la définition OpenAPI exportée lors de l'étape précédente.
  4. Testez les fonctions de l'API pour vérifier que tout correspond.
  5. Mettez vos clients à jour en donnant la nouvelle URL.

Même si votre API fonctionne, il se peut que vous remarquiez que des fonctionnalités manquent. Pour identifier ces fonctionnalités manquantes, vérifiez les champs Info (Informations), Warning (Avertissement) et Error (Erreur) de l'importation. Pour en savoir plus sur la migration d'API REST vers des API HTTP, consultez notre documentation.

Q : Comment savoir si mon API REST actuelle va fonctionner en tant qu'API HTTP ?

Tout d'abord, allez dans votre API REST et exportez la définition OpenAPI à partir de là. Ensuite, allez dans votre API HTTP et importez la définition OpenAPI exportée lors de l'étape précédente. Même si votre API fonctionne, il se peut que vous remarquiez que des fonctionnalités manquent. Pour identifier ces fonctionnalités manquantes, vérifiez les champs Info (Informations), Warning (Avertissement) et Error (Erreur) de l'importation. La CLI AWS renverra des informations concernant votre API dans les champs Info (Informations) et Warning (Avertissement). Pour en savoir plus, consultez notre documentation.

Q : Comment démarrer avec les API WebSocket dans Amazon API Gateway ?

Pour démarrer, vous pouvez créer une API WebSocket à l'aide d'AWS Management Console, du CLI AWS ou des kits SDK AWS. Vous pouvez ensuite définir le routage WebSocket pour indiquer les services backend tels que AWS Lambda, Amazon Kinesis ou votre point de terminaison HTTP à invoquer en fonction du contenu du message. Reportez-vous à la section documentation pour démarrer avec les API WebSocket dans API Gateway.

Q : Puis-je créer des endpoints HTTPS ?

Oui, toutes les API créées avec Amazon API Gateway présentent uniquement des points de terminaison HTTPS. Amazon API Gateway ne prend pas en charge les points de terminaison non chiffrés (HTTP). Par défaut, Amazon API Gateway attribue un domaine interne à l'API, qui utilise automatiquement le certificat Amazon API Gateway. Lorsque vous configurez vos API afin qu'elles s'exécutent sous un nom de domaine personnalisé, vous pouvez fournir votre propre certificat pour le domaine.

Q : Quels types de données puis-je utiliser avec Amazon API Gateway ?

Les API créées sur Amazon API Gateway peuvent accepter n'importe quel payload envoyé par HTTPS pour des API HTTP, REST et WebSocket. Les formats de données types incluent les formats JSON, XML, les paramètres des chaînes d'interrogation et les en-têtes de requête. Vous pouvez déclarer tout type de contenu pour vos réponses d'API, puis utiliser les modèles de transformation pour modifier la réponse du service dorsal et la générer dans le format que vous souhaitez.

Q : Avec quels services dorsaux Amazon API Gateway peut-il communiquer ?

Amazon API Gateway peut exécuter des fonctions AWS Lambda dans votre compte, démarrer des machines d'état AWS Step Functions, ou appeler des points de terminaison HTTP hébergés sur AWS Elastic Beanstalk, Amazon EC2, et aussi des opérations basées sur HTTP non hébergées sur AWS qui sont accessibles via l'Internet public. API Gateway vous permet également de spécifier un modèle de mappage pour générer du contenu statique à renvoyer, ce qui permet de créer des API factices avant que le backend soit prêt. Vous pouvez aussi intégrer directement API Gateway à d'autres services AWS. Par exemple, il est possible d'exécuter une méthode API dans API Gateway pour envoyer directement des données à Amazon Kinesis.

Q : Pour quelles plateformes clients Amazon API Gateway peut-il générer des kits SDK ?

API Gateway génère des kits SDK personnalisés pour le développement d'applications mobiles avec Android et iOS (Swift et Objective-C), ainsi que d'applications Web avec JavaScript. API Gateway prend également en charge la création de kits SDK pour Ruby et Java. Une fois qu'une API et ses modèles sont définis dans API Gateway, vous pouvez utiliser la console AWS ou les API d'API Gateway pour générer et télécharger un kit SDK client. Les kits SDK clients ne sont générés que pour les API REST dans Amazon API Gateway.

Q : Dans quelles régions AWS le service Amazon API Gateway est-il disponible ?

Pour savoir où les API HTTP, REST et WebSocket sont disponibles, consultez ce tableau des régions AWS.

Q : Quels éléments puis-je gérer via la console Amazon API Gateway ?

La console Amazon API Gateway vous permet de définir l'API REST ainsi que ses ressources et méthodes associées, de gérer le cycle de vie de l'API, de générer des kits SDK client et de consulter les mesures relatives à l'API. Vous pouvez aussi utiliser cette console pour définir les plans d'utilisation de vos API, gérer les clés d'API des développeurs et configurer des limitations et des quotas. Toutes ces actions sont également disponibles via les API d'API Gateway.

Q : Qu'est-ce qu'une ressource ?

Une ressource désigne un objet saisi, qui fait partie du domaine de votre API. Chaque ressource peut avoir associé un modèle de données, des relations à d'autres ressources et répondre à différentes méthodes. Vous pouvez également définir des ressources en tant que variables pour intercepter des requêtes sur plusieurs ressources enfants.

Q : Qu'est-ce qu'une méthode ?

Chaque ressource au sein d'une API REST peut prendre en charge une ou plusieurs des méthodes HTTP standard. Vous définissez les verbes qui doivent être pris en charge pour chaque ressource (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), ainsi que leur mise en œuvre. Par exemple, une ressource GET vers « voitures » doit renvoyer une liste de voitures. Pour connecter toutes les méthodes d'une ressource à un point de terminaison backend unique, API Gateway prend également en charge une méthode « ANY » spéciale.

Q : Qu'est-ce qu'un plan d'utilisation ?

Les plans d'utilisation vous aident à déclarer des plans pour les développeurs tiers qui limitent l'accès à certaines API, définissent des limites et de quotas de demandes, et les associent à des clés d'API. Vous pouvez ainsi extraire les données d'utilisation de chaque clé d'API, ce qui vous permet d'analyser l'utilisation de vos API et de générer des factures. Vous pouvez, par exemple, créer des plans de niveau Basique, Professionnel ou Entreprise, et configurer le plan d'utilisation basique pour n'autoriser que 1 000 demandes par jour, avec un maximum de 5 demandes par seconde (RPS).

Q : Quel est le cycle de vie d'une API dans Amazon API Gateway ?

Avec Amazon API Gateway, chaque API REST peut être constituée de plusieurs étapes. Les étapes aident à élaborer le cycle de vie de développement d'une API. Par exemple, lorsque vous avez conçu vos API et que vous les déployez dans une étape de développement, ou lorsque vous êtes prêt à lancer la production et que vous déployez vos API dans une étape de production.

Q : Qu'est-ce qu'une étape ?

Dans Amazon API Gateway, les étapes sont similaires à des balises. Elles définissent le chemin via lequel le déploiement est accessible. Par exemple, vous pouvez définir une étape de développement et déployer vos API concernant les voitures dans cette étape. La ressource sera accessible à l'adresse https://www.myapi.com/dev/voitures. Vous pouvez également configurer des noms de domaine personnalisés qui pointent directement vers une étape, afin de ne pas avoir à utiliser le paramètre de chemin supplémentaire. Par exemple, si vous avez pointé myapi.com directement vers l'étape de développement, vous pouvez accéder à votre ressource voitures à l'adresse https://www.myapi.com/voitures. Les étapes peuvent être configurées à l'aide de variables accessibles depuis votre configuration d'API ou vos modèles de mapage.

Q : Que sont les variables d'étape ?

Les variables d'étape vous permettent de définir des paires clé/valeur pour la configuration associée à une étape. Tout comme les variables d'environnement, ces valeurs peuvent être utilisées dans votre configuration d'API. Par exemple, vous pouvez définir l'endpoint HTTP pour votre intégration de méthode sous forme de variable d'étape, et utiliser cette variable dans votre configuration d'API plutôt que de coder en dur l'endpoint. Ainsi, vous pouvez utiliser un endpoint différent pour chaque étape (développement, bêta, production, etc.), tout en conservant la même configuration d'API. Les variables d'étape sont également accessibles dans les modèles de mapping et peuvent être utilisées pour transmettre les paramètres de la configuration à votre back-end Lambda ou HTTP.

Q : Qu'est-ce qu'une Resource Policy ?

Une Resource Policy est un document de politique au format JSON que vous joignez à une API pour déterminer si un principe spécifié (généralement un utilisateur ou un rôle IAM) peut appeler ou non l'API. Vous pouvez utiliser une Resource Policy pour permettre aux utilisateurs d'un compte AWS différent d'accéder en toute sécurité à votre API ou pour autoriser l'API à être appelée uniquement à partir d'intervalles d'adresses IP source ou de blocs CIDR spécifiés. Les politiques de ressources peuvent être utilisées avec les API REST dans Amazon API Gateway.

Q : Que faire si j'ai déployé par erreur une API dans une étape ?

Amazon API Gateway enregistre l'historique de vos déploiements. Vous pouvez à tout moment revenir à un déploiement antérieur de l'étape à l'aide des API d'Amazon API Gateway ou de la console.

Q : Puis-je utiliser mes définitions d'API de Swagger ?

Oui. Vous pouvez utilise notre outil d'importation Swagger à code source libre pour importer vos définitions d'API Swagger dans Amazon API Gateway. Grâce à l'outil d'importation Swagger, vous pouvez créer et déployer de nouvelles API et mettre à jour des API existantes.

Q : Comment monétiser mes API sur API Gateway ?

Vous pouvez monétiser vos API sur API Gateway en les publiant en tant que produits sur AWS Marketplace. Vous devez tout d'abord vous inscrire en tant que vendeur sur AWS Marketplace et envoyer vos plans d'utilisation sur API Gateway en tant que produits. Consultez cette page pour en savoir plus sur la monétisation des API.

Q : Comment documenter mes API sur Amazon API Gateway ?

API Gateway permet de créer, mettre à jour et supprimer la documentation associée à chaque partie de votre API, par exemple, les méthodes et les ressources. Vous pouvez accéder aux API liées à la documentation via les kits SDK AWS, l'interface de ligne de commande, via des appels RESTful, ou en modifiant les chaînes de documentation directement dans la console API Gateway. La documentation peut également être importée sous la forme d'un fichier Swagger, dans le cadre de l'API ou séparément, ce qui vous permet d'ajouter ou de mettre à jour la documentation sans perturber la définition de l'API. API Gateway respecte la spécification d'API ouverte pour la documentation importée depuis ou exportée vers les fichiers Swagger. La documentation est prise en charge pour les API REST API Gateway.

Q : Comment éviter de créer des copies redondantes de messages d'erreur et d'autres documents qui se répètent fréquemment dans mon API ?

En plus de prendre en charge la documentation d'API conforme aux normes, API Gateway prend également en charge l'héritage de documentation, ce qui permet de définir facilement une chaîne de documentation une seule fois et de l'utiliser à plusieurs emplacements. L'héritage simplifie le processus de définition de la documentation d'API et peut être converti en représentation standard lors de l'exportation de l'API sous la forme d'un fichier Swagger.

Q : Puis-je restreindre l'accès aux API privées à un Amazon VPC ou un point de terminaison d'un VPC spécifique ?

Oui, vous pouvez appliquer une Resource Policy à une API pour restreindre l'accès à un Amazon VPC ou un point de terminaison VPC spécifique. Vous pouvez également donner à un Amazon VPC ou un point de terminaison VPC d'un compte différent l'accès à l'API privée à l'aide d'une Resource Policy.

Sécurité et autorisation

Q : Comment puis-je autoriser l'accès à mes API ?

Avec Amazon API Gateway, vous pouvez également configurer vos méthodes API pour qu'elles nécessitent une autorisation. Pour configurer une méthode de manière à ce qu'elle demande une autorisation, il est possible d'exploiter AWS Signature Version 4 ou des autorisateurs Lambda, afin de soutenir votre propre stratégie d'authentification par bearer token.

Q : Comment fonctionne l'AWS Signature Version 4 ?

Vous pouvez utiliser des informations d'identification (credentials) AWS, comme des clés d'accès et des clés secrètes, pour signer les requêtes adressées à votre service et autoriser l'accès comme le feraient d'autres services AWS. La signature d'une requête d'API sur Amazon API Gateway est gérée par le kit SDK Amazon API Gateway personnalisé, généré pour votre service. Vous pouvez récupérer des informations d'identification temporaires associées à un rôle dans votre compte AWS à l'aide d'Amazon Cognito.

Q : Qu'est-ce qu'un autorisateur Lambda ?

Les autorisateurs Lambda sont des fonctions AWS Lambda. Ils vous permettent d'autoriser l'accès à des API à l'aide d'une stratégie d'authentification à bearer token, comme OAuth. Quand une API est appelée, API Gateway vérifie si un autorisateur personnalisé a été configuré. La fonction Lambda est ensuite appelée avec le jeton d'autorisation entrant. Vous pouvez utiliser Lambda pour implémenter différentes stratégies d'autorisation (par exemple, vérification JWT ou appel de fournisseur OAuth) renvoyant les politiques IAM servant à autoriser la requête. Si la politique renvoyée par l'autorisateur est valide, API Gateway met en cache la politique associée avec le jeton entrant pendant 1 heure maximum.

Q : Amazon API Gateway peut-il générer des clés d'API à distribuer aux développeurs tiers ?

Oui. API Gateway permet de générer des clés d'API et de les associer à un plan d'utilisation. Les appels reçus depuis chaque clé d'API sont surveillés et consignés dans les journaux Amazon CloudWatch Logs, que vous pouvez activer pour chaque étape. Cependant, nous vous déconseillons d'utiliser les clés d'API à des fins d'autorisation. Vous devez utiliser les clés d'API pour surveiller l'utilisation par des développeurs tiers et tirer parti d'un mécanisme plus robuste pour gérer l'autorisation, comme des appels d'API signés ou OAuth.

Q : Comment puis-je prévenir ou répondre aux menaces et abus concernant les API ?

API Gateway prend en charge les paramètres de limitation pour chaque méthode ou route de vos API. Vous pouvez définir une limite concernant le taux standard et le taux de pics par seconde pour chaque méthode de vos API REST et chaque route des API WebSocket. De plus, API Gateway protège automatiquement vos systèmes dorsaux contre les attaques par déni de service distribué (DDoS), qu'il s'agisse d'attaques via de fausses requêtes (couche 7)ou par saturation SYN (couche 3).

Q : Puis-je vérifier que c'est bien API Gateway qui appelle mon service Backend?

Oui. Amazon API Gateway peut générer un certificat SSL client et mettre à votre disposition la clé publique du certificat en question. Les appels à votre service dorsal peuvent être réalisés avec le certificat généré et vous pouvez vérifier les appels provenant d'Amazon API Gateway à l'aide de la clé publique du certificat concerné.

Q : Puis-je utiliser AWS CloudTrail avec Amazon API Gateway ?

Oui. Amazon API Gateway est intégré à AWS CloudTrail afin de vous offrir un historique entièrement contrôlable des changements effectués sur vos API REST. Tous les appels d'API effectués sur les API d'Amazon API Gateway pour créer, modifier, supprimer ou déployer des API REST sont consignés dans CloudTrail, dans votre compte AWS.

Q : Comment fonctionne Amazon API Gateway avec un Amazon Virtual Private Cloud (Amazon VPC) ? 

Dans Amazon API Gateway, vous pouvez rapprocher des requêtes des ressources HTTP/HTTPS backend s'exécutant dans votre Amazon VPC en configurant Intégrations privées avec VPC Links. Les certificats SSL du côté du client dans Amazon API Gateway peut être utilisés pour vérifier que les requêtes à vos systèmes backend ont été envoyées par API Gateway à l'aide de la clé publique du certificat. Vous pouvez également créer des API privées dans Amazon API Gateway auxquelles seules des ressources de votre Amazon VPC peuvent accéder via des points de terminaison Amazon VPC.

Q : Puis-je restreindre l'accès aux API privées à un Amazon VPC ou un point de terminaison d'un VPC spécifique ?

Oui, vous pouvez appliquer une Resource Policy à une API pour restreindre l'accès à un Amazon VPC ou un point de terminaison VPC spécifique. Vous pouvez également donner à un Amazon VPC ou un point de terminaison VPC d'un compte différent l'accès à l'API privée à l'aide d'une Resource Policy.

Q : Puis-je configurer mes API REST dans API Gateway pour utiliser TLS 1.1 ou supérieur ?

Oui. Si vous utilisez des API REST, vous pouvez configurer une distribution CloudFront avec un certificat SSL personnalisé dans votre compte et l'utiliser avec les API régionales dans API Gateway. Vous pouvez ensuite configurer la stratégie de sécurité pour la distribution CloudFront avec TLS 1.1 ou supérieur, en fonction de vos exigences de sécurité et de conformité.

Gestion, mesures et journalisation

Q : Comment puis-je surveiller mes API Amazon API Gateway ?

Amazon API Gateway consigne les appels d'API, la latence et les taux d'erreurs dans Amazon CloudWatch, sur votre compte AWS. Ces mesures sont également disponibles via la console Amazon API Gateway, dans un tableau de bord relatif aux API REST. API Gateway mesure aussi l'utilisation des développeurs tiers : il est possible de consulter ces mesures dans la console API Gateway et via les API.

Q : Puis-je configurer des alarmes sur les metriques d'Amazon API Gateway ?

Oui, Amazon API Gateway envoie des informations de journalisation et des mesures à Amazon CloudWatch. Vous pouvez utiliser la console Amazon CloudWatch pour définir des alarmes personnalisées.

Q : Comment puis-je configurer des mesures concernant Amazon API Gateway ?

Par défaut, Amazon API Gateway surveille le trafic au niveau d'une API REST. Cependant, vous pouvez éventuellement activer des mesures détaillées pour chaque méthode de votre API REST à partir des API de configuration du déploiement ou de l'écran de la console. Les mesures détaillées sont également consignées dans Amazon CloudWatch et seront facturées selon les tarifs applicables à CloudWatch.

Q : Puis-je déterminer la version de l'API que mes clients utilisent ?

Oui. Les détails sur les mesures sont spécifiés par l'API REST et par l'étape. De plus, vous pouvez activer des mesures pour chaque méthode dans votre API REST.

Q : Amazon API Gateway prend-il en charge la journalisation ?

Oui. Amazon API Gateway est intégré à Amazon CloudWatch Logs. Vous pouvez éventuellement activer la journalisation pour chaque étape de votre API. Pour chaque méthode de vos API REST, vous pouvez définir la verbosité de la journalisation et indiquer si les données complètes concernant les requêtes et les réponses doivent être consignées.

Q : Sous quel délai les journaux sont-ils disponibles ?

Les journaux, alarmes, taux d'erreurs et autres mesures sont stockés dans Amazon CloudWatch et sont disponibles quasiment en temps réel.

Limitations et mise en cache

Q : Comment puis-je protéger mes applications et systèmes dorsaux contre les pics de trafic ?

Amazon API Gateway permet de définir des limitations à plusieurs niveaux, notamment au niveau global et en fonction de l'appel de service. Les limitations peuvent être définies pour les taux standard et les pics. Par exemple, les propriétaires d'API peuvent définir une limite de taux de 1 000 requêtes par seconde pour une méthode spécifique de leurs API REST, et configurer Amazon API Gateway afin qu'il gère un pic de 2 000 requêtes par seconde pendant quelques secondes. Amazon API Gateway suit le nombre de requêtes par seconde. Toute requête dépassant la limite recevra une réponse HTTP 429. Les kits SDK client (sauf Javascript) générés par Amazon API Gateway retentent automatiquement les appels lorsqu'ils rencontrent cette réponse.

Q : Puis-je appliquer des limitations à certains développeurs en particulier qui appellent mes API ?

Oui. Grâce aux plans d'utilisation, vous pouvez fixer des limitations pour chaque clé d'API.

Q : Comment les limitations peuvent-elles m'aider ?

Les limitations garantissent le contrôle du trafic de l'API afin d'aider vos services dorsaux à maintenir leurs performances et leur disponibilité.

Q : A quels niveaux Amazon API Gateway peut-il limiter le trafic entrant sur les API ?

Les taux de limitation peuvent être définis au niveau de la méthode. Vous pouvez modifier ces limites dans vos paramètres de méthode, via les API d'Amazon API Gateway ou dans la console Amazon API Gateway.

Q : Comment sont appliquées les règles de limitation ?

Les règles de limitation d'API Gateway s'appliquent dans l'ordre de priorité suivant : 1) les limites par client et par méthode que vous définissez pour une étape API dans un plan d'utilisation, 2) les limites par client que vous définissez dans un plan d'utilisation, 3) les limites par méthode par défaut et les limites par méthode spécifiques que vous définissez dans les paramètres d'étape API, 4) les limites au niveau du compte par région.

Q : Amazon API Gateway offre-t-il une fonctionnalité de mise en cache des résultats de l'API ?

Oui. Vous pouvez ajouter une mise en cache aux appels d'API en dimensionnant un cache API Gateway et en précisant sa taille en gigaoctets. Le cache est mis en service pour une étape spécifique de vos API. Cela améliore les performances et réduit le trafic envoyé vers votre service dorsal. Les paramètres de cache vous permettent de contrôler la manière dont la clé du cache est conçue, ainsi que la durée de vie (TTL) des données stockées pour chaque méthode. API Gateway fournit également les API de gestion qui vous aident à invalider le cache pour chaque étape. La mise en cache est disponible pour les API REST dans API Gateway.

Q : Que se passe-t-il si un grand nombre d'utilisateurs finaux essaie d'appeler mon API en même temps ?

Si la mise en cache est désactivée et qu'aucune limitation n'a été mise en place, toutes les requêtes passeront par votre service backend, jusqu'à ce que les limitations du compte soient atteintes. Si des limitations ont été mises en place, Amazon API Gateway éliminera alors la quantité de requêtes nécessaire et enverra uniquement la limite définie à votre service backend. Si un cache est configuré, Amazon API Gateway renvoie une réponse en cache pour les doublons de requêtes pendant une durée personnalisable, mais uniquement sous les limites de throttling configurées. Cet équilibre entre le service dorsal et le client garantit des performances optimales de l'API pour les applications qu'elle prend en charge. Les requêtes soumises aux limitations feront automatiquement l'objet d'une nouvelle tentative de la part des kits SDK client générés par Amazon API Gateway. Par défaut, Amazon API Gateway ne définit aucun cache concernant les méthodes de l'API.

Q : Comment les API se mettent-elles à l'échelle ?

Amazon API Gateway agit comme un proxy sur les opérations dorsales que vous avez configurées. Amazon API Gateway se mettra automatiquement à l'échelle pour traiter le volume de trafic reçu par votre API. Amazon API Gateway ne limite pas de façon arbitraire les appels envoyés à vos opérations dorsales. Par conséquent, toutes les requêtes qui ne sont pas interceptées par les paramètres de limitation et de mise en cache dans la console Amazon API Gateway sont envoyées à vos opérations dorsales.

Facturation

Q : Comment l'utilisation d'Amazon API Gateway me sera-t-elle facturée ?

Amazon API Gateway facture par million d'appels d'API, auxquels s'ajoutent les frais de transfert de données sortantes, en gigaoctets. Si vous choisissez de mettre en service de mémoire cache pour votre API, des tarifs horaires s'appliquent. Pour les API WebSocket, les factures d'API Gateway sont basées sur les messages envoyés et reçus et le nombre de minutes pendant lesquelles un client est connecté à l'API. Pour en savoir plus sur les frais applicables aux appels d'API, au transfert de données et à la mise en cache par région, consultez la page de tarification de l'API Gateway.

Q : Qui paie pour les appels d'API Amazon API Gateway générés par des développeurs tiers ?

Le propriétaire de l'API est facturé pour les appels envoyés à ses API sur API Gateway.

Q : Si une réponse d'API est envoyée par des données en cache, cela est-il considéré comme un appel d'API dans le cadre de la facturation ?

Oui. Les appels d'API sont calculés de la même manière dans le cadre de la facturation, que la réponse soit traitée par vos opérations dorsales ou par l'opération de mise en cache d'Amazon API Gateway.

API WebSocket

Q : Qu'est-ce-que le routage WebSocket dans Amazon API Gateway ?

Le routage WebSocket dans Amazon API Gateway est utilisé pour acheminer correctement les messages vers une intégration spécifique. Vous spécifiez une clé de routage et un backend d'intégration à invoquer lors de la définition de votre API WebSocket. La clé de routage est un attribut du corps du message. Une intégration par défaut peut également être définie pour les clés de routage qui ne correspondent pas. Reportez-vous à documentation pour en savoir plus sur le routage.

Q : Comment puis-je envoyer des messages aux clients connectés à partir du service backend ?

Lorsqu'un nouveau client est connecté à l'API WebSocket, une URL unique, appelée URL de rappel, est créée pour ce client. Vous pouvez utiliser cette URL de rappel pour envoyer des messages au client à partir du service backend.

Q : Comment puis-je autoriser l'accès à mon API WebSocket dans Amazon API Gateway ?

Avec Amazon API Gateway, vous pouvez soit utiliser les rôles et stratégies IAM, soit les AWS Lambda Authorizers pour autoriser l'accès à vos API WebSocket.

Q : Comment mon service backend sait-il si un client est connecté ou déconnecté de la connexion WebSocket dans Amazon API Gateway ?

Lorsqu'un client est connecté ou déconnecté, un message est envoyé depuis le service Amazon API Gateway vers votre fonction AWS Lambda ou votre point de terminaison HTTP via les routes $connect et $disconnect. Vous pouvez prendre les mesures appropriées comme ajouter ou supprimer le client de la liste des utilisateurs connectés.

Q : Comment mon service backend peut-il identifier si le client est toujours connecté à la connexion WebSocket ?

Vous pouvez utiliser la méthode de rappel URL GET sur la connexion pour identifier si le client est connecté à la connexion WebSocket. Reportez-vous à la documentation sur l'utilisation d'une URL de rappel.

Q : Puis-je déconnecter un client de mon service backend ?

Oui, vous pouvez déconnecter le client connecté de votre service backend en utilisant l'URL de rappel.

Q : Quelle est la taille maximale des messages prise en charge pour les API WebSocket ?

La taille maximale des messages prise en charge est de 128 Ko. Reportez-vous à la section documentation pour connaître les autres limites des API WebSocket.

Q : Comment suis-je facturé pour l'utilisation des API WebSocket sur Amazon API Gateway ?

Vous serez facturé sur la base de 2 métriques : minutes de connexion et messages.

Minutes de connexion : Nombre total de minutes pendant lesquelles les clients ou périphériques sont connectés à la connexion WebSocket (arrondi à la minute près).

Messages : Nombre total de messages envoyés et reçus des clients connectés. Les messages sont facturés par incréments de 32 Ko. Reportez-vous à la page de tarification pour plus de détails sur la tarification et les exemples d'API WebSocket.

Q : Si les messages sur la connexion WebSocket manquent d'authentification ou d'autorisation, est-ce qu'ils comptent quand même pour ma facture d'utilisation de l'API ?

Non, si les messages sur la connexion WebSocket échouent l'authentification ou l'autorisation, ils ne comptent pas dans votre facture d'utilisation de l'API.

En savoir plus sur Amazon API Gateway

Visiter la page de tarification
Prêt à vous lancer ?
S'inscrire
D'autres questions ?
Nous contacter