View a markdown version of this page

Choisir entre l'accès direct à la source de données et le proxy via une source de données Lambda - 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.

Choisir entre l'accès direct à la source de données et le proxy via une source de données Lambda

Avec AWS AppSync et le APPSYNC_JS moteur d'exécution, vous pouvez écrire votre propre code qui implémente votre logique métier personnalisée en utilisant des AWS AppSync fonctions permettant d'accéder à vos sources de données. Cela vous permet d'interagir directement avec des sources de données telles qu'Amazon DynamoDB, Aurora Serverless, OpenSearch Service, les API HTTP et d'autres AWS services sans avoir à déployer de services ou d'infrastructures informatiques supplémentaires. AWS AppSync facilite également l'interaction avec une AWS Lambda fonction en configurant une source de données Lambda. Les sources de données Lambda vous permettent d'exécuter une logique métier complexe en utilisant AWS Lambda l'ensemble complet des fonctionnalités de résolution d'une requête GraphQL. Dans la plupart des cas, une AWS AppSync fonction directement connectée à sa source de données cible fournira toutes les fonctionnalités dont vous avez besoin. Dans les situations où vous devez implémenter une logique métier complexe qui n'est pas prise en charge par le APPSYNC_JS moteur d'exécution, vous pouvez utiliser une source de données Lambda comme proxy pour interagir avec votre source de données cible.

Intégration directe des sources de données Source de données Lambda en tant que proxy
Cas d'utilisation AWS AppSync les fonctions interagissent directement avec les sources de données de l'API. AWS AppSync les fonctions appellent des Lambdas qui interagissent avec les sources de données d'API.
Environnement d’exécution APPSYNC_JS (JavaScript) Tout environnement d'exécution Lambda pris en charge
Taille maximale du code 32 000 caractères par fonction AWS AppSync 50 Mo (zippé, pour téléchargement direct) par Lambda
Modules externes Limité : fonctionnalités prises en charge par APPSYNC_JS uniquement Oui
Appelez n'importe quel AWS service Oui - Utilisation d'une source de données AWS AppSync HTTP Oui, à l'aide du AWS SDK
Accès à l'en-tête de la demande Oui Oui
Accès réseau Non Oui
Accès au système de fichiers Non Oui
Journalisation et statistiques Oui Oui
Créez et testez entièrement dans AppSync Oui Non
Démarrage à froid Non Non - Avec accès simultané provisionné
Auto-scaling Oui, de manière transparente par AWS AppSync Oui, tel que configuré dans Lambda
Tarification Sans frais supplémentaires Facturé pour l'utilisation de Lambda

AWS AppSync les fonctions qui s'intègrent directement à leur source de données cible sont idéales pour les cas d'utilisation tels que les suivants :

  • Interaction avec Amazon DynamoDB, Aurora Serverless et Service OpenSearch

  • Interaction avec les API HTTP et transmission d'en-têtes entrants

  • Interaction avec AWS les services à l'aide de sources de données HTTP (avec signature AWS AppSync automatique des demandes avec le rôle de source de données fourni)

  • Mettre en œuvre le contrôle d'accès avant d'accéder aux sources de données

  • Mettre en œuvre le filtrage des données récupérées avant de répondre à une demande

  • Implémentation d'une orchestration simple avec exécution séquentielle de AWS AppSync fonctions dans un pipeline de résolution

  • Contrôle de la mise en cache et des connexions d'abonnement dans les requêtes et les mutations.

AWS AppSync les fonctions qui utilisent une source de données Lambda comme proxy sont idéales pour les cas d'utilisation suivants :

  • Utilisation d'un langage autre que JavaScript le Velocity Template Language (VTL)

  • Réglage et contrôle du processeur ou de la mémoire pour optimiser les performances

  • Importation de bibliothèques tierces ou utilisation de fonctionnalités non prises en charge dans APPSYNC_JS

  • Effectuer plusieurs requêtes réseau and/or pour obtenir l'accès au système de fichiers pour répondre à une requête

  • Requêtes par lots à l'aide de la configuration de traitement par lots.