DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Supabase CDC Webhooks à Memphis Rest Gateway
    Uncategorized

    Supabase CDC Webhooks à Memphis Rest Gateway

    février 21, 2023
    Supabase CDC Webhooks à Memphis Rest Gateway
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Introduction

    Supabase est une alternative open source à Firebase.

    Dans les bases de données, la capture de données modifiées (ou CDC) est un ensemble de modèles de conception de logiciels utilisés pour déterminer et suivre les données qui ont changé afin que des mesures puissent être prises en utilisant les données modifiées ou à cause de celles-ci.

    En termes simples : chaque fois qu’un nouvel événement se produit sur une table spécifique, telle que INSERT / UPDATE / DELETE, un événement sera créé et, s’il est configuré, publié vers une destination afin qu’un service en soit notifié.

    Couler

    1. Installez Memphis sur Kubernetes.
    2. Exposez la passerelle Memphis REST.
    3. Créez une nouvelle table Supabase.
    4. Configurez un webhook pour la table nouvellement créée.
    5. Vérifiez les événements entrants du CDC à Memphis.

      processus de superbase

    Étape 1 : Installez Memphis sur Kubernetes

    Memphis peut être installé sur n’importe quel cluster Kubernetes supérieur à la v1.20.

    Pour ce didacticiel, j’ai utilisé Memphis Terraform pour déployer un cluster AWS EKS à 3 nœuds avec un cluster Memphis au-dessus.

    Résultat de la création d’AWS EKS :

    Apply complete! Resources: 67 added, 0 changed, 0 destroyed.
    
    Outputs:
    
    cluster_endpoint = "https://CA2D8E9674B2025*******.gr7.eu-west-1.eks.amazonaws.com"
    cluster_id = "memphis-cluster-ed****q7"
    cluster_name = "memphis-cluster-ed****q7"
    cluster_security_group_id = "sg-09a8f95********02"
    region = "eu-west-1"

    Résultat du déploiement du cluster Memphis :

    To access Memphis using UI/CLI/SDK with service EXTERNAL-IP, use the following URLs:
    Dashboard/CLI : http://a34d36344a12b48a7a9f1ef09z576023-1416400140.eu-west-1.elb.amazonaws.com:9000
    Memphis broker: http://a34d36344a12b48a7a9f1ef09z576023-1416400140.eu-west-1.elb.amazonaws.com:6666 (Client Connections)

    Prime: Créez un enregistrement DNS A pour l’adresse ci-dessus afin de travailler facilement avec un vrai nom d’hôte.

    Accédez au tableau de bord Memphis et lancez le cluster.
    L’adresse est celle avec le port 9000.

    Lancer le cluster

    Étape 2 : Exposez Memphis Rest Gateway

    Par défaut, Memphis terraform ne déploie pas de LB sur le HTTP proxy cosse.

    Pour ce faire, nous devons transformer le memphis-http-proxy services de ClusterIP pour LoadBalancer en exécutant ce qui suit :

    kubectl patch svc memphis-http-proxy -n memphis --type="json" -p '[{"op":"replace","path":"/spec/type","value":"LoadBalancer"}]'

    kubectl get svc
    
    NAME                       TYPE           CLUSTER-IP       EXTERNAL-IP                                                               PORT(S)                                        AGE
    memphis-cluster            ClusterIP      None             <none>                                                                    9000/TCP,7770/TCP,6666/TCP,8222/TCP            104m
    memphis-cluster-external   LoadBalancer   172.20.251.246   a34d36224a00b48a7a9f1ac09c576023-1416400140.eu-west-1.elb.amazonaws.com   9000:32173/TCP,6666:32013/TCP,7770:31214/TCP   102m
    memphis-http-proxy         LoadBalancer   172.20.131.157   a5ce9a9c1006a2d7a64faaa6949dcfbb-1553258514.eu-west-1.elb.amazonaws.com   4444:30686/TCP                                 104m
    mongo                      ClusterIP      None             <none>                                                                    27017/TCP                                      104m

    Enregistrons l’adresse IP externe LB nouvellement créée du proxy HTTP :
    a5ce9a9c1006a2d7a64faaa6949dcfbb-1553258514.eu-west-1.elb.amazonaws.com

    Étape 3 : créer une nouvelle table Supabase

    Créer une nouvelle table Supabase

    Créer une nouvelle table Supabase2

    Étape 4 : Configurer un Webhook pour la table nouvellement créée

    Premièrement, nous devons générer un utilisateur de type « Application » sur Memphis :

    générer un utilisateur de type « Application » sur Memphis

    Veuillez enregistrer le nom d’utilisateur et le jeton de connexion.

    enregistrer à la fois le nom d'utilisateur et le jeton de connexion

    Pour générer un jeton JWT pour produire des événements via HTTP, la commande suivante devait être exécutée — (sera bientôt remplacé par des jetons API)

    curl --location --request POST 'a5ce9a9c9506a4c7a99faaa6949dcfbb-1553258514.eu-west-1.elb.amazonaws.com:4444/auth/authenticate' --header 'Content-Type: application/json' --data-raw '{
        "username": "supabase",
        "connection_token": "******************",
        "token_expiry_in_minutes": 600000,
        "refresh_token_expiry_in_minutes": 10000092
    }'

    Le résultat sera le jeton JWT pour le webhook Supabase. Sauvegarde le.

    {"expires_in":36000000000,"jwt":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDk4MTIzOTJ9.Xlxq56c0wsfOwMsFheUNPKrnECX4JX_vrz45su5JmVU"}

    Retour à Supabase. Allez dans Base de données -> Webhooks -> Créer un webhook

    Allez dans Base de données -> Webhooks -> Créer un webhook »/></p>
<p data-selectable-paragraph=Configurez-le comme suit :

    Configuration

    Configuration

    • Méthode : POST
    • URL : http://:4444/stations//produire/single
    • En-têtes :
      – Type de contenu :application/json
      – Autorisation : Bearer <JWT Token>

      Exemple de page

    Étape 5 : Vérifier les événements CDC entrants

    Insérons un nouvel enregistrement dans notre table et supprimons-le juste après pour obtenir deux événements :

    deux événementsEn revenant au tableau de bord Memphis et à la station « supabase », les événements peuvent être vus dans le panneau central et la charge utile analysée en bas à droite.

    Tableau de bord Memphis

    Passe une bonne journée!

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.