FAQ sur Amazon API Gateway

Questions d’ordre général

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.

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 back-end.

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.

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 qui font office de proxy vers les fonctions AWS Lambda ou les dorsaux 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.

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.

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.

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. 

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.

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.

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 Infos , Avertissement et Erreur de l'importation. Pour en savoir plus sur la migration d'API REST vers des API HTTP, consultez notre documentation.

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 Infos, Avertissement et 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.

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.

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.

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.

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.

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.

Pour savoir où les API HTTP, API REST et API WebSocket sont disponibles, consultez le tableau des Régions AWSici .

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.

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.

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.

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).

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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).

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é.

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.

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.

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.

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 Politique 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 consignation

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.

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.

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.

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.

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.

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

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.

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

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

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.

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.

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.

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.

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

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 d’API Gateway.

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

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

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.

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.

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.

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.

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.

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

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.

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.

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.