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.
Création d'un pub/sub générique APIs alimenté par serverless dans WebSockets AWS AppSync
Certaines applications ne nécessitent que des applications simples WebSocket APIs lorsque les clients écoutent une chaîne ou un sujet spécifique. JSONLes données génériques ne présentant aucune forme spécifique ni aucune exigence typographique précise peuvent être transmises aux clients écoutant l'un de ces canaux selon un schéma purement et simple de publication et d'abonnement (pub/sub).
AWS AppSync À utiliser pour implémenter un pub/sub simple WebSocket APIs avec peu ou pas de connaissances GraphQL en quelques minutes en générant automatiquement du code GraphQL à la fois du côté principal et du API côté client.
Création et configuration de pub-sub APIs
Pour commencer, procédez comme suit :
-
Connectez-vous à la AppSync console AWS Management Console et ouvrez-la
. -
Dans le tableau de bord, choisissez Create API.
-
-
Sur l'écran suivant, choisissez Créer un temps réel API, puis cliquez sur Suivant.
-
Entrez un nom convivial pour votre pub/subAPI.
-
Vous pouvez activer les API fonctionnalités privées, mais nous vous recommandons de les désactiver pour le moment. Choisissez Suivant.
-
Vous pouvez choisir de générer automatiquement un pub/sub API fonctionnel à l'aide de. WebSockets Nous vous recommandons également de désactiver cette fonctionnalité pour le moment. Choisissez Suivant.
-
Choisissez Créer, API puis attendez quelques minutes. Un nouveau AWS AppSync pub/sub préconfiguré API sera créé dans votre compte. AWS
Les résolveurs locaux intégrés aux API utilisateurs AWS AppSync (pour plus d'informations sur l'utilisation de résolveurs locaux, voir Tutoriel : résolveurs locaux dans le guide du AWS AppSync développeur) pour gérer plusieurs canaux et WebSocket connexions pub/sub temporaires, qui fournissent et filtrent automatiquement les données aux clients abonnés en fonction uniquement du nom du canal. APIles appels sont autorisés à l'aide d'une API clé.
Après API le déploiement, quelques étapes supplémentaires vous sont proposées pour générer du code client et l'intégrer à votre application client. À titre d'exemple sur la façon d'intégrer rapidement un client, ce guide utilisera une simple application Web React.
-
Commencez par créer une application React standard en utilisant NPM
sur votre machine locale : $ npx create-react-app mypubsub-app $ cd mypubsub-app
Note
Cet exemple utilise les bibliothèques Amplify
pour connecter les clients au backend. API Cependant, il n'est pas nécessaire de créer un CLI projet Amplify localement. Bien que React soit le client de choix dans cet exemple, les bibliothèques Amplify prennent également en charge les clients iOS, Android et Flutter, offrant les mêmes fonctionnalités dans ces différents environnements d'exécution. Les clients Amplify pris en charge fournissent des abstractions simples pour interagir avec les API backends AWS AppSync GraphQL avec quelques lignes de code, y compris des WebSocket fonctionnalités intégrées entièrement compatibles avec le protocole en temps réel :AWS AppSync WebSocket $ npm install @aws-amplify/api
-
Dans la AWS AppSync console JavaScript, sélectionnez puis Télécharger pour télécharger un seul fichier contenant les détails de API configuration et le code d'opérations GraphQL généré.
-
Copiez le fichier téléchargé dans le
/src
dossier de votre projet React. -
Remplacez ensuite le contenu du
src/App.js
fichier standard existant par l'exemple de code client disponible dans la console. -
Utilisez la commande suivante pour démarrer l'application localement :
$ npm start
-
Pour tester l'envoi et la réception de données en temps réel, ouvrez deux fenêtres de navigateur et accédez
localhost:3000
. L'exemple d'application est configuré pour envoyer des JSON données génériques à un canal codé en dur nommérobots
. -
Dans l'une des fenêtres du navigateur, saisissez le JSON blob suivant dans la zone de texte, puis cliquez sur Soumettre :
{ "robot":"r2d2", "planet": "tatooine" }
Les deux instances de navigateur sont abonnées au robots
canalisez et recevez les données publiées en temps réel, affichées en bas de l'application Web :
Tout le API code GraphQL nécessaire, y compris le schéma, les résolveurs et les opérations, est généré automatiquement pour permettre un cas d'utilisation générique de type pub/sub. Sur le backend, les données sont publiées sur le point AWS AppSync de terminaison en temps réel avec une mutation GraphQL telle que la suivante :
mutation PublishData { publish(data: "{\"msg\": \"hello world!\"}", name: "channel") { data name } }
Les abonnés accèdent aux données publiées envoyées au canal temporaire spécifique avec un abonnement GraphQL associé :
subscription SubscribeToData { subscribe(name:"channel") { name data } }
Implémentation de pub-sub APIs dans les applications existantes
Au cas où vous auriez simplement besoin d'implémenter une fonctionnalité en temps réel dans une application existante, cette API configuration pub/sub générique peut être facilement intégrée à n'importe quelle application ou API technologie. Bien qu'il y ait des avantages à utiliser un seul API point de terminaison pour accéder, manipuler et combiner en toute sécurité des données provenant d'une ou de plusieurs sources de données en un seul appel réseau avec GraphQL, il n'est pas nécessaire de convertir ou de reconstruire une application existante REST à partir de zéro pour tirer parti AWS AppSync de ses capacités en temps réel. Par exemple, vous pouvez avoir une CRUD charge de travail existante dans un point de API terminaison distinct, les clients envoyant et recevant des messages ou des événements provenant de l'application existante à pub/sub API for real-time and pub/sub des fins génériques uniquement.