View a markdown version of this page

Sources de données - AWS AppSync GraphQL

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.

Sources de données

Dans la section précédente, nous avons appris qu'un schéma définit la forme de vos données. Cependant, nous n'avons jamais expliqué d'où provenaient ces données. Dans les projets réels, votre schéma est comme une passerelle qui gère toutes les demandes adressées au serveur. Lorsqu'une demande est faite, le schéma agit comme le point de terminaison unique qui s'interface avec le client. Le schéma permet d'accéder aux données, de les traiter et de les relayer depuis la source de données vers le client. Consultez l'infographie ci-dessous :

Schéma GraphQL intégrant plusieurs architectures d'API Services AWS pour un seul point de terminaison.

AWS AppSync et GraphQL implémentent parfaitement les solutions Backend For Frontend (BFF). Ils travaillent en tandem pour réduire la complexité à grande échelle en faisant abstraction du backend. Si votre service utilise des and/or microservices de sources de données différentes, vous pouvez essentiellement éliminer une partie de la complexité en définissant la forme des données de chaque source (sous-graphe) dans un schéma unique (supergraphe). Cela signifie que votre API GraphQL n'est pas limitée à l'utilisation d'une seule source de données. Vous pouvez associer un nombre illimité de sources de données à votre API GraphQL et spécifier dans votre code comment elles interagiront avec le service.

Comme vous pouvez le voir dans l'infographie, le schéma GraphQL contient toutes les informations dont les clients ont besoin pour demander des données. Cela signifie que tout peut être traité en une seule demande plutôt que plusieurs demandes, comme c'est le cas avec REST. Ces demandes passent par le schéma, qui est le seul point de terminaison du service. Lorsque les demandes sont traitées, un résolveur (expliqué dans la section suivante) exécute son code pour traiter les données provenant de la source de données appropriée. Lorsque la réponse est renvoyée, le sous-graphe lié à la source de données est renseigné avec les données du schéma.

AWS AppSync prend en charge de nombreux types de sources de données. Dans le tableau ci-dessous, nous allons décrire chaque type, énumérer certains des avantages de chacun et fournir des liens utiles pour plus de contexte.

Source de données Description Avantages Informations supplémentaires
Amazon DynamoDB « Amazon DynamoDB est un service de base de données NoSQL entièrement géré qui fournit des performances rapides et prévisibles ainsi qu'une évolutivité sans faille. DynamoDB vous libère des charges administratives liées à l'exploitation et à la mise à l'échelle d'une base de données distribuée de façon que vous n'ayez pas à vous soucier de divers aspects tels que l'approvisionnement, le paramétrage, la configuration, la réplication, le matériel, les correctifs logiciels ou la mise à l'échelle de cluster. DynamoDB propose également un chiffrement au repos, ce qui élimine la charge opérationnelle et la complexité liées à la protection des données sensibles. »

  • Performances à grande échelle  : DynamoDB est conçu pour offrir des performances constantes à toutes les échelles. Cela est possible grâce à l'utilisation de partitions. DynamoDB partitionnera automatiquement vos tables en plusieurs allocations qui seront stockées sur plusieurs SSD sur plusieurs nœuds. Cela permet généralement d'augmenter le débit du réseau et de réduire la latence.

  • Capacité à grande échelle  : DynamoDB surveille votre trafic et vous permet d'adapter automatiquement votre débit si le réseau reste surchargé pendant de longues périodes.

  • Disponibilité et tolérance aux pannes  : DynamoDB est pris en charge par plusieurs régions physiquement isolées, chacune contenant plusieurs zones de disponibilité physiquement isolées. DynamoDB bascule automatiquement vers une zone de sauvegarde en cas d'interruption de service. Vous pouvez également sauvegarder et répliquer vos données manuellement pour garantir la sécurité des données.

  • Enregistrement et surveillance  : DynamoDB fournit plusieurs outils d'analyse pour vos tableaux. Vous pouvez surveiller les performances de votre table et créer des alarmes pour vous informer des changements radicaux apportés au service.

  • Sécurité  : DynamoDB suit des protocoles stricts pour garantir la conformité de vos données aux exigences de sécurité de votre organisation.

  • Intégration avec AWS AppSync  : DynamoDB est parfaitement intégré à notre service. Vous pouvez créer de nouvelles tables DynamoDB et générer automatiquement un schéma à partir de celles-ci afin de rationaliser votre processus de développement. Nous proposons également un ensemble complet d'opérations permettant de demander facilement des données à partir des tables DynamoDB existantes de votre compte dans votre résolveur.

AWS Lambda « AWS Lambda  est un service informatique qui vous permet d'exécuter du code sans provisionner ni gérer de serveurs.

Lambda exécute le code sur une infrastructure informatique à haute disponibilité et effectue toute l'administration des ressources informatiques, y compris la maintenance des serveurs et du système d'exploitation, l'allocation et la mise à l'échelle automatique des capacités, ainsi que la mise à l'échelle automatique et la journalisation. Avec Lambda, il vous suffit de fournir votre code dans l'un des langages d'exécution pris en charge par Lambda. »

  • Pay-as-you-use modèle  : Lambda ne vous facture que lorsque vous utilisez ses ressources. Ils vous permettent également d'adapter la quantité de ressources utilisées aux besoins de votre application.

  • Mise à l'échelle automatique  : votre application peut parfois nécessiter une puissance de calcul supplémentaire pour un processus particulier. Lambda vous permet de dimensionner automatiquement les ressources informatiques en fonction des besoins de votre application.

  • Délais de déploiement plus rapides  : vous pouvez rationaliser votre processus de développement grâce à un package de déploiement. Utilisez un package pour télécharger le code de votre fonction vers le service Lambda. Vous pouvez ensuite utiliser leurs environnements d'exécution pour tester et exécuter vos fonctions.

  • Polyvalence  : Lambda peut être utilisé dans une multitude de cas d'utilisation. Vous pouvez intégrer facilement Lambda à des services et à des AWS services tiers. Les CI/CD pipelines et les services de courrier de masse en sont quelques exemples.

  • Intégration avec AWS AppSync  : Vous pouvez facilement invoquer vos fonctions Lambda dans votre résolveur pour gérer les requêtes. Notre service fournit une opération de demande rationalisée pour effectuer des appels Lambda. Nous autorisons les appels uniques et groupés.

OpenSearch « Amazon OpenSearch Service est un service géré qui facilite le déploiement, l'exploitation et la mise à l'échelle de OpenSearch clusters dans le AWS cloud. Amazon OpenSearch Service prend en charge OpenSearch les systèmes Elasticsearch OSS existants (jusqu'à la version 7.10, la dernière version open source du logiciel). Lorsque vous créez un cluster, vous avez la possibilité de choisir le moteur de recherche que vous voulez utiliser.

OpenSearchest un moteur de recherche et d'analyse entièrement open source pour des cas d'utilisation tels que l'analyse des journaux, la surveillance des applications en temps réel et l'analyse du flux de clics. Pour plus d’informations, consultez la documentation OpenSearch.

Amazon OpenSearch Service fournit toutes les ressources de votre OpenSearch cluster et le lance. Il détecte et remplace également automatiquement les nœuds de OpenSearch service défaillants, réduisant ainsi les frais associés aux infrastructures autogérées. Vous pouvez faire évoluer votre cluster en un seul appel d'API ou en quelques clics dans la console. »

  • Mise à l'échelle  : vous pouvez facilement adapter le service à vos besoins en matière de service grâce à OpenSearch Serverless.

  • Ingestion de données  : vous pouvez OpenSearch utiliser Ingestion pour importer, traiter et analyser des données. Il existe de nombreuses applications pour l'ingestion de données, que vous pouvez trouver ici.

  • Sécurité  : OpenSearch peut gérer votre configuration AWS de sécurité, y compris l'IAM CloudTrail, les VPC, l'authentification, etc.

  • Disponibilité  : son service prend OpenSearch également en charge différentes régions et zones de disponibilité.

  • Intégration avec AWS AppSync  : Dans AWS AppSync, vous pouvez utiliser les API GraphQL pour stocker et récupérer les données des domaines de OpenSearch service existants de votre compte.

Points de terminaison HTTP Vous pouvez utiliser des points de terminaison HTTP comme sources de données. AWS AppSync peut envoyer des requêtes aux terminaux avec les informations pertinentes telles que les paramètres et la charge utile. La réponse HTTP sera exposée au résolveur, qui renverra la réponse finale une fois ses opérations terminées.
  • Utile pour les applications simples qui ne sont pas aussi intégrées à des services tels que Lambda.

Amazon EventBridge « EventBridge  est un service sans serveur qui utilise des événements pour connecter les composants des applications entre eux, ce qui vous permet de créer plus facilement des applications évolutives pilotées par des événements. Utilisez-le pour acheminer des événements provenant de sources telles que des applications, des AWS services et des logiciels tiers développés en interne vers les applications grand public de votre entreprise. EventBridge fournit un moyen simple et cohérent d'ingérer, de filtrer, de transformer et de diffuser des événements afin que vous puissiez créer rapidement de nouvelles applications. »

  • Event-driven architecture  : vous pouvez tirer parti de l'architecture pilotée par les événements.

  • Planification  : vous pouvez utiliser le EventBridge planificateur pour automatiser vos tâches et vos règles à l'aide d'expressions cron ou définir des intervalles de temps comme alternative aux modèles d'événements.

  • Canaux  : à l'aide de EventBridge Pipes, vous pouvez remplacer le bus d'événements par un tube qui inclut des modèles d'événements de filtrage supplémentaires et un enrichissement par des transformations de données avant d'envoyer l'événement à la cible.

  • Intégration avec AWS AppSync  : vous AWS AppSync permet d'envoyer des événements à des bus d'événements à l'aide de votre résolveur.

Bases de données relationnelles « Amazon Relational Database Service (Amazon RDS) est un service Web qui facilite la configuration, l'exploitation et la mise à l'échelle d'une base de données relationnelle dans le AWS cloud. Il fournit une capacité redimensionnable et rentable pour une base de données relationnelle standard et gère les tâches courantes d'administration des bases de données. »

  • Gestion simplifiée  : RDS assure périodiquement la maintenance de ses ressources. La maintenance implique le plus souvent des mises à jour du matériel sous-jacent, du système d'exploitation (OS) sous-jacent ou de la version du moteur de base de données de l'instance de base de données. Dans des circonstances normales, vous pouvez décider quand effectuer les mises à jour (les exceptions incluent les correctifs de sécurité).

  • Recommandations  : la fonctionnalité de recommandation de RDS fournit des suggestions automatisées pour résoudre les problèmes potentiels dans votre instance.

  • Disponibilité  : RDS est disponible dans différentes régions physiques du monde. Vous pouvez facilement répartir les besoins de votre base de données sur différents nœuds afin de fournir un meilleur service à vos clients.

  • Personnalisation  : RDS est conçu pour répondre aux exigences des grandes entreprises. RDS propose diverses options en matière de calcul, de déploiement rapide, d'évolutivité et de stockage.

  • Sécurité  : RDS est intégré à plusieurs outils et services pour maintenir la sécurité de la base de données au niveau de l'utilisateur, de la base de données et du réseau.

  • Intégration avec AWS AppSync  : si vous recherchez une solution backend mature, AWS AppSync qui vous permet d'envoyer, de traiter, de stocker et de renvoyer des données en utilisant votre instance comme source de données.

Aucune source de données Si vous ne prévoyez pas d'utiliser un service de source de données, vous pouvez le configurer surnone. Une source de none données, bien qu'elle soit explicitement classée comme source de données, n'est pas un support de stockage. Malgré cela, il est toujours utile dans certains cas pour la manipulation et la transmission de données.
  • Potentiellement utile pour des tâches telles que la conversion de données

  • Utile pour résoudre un problème localement

Astuce

Pour plus d'informations sur la façon dont les sources de données interagissent avec elles AWS AppSync, voir Joindre une source de données.