Velo : Intégrer votre base de données Google Cloud BigQuery à votre site Wix

Temps de lecture : 16 min
Wix Data vous offre de puissantes capacités de stockage et de récupération de données, et la possibilité de créer et de gérer vos propres collections de données. Mais que se passe-t-il si vous avez déjà votre propre base de données ou si vous souhaitez héberger vos données sur une base de données relationnelle ? 

Avec les collections de bases de données externes, vous pouvez utiliser votre base de données BigQuery hébergée sur Google Cloud Platform et l'intégrer entièrement à votre site Wix. Vous pouvez utiliser l'une des API de wix-data et wix-dataset avec des collections de bases de données externes, ainsi que des répéteurs, des tables et d'autres éléments de page à vos données BigQuery.

Pour intégrer une base de données MySQL ou Postgres, consultez Intégrer votre base de données Google Cloud MySQL ou Postgres à votre site Wix. Si vous souhaitez le faire avec AWS, consultez Intégrer vos bases de données AWS MySQL à votre site Wix. Pour Microsoft Azure, voir Intégrer votre base de données Azure à votre site Wix.

Aperçu

Ce tutoriel vous guide tout au long de la configuration d'une base de données BigQuery sur Google Cloud Platform (GCP) et de sa connexion à votre site Wix.

Si vous ne possédez pas encore votre propre base de données sur GCP, nous vous aiderons à en créer une.

Voici ce que cela implique :

  1. Configurez un nouveau projet sur Google Cloud Platform.
  2. Créez une base de données BigQuery, si vous n'en avez pas déjà une.
  3. Créez une nouvelle table dans votre base de données.
  4. Créez des secrets pour stocker en toute sécurité vos identifiants de base de données.
  5. Créez et déployez un nouveau service Cloud Run pour héberger l'adaptateur de base de données Wix.
  6. Connectez votre site Wix à votre base de données.

Ce tutoriel utilise une image conteneur avec toutes les fonctionnalités nécessaires pour assurer l'interface entre votre base de données et votre site Wix. Si vous voulez aller plus loin, vous pouvez consulter les spécifications SPI pour les collections de bases de données externes, et un aperçu de ce qui est impliqué dans la création de votre propre adaptateur.

Google Cloud Platform

Ce tutoriel part du principe que vous avez quelques connaissances sur Google Cloud Platform. Si vous n'avez jamais travaillé avec GCP, consultez ce guide et cliquez sur le bouton Commencer gratuitement.

Lorsque vous êtes prêt, créez un nouveau projet pour ce tutoriel et appelez-le velo-external-db.

Créer et configurer une base de données

Cette partie du tutoriel vous guide tout au long de la configuration d'une base de données BigQuery et de l'ajout d'une table. Si vous avez déjà votre propre base de données sur GCP, vous pouvez passer cette section. Si vous souhaitez un accès en lecture-écriture aux tables de votre base de données, elles doivent contenir les 4 colonnes décrites dans la section Créer une nouvelle table de base de données.

Configurer une base de données BigQuery sur GCP

Créer une nouvelle table de base de données

Cette section vous guide tout au long de la création d'une table dans BigQuery. Si vous savez ce que vous faites, ou si vous avez déjà des tables et que vous ne souhaitez pas d'accès en écriture, vous pouvez passer cette section.
Prérequis pour l'accès en lecture-écriture à votre table de base de données :
Si vous souhaitez que votre table soit en lecture-écriture sur votre site Wix, elle doit contenir les colonnes suivantes :
  • _id 
  • _createdDate
  • _updatedDate
  • _owner 

Les tables sans ces colonnes seront en lecture seule sur votre site Wix.

Configurer des secrets

L'adaptateur de base de données externe requiert que vous configuriez des variables d'environnement. Certaines de ces variables, comme les identifiants de base de données, sont sensibles et ne doivent pas être visibles. Nous utiliserons le gestionnaire de secrets GCP pour stocker ces variables et y accéder en toute sécurité.

Nous devons stocker les valeurs secrètes suivantes :
  • DATABASE_ID 
    L'ID du dataset BigQuery. Lorsque nous avons créé notre base de données aux étapes précédentes, nous avons défini l'ID du dataset sur bigQuery_dataset. 
  • PROJECT_ID
    L'ID du projet dans lequel se trouve votre dataset. Vous pouvez trouver cela dans le panneau Explorateur

  • SECRET_KEY
    Une clé secrète qui est utilisée lors de la connexion de votre site Wix à l'adaptateur. Pour créer un niveau d'authentification entre votre site et l'adaptateur, chaque requête que votre site envoie à l'adaptateur contient cette valeur dans le payload. 
  • PERMISSIONS (facultatif) Un objet JSON qui définit les autorisations en lecture et en écriture pour les tables de votre base de données.
    Remarque : La personnalisation des autorisations pour les bases de données externes est actuellement une fonctionnalité de l'aperçu pour les développeurs, et est susceptible de changer. Les modifications apportées aux paramètres d'autorisation ne sont pas reflétées dans l'Éditeur Wix.

Créer des secrets

1. Pour créer les secrets, accédez à la page du [Gestionnaire de secrets GCP.
 
2. Cliquez sur Créer un secret.


3. Saisissez le nom du secret et la valeur du secret et cliquez sur Créer un secret.



4. Répétez les étapes 1 et 2 pour chacun des 3 secrets :
  • DATABASE_ID
  • PROJECT_ID
  • SECRET_KEY

5. Pour créer un secret PERMISSIONS, au lieu de saisir une valeur de secret, cliquez sur Parcourir et sélectionnez le fichier .json contenant vos paramètres d'autorisation.

Déployer l'adaptateur pour Cloud Run

Ensuite, nous allons déployer l'adaptateur de base de données externe en tant que service sur Cloud Run. Nous créons le service à l'aide d'un conteneur préinstallé, configurons les secrets et les variables d'environnement, puis configurons les connexions à la base de données.

Créer un service

  1. Accédez à la page des Instances Cloud Run et sélectionnez votre projet.
  2. Cliquez sur Créer un service.

 

3. Saisissez gcr.io/wix-velo-api/velo-external-db dans le champ Container Image URL. Le nom du service sera par défaut velo-external-db.



4. Sous Ingress, sélectionnez Autoriser tout le trafic.
5. Sous Authentification, sélectionnez Autoriser les appels non authentifiés.
6. Développez la section Conteneur, Variables et secrets, Connexions, Sécurité



7. Sélectionnez Variables et secrets, puis cliquez sur Ajouter une variable. 



8. Créez 2 variables d'environnement en cliquant deux fois sur Ajouter une variable. Définissez les noms et les valeurs des variables comme suit :
NOM
VALEUR
TYPE
bigquery
CLOUD_VENDOR
gcp
        


9. Cliquez sur Créer

Configurer les rôles d'accès, les secrets et les variables d'environnement

Nous configurons maintenant les secrets que nous avons définis plus tôt en tant que variables d'environnement pour le service. Pour ce faire, nous allons suivre les étapes suivantes :
  1. Créez un nouveau compte de service qui exécutera le service Cloud Run.
  2. Accordez des rôles d'accès au nouveau compte.
  3. Créez des variables d'environnement et attribuez les valeurs des secrets.

Rôles d'accès à la sécurité

1. Sur la page  Détails du service, cliquez sur Modifier et déployer la nouvelle version.



2. Sélectionnez l'onglet Sécurité puis sélectionnez Créer un nouveau compte de service dans le menu déroulant Compte de service.



4. Définissez le Nom du compte de service. Il est recommandé de définir le nom du compte de service pour qu'il corresponde au nom de l'instance Cloud Run afin que vous puissiez facilement savoir quel compte est utilisé par quelle instance. 
5. Cliquez sur Créer.



6. Accordez les rôles suivants au compte de service :
  • AdministrateurBigQuery
  • Accesseur de secrets Secret Manager
Vous pouvez coller les rôles ci-dessus dans le filtre déroulant.



7. Cliquez sur Terminer.

Variables d'environnement et secrets

1. Définissez les variables d'environnement et attribuez leurs valeurs à partir des secrets que nous avons définis précédemment dans Créer des secrets.
2. Dans l'onglet Variables et secrets, cliquez sur Référencer un secret.



3. Sélectionnez un secret dans le menu déroulant Secret et sélectionnez Exposé en tant que variable d'environnement dans le menu déroulant Méthode de référence
4. Attribuez à la variable d'environnement le même nom que le secret.  
5. Sélectionnez la plus récente dans la liste déroulante Version, et cliquez sur Terminé.

Répétez ce processus pour tous les secrets que vous avez définis dans la section Créer des secrets.


Si vous recevez un avertissement indiquant que le compte de service n'a pas l'autorisation d'accéder au secret sélectionné, vous ne configurez plus le compte de service que vous avez configuré à l'étape 7 ci-dessus. 
                                          
Dans ce cas, cliquez sur l'onglet Sécurité, sélectionnez votre compte de service dans le menu déroulant, puis revenez à l'onglet Variables et secrets .
Une fois que vous avez configuré tous les secrets et les variables d'environnement, votre configuration ressemble à ceci :


6. Cliquez sur Déployer.

Vérifier le statut de votre connexion

Une fois le déploiement terminé, vérifiez que votre configuration fonctionne.

1. Sur la page des détails du service Cloud Run, cliquez sur l'URL du service. Cette URL est utilisée pour se connecter à votre service d'adaptateur de base de données et pour configurer la collection externe sur votre site Wix.



La page suivante affiche en vert Statut de la configuration de la base de données et Statut de la connexion. Si vous avez ajouté un secret PERMISSIONS, le statut de la configuration des autorisations est également vert. Si vous ne l'avez pas fait, il sera en jaune.

Si l'un des statuts est rouge, vérifiez la configuration, les valeurs secrètes et les variables d'environnement. Apportez les modifications nécessaires et redéployez le service.

        
Remarque  :
Si vous modifiez la valeur d'un secret, vous devez redéployer le service pour que la nouvelle valeur prenne effet.

Tester votre service

Vous pouvez tester que votre service fonctionne en effectuant une demande rapide en utilisant Curl.

Utilisez la commande Curl ci-dessous, en remplaçant l'URL par votre URL de l'étape 2 ci-dessus, et en remplaçant la valeur secretKey par votre secret.
1curl -L -X POST 'https://velo-postgres-db-cacacapca-uc.a.run.app/schemas/list' \ -H 'Content-Type: application/json' \ --data-raw '{ "requestContext": { "settings": { "secretKey": "ourLittleSecret" }, "role": "OWNER" } }'
La sortie fournit une liste de tables et de leurs colonnes à partir de votre base de données. Si vous avez installé python, vous pouvez envoyer la sortie à  python -m json.tool et vous obtiendrez un JSON bien formaté.
La sortie formatée contient la liste des tables et leurs colonnes de votre base de données.
1{ "schemas":  { "id": "contacts", "displayName": "contacts", "allowedOperations": [ "get", "find", "count", "update", "insert", "remove" ], "maxPageSize": 50, "ttl": 3600, "fields": { "name": { "displayName": "name", "type": "text", "queryOperators": [ "eq", "lt", "gt", "hasSome", "and", "lte", "gte", "or", "not", "ne", "startsWith", "endsWith" ] }, "_createddate": { "displayName": "_createddate", "type": "datetime", "queryOperators": [ "eq", "lt", "gt", "hasSome", "and", "lte", "gte", "or", "not", "ne", "startsWith", "endsWith" ] }, "email": { "displayName": "email", "type": "text", "queryOperators": [ "eq", "lt", "gt", "hasSome", "and", "lte", "gte", "or", "not", "ne", "startsWith", "endsWith" ] }, ...

Connecter votre site Wix

Maintenant que nous avons une base de données et un service d'adaptateur, nous sommes prêts à ajouter la base de données en tant que collection externe sur notre site.

1. Dans l'Éditeur Wix, sélectionnez Bases de données dans la barre latérale de Velo.
2. Cliquez sur l'icône  à côté de Collections externes et sélectionnez Ajouter des collections externes.



3. Saisissez un nom pour votre collection externe.
4. Copiez et collez l'URL de votre service d'adaptateur dans le champ Ajouter une URL de point de terminaison.
5. Saisissez la valeur de la clé secrète que vous avez créée dans le [Gestionnaire de secrets GCP ="_ blank"). Pour ce tutoriel, nous avons défini la valeur de SECRET_KEY sur « ourLittleSecret ».
6. Cliquez sur Ajouter.



Le système de gestion de contenu (CMS) affiche les tables. Si votre table contient les champs _id, _createdDate, _updatedDateet _owner , vous pouvez ajouter des données à la table directement à partir du CMS.

Remarque  :
Le système de gestion de contenu ne prend pas actuellement en charge la suppression des collections externes. Vous pouvez supprimer des enregistrements de votre collection en utilisant wix-data.remove() ou un appel HTTP REST.
La connexion externe et ses collections s'affichent sous Collections de contenu.


Vous pouvez désormais utiliser l'une des API de wix-data et wix-dataset avec cette collection ainsi que connecter des répéteurs et des tables à votre base de données BigQuery.

Essayez le code Velo suivant pour interroger vos données externes :
1import wixData from 'wix-data'; export function externalQuery() { return wixData.query("bigQuery_collections/Contacts") .find() .then((results) => { return results; }) .catch((err) => { let errorMsg = err; return errorMsg; }); }

Cela vous a-t-il aidé ?

|