Fermer

octobre 30, 2018

Construction d'une API REST sans serveur avec Function Compute et MongoDB –


Lors de notre récent concours, nous avons reçu de nombreuses contributions remarquables afin de trouver le meilleur conseil pour tirer le meilleur parti des services Alibaba Cloud. Ce fut une tâche amusante mais difficile pour nos juges de choisir les gagnants parmi tant d’entrées utiles et intéressantes. Malheureusement, après de vives délibérations et des débats houleux, ils ont décidé que le deuxième prix de la compétition reviendrait à Nhi Nam Ha. Son astuce gagnante fait partie d’une série sur l’architecture d’applications sans serveur sur Alibaba Cloud et couvre plusieurs produits Alibaba.

Ce tutoriel vous montrera comment déployer une base de données MongoDB sur Alibaba Cloud et utiliser Function Compute pour développer un système d'API back-end permettant d'interagir avec la base de données

Présentation de NoSQL et de MongoDB

Les bases de données relationnelles ont été sélectionnées comme système principal permettant de gérer les données de développement logiciel à long terme. temps. Ses principes ACID favorisent la persistance des données, l’intégrité des transactions et le contrôle de la simultanéité. Au cours des dernières années, NoSQL (et pas seulement SQL) est devenu populaire. Ce modèle résout l'inadéquation de l'impédance entre les structures de données relationnelles (tables, lignes, champs) et les structures de données en mémoire de l'application (objets). Plus important encore, NoSQL est conçu pour évoluer horizontalement, ce qui en fait un excellent choix pour les applications Web modernes.

NoSQL peut être classé en 4 groupes:

  • Key-Value
  • Document
  • Famille de colonnes

MongoDB est le système le plus répandu dans le groupe de bases de documents. Comme défini dans mongodb.com

Un enregistrement dans MongoDB est un document, qui est une structure de données composée de paires de champs et de valeurs. Les documents MongoDB sont similaires aux objets JSON. Les valeurs des champs peuvent inclure d'autres documents, tableaux et tableaux de documents.

Alibaba Cloud ApsaraDB pour MongoDB

Les bases de données MongoDB peuvent être déployées sur Alibaba Cloud via son service ApsaraDB pour MongoDB . Les utilisateurs peuvent choisir parmi 3 formules de tarification:

  • Abonnement (jeu de répliques)
  • PAYG (jeu de répliques)
  • PAYG (fragmentation)

La réplication et le partage font référence aux données. modèles de distribution:

  • La réplication copie les données sur plusieurs serveurs. Le même élément de données est stocké à différents endroits. ApsaraDB pour MongoDB utilise un jeu de réplicas à 3 serveurs. La réplication peut aider à la mise à l'échelle horizontale des lectures.
  • La ​​division en fragments répartit les données sur plusieurs machines, de sorte que chaque machine contient un sous-ensemble de données différent. Ce modèle permet une mise à l'échelle horizontale des écritures.

Créez une instance

Dans la console Alibaba Cloud, cliquez sur Produits et vous verrez ApsaraDB pour MongoDB sous le groupe ApsaraDB. Vous pouvez également utiliser la zone de recherche pour filtrer le service souhaité.

Sélectionnez le schéma de tarification, la région, la spécification du serveur et définissez un mot de passe pour votre base de données. Alibaba Cloud vous dira combien le service vous a coûté en fonction de ce que vous avez choisi.

Pour plus d'informations sur les paramètres d'instance, cliquez sur ici .

Remarque: si vous utilisez un compte d'essai gratuit, n'oubliez pas de sélectionner une instance d'abonnement. Les instances PAYG ne font pas partie du programme d'essai.

Définition de listes blanches IP

Pour garantir la sécurité de la base de données, Alibaba Cloud bloque automatiquement tous les accès à la base de données. Vous devez spécifier les adresses IP dans la liste blanche pour accéder à l'instance cible.

 ip

Chaîne de connexion

Après avoir défini votre liste blanche IP, cliquez sur « Connexion à la base de données . ”Pour voir les paramètres de connexion

 connection

Utilisez cette chaîne de connexion pour vous connecter à la base de données dans votre code Node.js.

Function Compute

Function Compute vous permet d'exécuter du code sans mise en service ou gestion de serveurs. Ce service prépare les ressources informatiques pour vous et exécute vos codes pour votre compte de manière élastique et fiable. Vous ne payez que pour les ressources réellement consommées lors de l'exécution des codes. Si votre code n'est pas exécuté, vous ne payez pas.

Function Compute exécute votre code en réponse à des événements. Lorsque le service source d'événements déclenche un événement, la fonction associée est automatiquement appelée pour traiter l'événement.

A partir de la console Alibaba Cloud, sélectionnez Calculer les fonctions et cliquez sur l'icône " + " pour créer un nouveau service

 1

Dans le service nouvellement créé, cliquez sur l'icône “ + ” pour créer une nouvelle fonction. Vous passerez par un assistant en plusieurs étapes pour sélectionner les options de votre fonction.

Dans Modèle de fonction, sélectionnez “Fonction vide”

 2

À l'étape “Configurer les déclencheurs”, sélectionnez "HTTP Trigger" et donnez-lui un nom. Les autres paramètres sont comme l'image ci-dessous

 déclencheur

À l'étape «Configurer les paramètres de fonction», attribuez un nom à votre fonction et sélectionnez «nodejs6» comme exécution

 4

Cliquez sur “Suivant” dans les deux dernières étapes pour terminer l'assistant et créer la fonction.

Programmez votre fonction

Cliquez sur la fonction que vous venez de créer, puis sur l'onglet “Code”. C'est là que vous fournissez le code de la fonction à exécuter

 code

Utilisez la chaîne de connexion de votre serveur MongoDB.

Cet écran vous permet également d'afficher le déclencheur HTTP à appeler. votre fonction. Vous pouvez également exécuter le déclencheur pour tester votre fonction ici.

 run

Résumé

Dans ce didacticiel, nous avons découvert la base de données NoSQL avec MongoDB comme exemple courant. Alibaba Cloud fournit son service ApsaraDB for MongoDB à ceux qui souhaitent utiliser des serveurs MongoDB sur son cloud. Le didacticiel aborde ensuite le service Function Compute comme un nouveau moyen de créer votre application en suivant l’architecture émergente Serverless. Il montre un exemple de fonction Node.js déclenchée par une requête HTTP pour se connecter à la base de données MongoDB et exécuter une commande « insert ».




Source link