Fiche technique | |
---|---|
Fournisseur : | AWS |
Type de produit : | Service infonuagique |
Catégorie : | Service Web d'API (API Gateway) |
Site Web : | https://aws.amazon.com/api-gateway/ |
Amazon API Gateway
Le Amazon API Gateway est un service entièrement géré permettant aux développeurs de créer, publier, gérer, surveiller et sécuriser des API à n'importe quelle échelle. Les organisations peuvent créer une API servant de porte d'entrée pour que les applications accédant aux données, à la logique métier ou aux fonctionnalités des services dorsale (Back-end), comme les charges de travail exécutées sur Amazon EC2, le code exécuté sur AWS Lambda ou toute application Web. Le Amazon API Gateway gère toutes les tâches impliquées dans l'acceptation et le traitement de centaines de milliers d'appels d'API simultanés, y compris la gestion du trafic, les autorisations et le contrôle d'accès, la surveillance et la gestion des versions d'API.
Voici les caractéristiques principales d'Amazon API Gateway :
- Gestion complète des API : API Gateway permet de définir, publier, surveiller et sécuriser des API. Cela inclut le contrôle du trafic, la gestion des autorisations, la limitation des taux de requêtes, et la gestion de versions des API.
- Support des API RESTful et WebSocket : Amazon API Gateway prend en charge les API RESTful pour les opérations de CRUD (Create, Read, Update, Delete) et les API WebSocket pour les applications nécessitant des communications bidirectionnelles en temps réel, comme les applications de chat ou de suivi en direct.
- Intégration avec AWS Lambda : Amazon API Gateway peut se connecter directement aux fonctions AWS Lambda, permettant de créer des applications Serverless. Chaque requête entrante vers une API REST ou WebSocket peut déclencher une fonction Lambda pour traiter la demande sans avoir besoin de gérer de serveurs.
- Contrôle et limitation du trafic : Il offre un contrôle du trafic grâce à la limitation de taux et au contrôle d'accès IP, permettant de prévenir la surcharge des services backend. Les utilisateurs peuvent définir des quotas d'utilisation et limiter les appels pour différents utilisateurs ou applications.
- Authentification et autorisations : Amazon API Gateway intègre des mécanismes de sécurité comme Amazon Cognito pour gérer les utilisateurs et fournir des identifiants temporaires. Il est également possible d'utiliser les autorisations basées sur des rôles IAM, des jetons JWT, ou des autorisations personnalisées via des fonctions Lambda.
- Gestion et transformation des requêtes et des réponses : Amazon API Gateway peut transformer le contenu des requêtes et des réponses en modifiant les entêtes, les chemins, les corps des messages,... Cela est particulièrement utile pour l'adaptation des réponses aux besoins des clients tout en gardant le backend inchangé.
- Monétisation et plans d'utilisation : Amazon API Gateway permet de définir des plans d'utilisation et de mettre en place des clefs d'API pour les consommateurs, ce qui permet aux développeurs de contrôler l'accès aux API et de mettre en ouvre des stratégies de monétisation.
- Surveillance et journalisation intégrées : Avec Amazon CloudWatch, Amazon API Gateway offre une surveillance en temps réel pour le suivi des requêtes, des latences, et des erreurs. Les métriques Amazon CloudWatch fournissent une visibilité sur l'utilisation de l'API, permettant aux développeurs de détecter rapidement des anomalies et d'optimiser les performances.
- Versioning et déploiements canari : Amazon API Gateway facilite la gestion des versions d'API et permet de déployer de nouvelles versions sans interrompre les versions précédentes. Les déploiements canari permettent de tester de nouvelles versions avec un pourcentage limité du trafic avant de les déployer complètement.
- Cache des réponses : Le service propose un cache pour réduire les coûts et améliorer les performances en stockant les réponses des API. Cela diminue la charge sur les services backend en servant les réponses mises en cache pour les requêtes identiques.
Avantages d'Amazon API Gateway
- Évolutivité : Le service gère automatiquement l'échelle en fonction de la demande, offrant ainsi des performances constantes même en cas de pics de trafic.
- Flexibilité : API Gateway prend en charge divers types d'intégration backend (HTTP, Lambda,...) et peut être configuré pour une variété de cas d'utilisation (REST, WebSocket).
- Sécurité : L'intégration avec des outils de sécurité AWS tels qu'IAM et Amazon Cognito facilite la mise en oeuvre de politiques de sécurité rigoureuses.
Inconvénients d'Amazon API Gateway
- Coût : Le coût d'API Gateway peut devenir élevé pour les applications à très fort volume de trafic. Bien qu'il existe une couche gratuite, les tarifs augmentent en fonction du nombre de requêtes et des fonctionnalités utilisées.
- Complexité pour des applications simples : Pour des applications légères ou simples, les fonctionnalités d'API Gateway peuvent sembler trop complexes ou surdimensionnées.
Cas d'utilisation d'Amazon API Gateway
- Applications Serverless : Amazon API Gateway combiné avec Lambda est idéal pour des applications sans serveur, permettant une mise en oeuvre d'API RESTful sans gestion d'infrastructure.
- Microservices : Pour les architectures basées sur des microservices, Amazon API Gateway sert de passerelle centralisée pour gérer et sécuriser les interactions entre les services.
- Communication en temps réel : Avec les API WebSocket, Amazon API Gateway permet de créer des applications en temps réel comme des jeux en ligne, des plateformes de messagerie instantanée, et des outils de collaboration.
Liste des commandes
Voici la liste des commandes AWS CLI proposé pour le service Amazon API Gateway :
Nom | Description |
---|---|
aws apigateway create-api-key | Cette commande permet de créer une ressource ApiKey. |
aws apigateway create-authorizer | Cette commande permet d'ajouter une nouvelle ressource Authorizer à une ressource existante RestApi. |
aws apigateway create-base-path-mapping | Cette commande permet de créer une nouvelle ressource BasePathMapping. |
aws apigateway create-deployment | Cette commande permet de créer une ressource de déploiement, lequel rendant un RestApi spécifié accessible via Internet. |
aws apigateway create-documentation-part | Cette commande permet de créer une section d'API de documentation. |
aws apigateway create-documentation-version | Cette commande permet de demander la version d'une section d'API de documentation. |
aws apigateway create-domain-name | Cette commande permet de créer un nouveau nom de domaine. |
aws apigateway create-model | Cette commande permet de créer une nouvelle ressource de modèle pour une ressource RestApi existante. |
aws apigateway create-request-validator | Cette commande permet de créer un validateur de requête pour RestApi. |
aws apigateway create-resource | Cette commande permet de créer une ressource Resource. |
aws apigateway create-rest-api | Cette commande permet de créer une nouvelle ressource RestApi. |
aws apigateway create-stage | Cette commande permet de créer une nouvelle ressource Stage référençant un déploiement pré-existant pour l'API. |
aws apigateway create-usage-plan | Cette commande permet de créer un plan d'utilisation avec les limites et un quota, ainsi que des étapes API associées. |
aws apigateway create-usage-plan-key | Cette commande permet de créer une clef de plan d'utilisation dans une clef d'API existante pour un plan d'utilisation. |
aws apigateway create-vpc-link | Cette commande permet de créer un lien VPC, sous le compte de l'appelant dans une région sélectionnée, dans une opération désynchronisé prenant généralement 2 à 4 minutes pour se terminer et devenir opérationnel. |
aws apigateway delete-api-key | Cette commande permet de supprimer la ressource ApiKey. |
aws apigateway delete-authorizer | Cette commande permet de supprimer une ressource Authorizer existante. |
aws apigateway delete-base-path-mapping | Cette commande permet de supprimer la ressource BasePathMapping. |
aws apigateway delete-client-certificate | Cette commande permet de supprimer la ressource ClientCertificate. |
aws apigateway delete-deployment | Cette commande permet de supprimer une ressource de déploiement. |
aws apigateway delete-documentation-part | Cette commande permet de supprimer une section d'API de documentation. |
aws apigateway delete-documentation-version | Cette commande permet de supprimer la version d'une section d'API de documentation. |
aws apigateway delete-domain-name | Cette commande permet de supprimer la ressource DomainName. |
aws apigateway delete-gateway-response | Cette commande permet d'effacer toute personnalisation d'une réponse GatewayResponse d'un type de réponse spécifié sur le RestApi spécifié et le réinitialise avec les paramètres par défaut. |
aws apigateway delete-integration | Cette commande permet de supprimer une intégration. |
aws apigateway delete-integration-response | Cette commande permet de supprimer une réponse d'intégration. |
aws apigateway delete-method | Cette commande permet de supprimer une ressource de méthode. |
aws apigateway delete-method-response | Cette commande permet de supprimer une ressource existante MethodResponse. |
aws apigateway delete-model | Cette commande permet de supprimer un modèle. |
aws apigateway delete-request-validator | Cette commande permet de supprimer un RequestValidator d'un RestApi spécifié. |
aws apigateway delete-resource | Cette commande permet de supprimer une ressource Resource. |
aws apigateway delete-rest-api | Cette commande permet de supprimer l'API spécifié. |
aws apigateway delete-stage | Cette commande permet de supprimer une ressource Stage. |
aws apigateway delete-usage-plan | Cette commande permet de supprimer le plan d'utilisation pour l'identificateur de plan spécifié. |
aws apigateway delete-usage-plan-key | Cette commande permet de supprimer une clef de plan d'utilisation et supprime la clef API sous-jacente du plan d'utilisation associé. |
aws apigateway delete-vpc-link | Cette commande permet de supprimer un VpcLink existant à partir de l'identificateur spécifié. |
aws apigateway flush-stage-authorizers-cache | Cette commande permet de vider toutes les entrées de cache autorisé dans un stage. |
aws apigateway flush-stage-cache | Cette commande permet de vider le cache de stage. |
aws apigateway generate-client-certificate | Cette commande permet de générer une ressource ClientCertificate. |
aws apigateway get-account | Cette commande permet de demander des informations à propos de la ressource de compte courante. |
aws apigateway get-api-key | Cette commande permet de demander des informations à propos de la ressource ApiKey courante. |
aws apigateway get-api-keys | Cette commande permet de demander des informations à propos de la ressource ApiKeys courante. |
aws apigateway get-authorizer | Cette commande permet de décrire une ressource Authorizer existante. |
aws apigateway get-authorizers | Cette commande permet de décrire une ressource Authorizers existante. |
aws apigateway get-base-path-mapping | Cette commande permet de décrire une ressource BasePathMapping. |
aws apigateway get-base-path-mappings | Cette commande permet de demander une représentation d'une collection de ressource BasePathMapping. |
aws apigateway get-client-certificate | Cette commande permet de demander des informations à propos de la ressource ClientCertificate courante. |
aws apigateway get-client-certificates | Cette commande permet de demander une collection de ressource ClientCertificate. |
aws apigateway get-deployment | Cette commande permet de demander les informations à propos d'une ressource Deployment. |
aws apigateway get-deployments | Cette commande permet de demander les informations à propos d'une collection de ressource Deployments. |
aws apigateway get-documentation-part | Cette commande permet de demander une section d'API de documentation. |
aws apigateway get-documentation-parts | Cette commande permet de demander une collection de section d'API de documentation. |
aws apigateway get-documentation-version | Cette commande permet de demander la version d'une section d'API de documentation. |
aws apigateway get-domain-name | Cette commande permet de demander une représentation d'un nom de domaine contenu dans une URL plus simple et plus intuitive pouvant être appelée. |
aws apigateway get-domain-names | Cette commande permet de demander une représentation d'une collection de ressources DomainName. |
aws apigateway get-export | Cette commande permet d'exporter une version déployé d'un RestApi dans un format spécifié. |
aws apigateway get-gateway-response | Cette commande permet de demander un GatewayResponse d'un type de réponse spécifié dans un RestApi spécifié. |
aws apigateway get-gateway-responses | Cette commande permet de demander une collection GatewayResponses dans un RestApi spécifié. |
aws apigateway get-integration | Cette commande permet de demander les ajustements d'intégration. |
aws apigateway get-integration-response | Cette commande permet de demander une représentation d'une réponse d'intégration. |
aws apigateway get-method | Cette commande permet de décrire une ressource Method existante. |
aws apigateway get-method-response | Cette commande permet de décrire une ressource MethodResponse. |
aws apigateway get-model | Cette commande permet de de décrire un modèle existant défini par une ressource RestApi. |
aws apigateway get-model-template | Cette commande permet de générer un échantillon de modèle de cartographie pouvant être utilisé pour transformer une charge utile dans la structure d'un modèle. |
aws apigateway get-models | Cette commande permet de décrire des modèles existant défini par une ressource RestApi. |
aws apigateway get-request-validator | Cette commande permet de demander une RequestValidator dans un RestApi spécifié. |
aws apigateway get-request-validators | Cette commande permet de demander une collection de RequestValidator dans un RestApi spécifié. |
aws apigateway get-resource | Cette commande permet d'afficher une liste d'informations à propos d'une ressource. |
aws apigateway get-resources | Cette commande permet d'afficher une liste d'informations à propos d'une collection de ressources Resource. |
aws apigateway get-rest-api | Cette commande permet d'afficher une liste de ressource RestApi dans la collection. |
aws apigateway get-rest-apis | Cette commande permet d'afficher une liste de ressource RestApis pour votre application. |
aws apigateway get-sdk | Cette commande permet de générer un client SDK pour un RestApi et un Stage. |
aws apigateway get-sdk-type | Cette commande permet de demander le type de SDK. |
aws apigateway get-sdk-types | Cette commande permet de demander une liste de type de SDK. |
aws apigateway get-stage | Cette commande permet de demander les informations à propos de ressource Stage. |
aws apigateway get-stages | Cette commande permet de demander les informations à propos d'un ou plusieurs ressources Stage. |
aws apigateway get-tags | Cette commande permet de demander une collection de Tags pour une ressource spécifié. |
aws apigateway get-usage | Cette commande permet de demander les données d'utilisation pour un plan d'utilisation dans un intervalle de temps spécifié. |
aws apigateway get-usage-plan | Cette commande permet de demander un plan d'utilisation pour un plan identifié spécifié. |
aws apigateway get-usage-plan-key | Cette commande permet de demander la clef du plan d'utilisation pour un identifiant de clef spécifié. |
aws apigateway get-usage-plan-keys | Cette commande permet de demander la clef du plan d'utilisation représenté par les clefs d'API ajouté au plan d'utilisation spécifié. |
aws apigateway get-usage-plans | Cette commande permet de demander tous les plans d'utilisation pour le compte de l'appelant. |
aws apigateway get-vpc-link | Cette commande permet de demander un lien VPC spécifié sous le compte de l'appelant dans une région. |
aws apigateway get-vpc-links | Cette commande permet de demander la collection VpcLinks sous le compte de l'appelant dans une région sélectionnée. |
aws apigateway import-api-keys | Cette commande permet d'importer des clefs API à partir d'une source externe, telle qu'un fichier au format CSV. |
aws apigateway import-documentation-parts | Cette commande permet d'importer des parties de documentation. |
aws apigateway import-rest-api | Cette commande permet de créer une nouvelle API à partir d'un fichier de définition d'API externe. |
aws apigateway put-gateway-response | Cette commande permet de créer une personnalisation d'une GatewayResponse d'un type de réponse et d'un code d'état spécifiés sur le RestApi donné. |
aws apigateway put-integration | Cette commande permet de configurer l'intégration d'une méthode. |
aws apigateway put-integration-response | Cette commande permet de mettre une réponse d'intégration. |
aws apigateway put-method | Cette commande permet d'ajouter une méthode à une ressource Resource existante. |
aws apigateway put-method-response | Cette commande permet d'ajouter une MethodResponse à une ressource Method existante. |
aws apigateway put-rest-api | Cette commande permet de mettre à jour une API existante avec une entrée de définitions d'API externes. |
aws apigateway tag-resource | Cette commande permet d'ajouter ou de mettre à jour une balise sur une ressource donnée. |
aws apigateway test-invoke-authorizer | Cette commande permet de simuler l'exécution d'un autorisateur dans votre RestApi avec des entêtes, des paramètres et un corps de requête entrante. |
aws apigateway test-invoke-method | Cette commande permet de simuler l'invocation d'une méthode dans votre RestApi avec des entêtes, des paramètres et un corps de requête entrante. |
aws apigateway untag-resource | Cette commande permet de supprimer une balise d'une ressource donnée. |
aws apigateway update-account | Cette commande permet de modifier les informations sur la ressource de compte actuelle. |
aws apigateway update-api-key | Cette commande permet de modifier les informations sur une ressource ApiKey. |
aws apigateway update-authorizer | Cette commande permet de mettre à jour une ressource d'autorisateur existante. |
aws apigateway update-base-path-mapping | Cette commande permet de modifier les informations sur la ressource BasePathMapping. |
aws apigateway update-client-certificate | Cette commande permet de modifier les informations sur une ressource ClientCertificate. |
aws apigateway update-deployment | Cette commande permet de modifier les informations sur une ressource de déploiement. |
aws apigateway update-documentation-part | Cette commande permet de mettre à jour une partie de documentation. |
aws apigateway update-documentation-version | Cette commande permet de mettre à jour une version de documentation. |
aws apigateway update-domain-name | Cette commande permet de modifier les informations sur la ressource DomainName. |
aws apigateway update-gateway-response | Cette commande permet de mettre à jour une GatewayResponse d'un type de réponse spécifié sur le RestApi donné. |
aws apigateway update-integration | Cette commande permet de représentation d'une intégration de mise à jour. |
aws apigateway update-integration-response | Cette commande permet de représentation d'une réponse d'intégration de mise à jour. |
aws apigateway update-method | Cette commande permet de mettre à jour une ressource Method existante. |
aws apigateway update-method-response | Cette commande permet de mettre à jour une ressource MethodResponse existante. |
aws apigateway update-model | Cette commande permet de modifier les informations sur un modèle. |
aws apigateway update-request-validator | Cette commande permet de mettre à jour un RequestValidator d'un RestApi donné. |
aws apigateway update-resource | Cette commande permet de modifier les informations sur une ressource Resource. |
aws apigateway update-rest-api | Cette commande permet de modifier les informations sur l'API spécifiée. |
aws apigateway update-stage | Cette commande permet de modifier les informations sur une ressource Stage. |
aws apigateway update-usage | Cette commande permet d'accorder une extension temporaire au quota restant d'un plan d'utilisation associé à une clef API spécifiée. |
aws apigateway update-usage-plan | Cette commande permet de mettre à jour un plan d'utilisation d'un identificateur de plan donné. |
aws apigateway update-vpc-link | Cette commande permet de mettre à jour un VpcLink existant d'un identificateur spécifié. |
Concurrent
Ses concurrents sont Azure API Management, Cloud Endpoints, IBM API Connect, API Platform, API Gateway,...