GCP : error PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR when trying to Connect a Cloud functions 2nd gen to a Cloud SQL Database

Example with a Node.js Cloud Function with the mysql dependency deployed as a 2nd gend Cloud Function.

const mysql = require('mysql');

const connectionConfig = {
    user: 'test',
    password: 'test',
    database: 'my-db',
    socketPath: '/cloudsql/deddy-exelcia:us-central1:my-db'
};

const connection = mysql.createConnection(connectionConfig);

exports.retrieveUsers = async (event, context) => {
    // Retrieve users
    connection.query(
        'SELECT * FROM users',
        (error, results) => {
            if (error) {
                console.error('Error retrieve users from database error :', error);
            } else {
                console.log(`Results : ${results}.`);
            }
        }
    );
};
{
  "name": "retrieve-users",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "mysql": "^2.18.1"
  }
}

If you get the error PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR

Error updating database: Error: Cannot enqueue Query after fatal error.
    at Protocol._validateEnqueue (/workspace/node_modules/mysql/lib/protocol/Protocol.js:212:16)
    at Protocol._enqueue (/workspace/node_modules/mysql/lib/protocol/Protocol.js:138:13)
    at Connection.query (/workspace/node_modules/mysql/lib/Connection.js:198:25)
    at exports.updateCarAvailability (/workspace/index.js:29:16)
    at /layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/function_wrappers.js:141:25
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR',
  fatal: false

Solution

You must add your Cloud SQL database instance in the “CloudSQL Connections” parameter of the Cloud Run service generated by the creation of your Cloud Functions 2nd gen.

Creating a 2nd gen Cloud Function generates a Cloud Run service, but for a Cloud Run service to access a Cloud SQL instance it is necessary to configure the “Cloud SQL Connections” parameter.

  • Go to Cloud Run
  • Locate the Cloud Run service which has the same name as your Cloud Function
  • Access the service setting
  • “Cloud SQL connections” parameter > Add the connection to your Cloud SQL database instance.
  • Click on Save

Cloud SQL connections setting

promoguadeloupe.com – Application mobile Hybride et site web PWA – Spécifications

Spécifications fonctionnelles

Historique :

  • V0
    • Site blog sur le CMS Ghost, les vidéos sont envoyées automatiquement via l’API Ghost. Le thème s’affiche en mode timeline, cependant le site est très lent, car il doit charger le lecteur YouTube. Il n’est pas très optimisé sur mobile.
  • V1
    • Développement d’un site web orienté mobile sur mesure.
    • Ajout des fonctionnalités PWA.
    • Déploiement sur le PlayStore.
    • Pas de déploiement sur l’AppStore car pas de Mac à disposition.

Pages

  • Hot or Not
  • Nouveautés
  • Artistes
  • FAQ
  • Politique de confidentialité
  • Mentions légales
  • Crédits

Fonctionnalités

  • Chaque jour, notifications push sur PWA et Application mobile Lorsque de nouvelle vidéo sont disponible dans l’application.
  • Chaque jour, récupération des dernières vidéos publiées sur les chaînes surveillées.
  • L’utilisateur peut suggérer une nouvelle chaine YouTube dans l’application.
  • L’utilisateur peut consulter l’ensemble des chaînes répertorié dans l’application.
  • L’utilisateur peut consulter les vidéos publiés sur les 7 derniers jours.
  • Un mode d’affichage avec petite vignette des vidéos pour l’utilisation ordinateur.
  • Un mode d’affichage avec des grosses vignette des vidéos pour l’utilisation sur mobile
  • L’utilisateur peut choisir de s’abonner/désabonner au notification push depuis l’application.
  • Chaque jour, publication sur les réseaux sociaux automatique du lien des dernières vidéos. ⏸
  • L’utilisateur peut voter (like/dislike) une vidéo

Spécifications Techniques

Schéma d’architecture promoguadeloupe.com

promoguadeloupe Schema darchitecture - promoguadeloupe.com - Application mobile Hybride et site web PWA - Spécifications