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

GCP error PROTOCOL ENQUEUE AFTER FATAL ERROR when trying to Connect a Cloud functions 2nd gen to a Cloud SQL Database - 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

Use Wasabi cloud to backup your FortiGate Firewall configuration for 6.99$/month

Use Wasabi cloud to backup your FortiGate Firewall configuration for 6.99$month

Steps to implement an automated config backup solution for your FortiGate with Wasabi Cloud for 6.99$/month

  1. Create an account on wasabi cloud https://wasabi.com/fr.
  2. Create a bucket and activate the versioning.
  3. Activate the FTP/FTPS protocol in Wasabi
  4. Configure your FortiGate CLI config backup over FTP command
  5. Configure Your automation Trigger
  6. Configure Your automation Action
  7. Configure Your automation Stitch

FortiGate CLI config backup over FTP command

You can connect over FTP/FTPS to your Wasabi S3 Bucket with your account credentials. In paid plan you can create sub-user with FTP/FTPS access.

To connect to your Wasabi S3 Bucket over FTP you need :

  • The region where the bucket is created here is eu-west-2
  • The name of the Bucket, here is backup_fortigate
  • Your username/email & password of your Wasabi account here is fortigate@gitbook.deddy.me

You can connect to your Bucket with a FTP’s client https://winscp.net or https://filezilla-project.org with this configuration :

Build the FortiGate CLI Command

execute backup full-config ftp <bucket_name>/fortigate_01_config [s3.<](http://s3.eu-west-2.wasabisys.com:21/)wasabi_bucket_region>.wasabisys.[com:21](http://s3.eu-west-2.wasabisys.com:21/) <ftp_username/email> <ftp_password>

The complete FortiGate CLI Command

execute backup full-config ftp backup_fortigate/fortigate_01_config [s3.](http://s3.eu-west-2.wasabisys.com:21/)eu-west-2.wasabisys.[com:21](http://s3.eu-west-2.wasabisys.com:21/) fortigate@gitbook.deddy.me superStrongPassword

Wasabi Cloud Active the FTP/FTPS protocol in the settings

Create a Trigger in Security Fabric > Automation > Trigger

Each day the script will be executed.

Create an action in Security Fabric > Automation > Action

Create a Stitch on Security Fabric > Automation > Stitch

How to monitor that Fortigate backups are up to date ?

You can implement a solution that monitors the last modification date of files either via the AWS S3 SDK JS library. See

Automatiser la Copie de Fichiers depuis Windows vers Stockage Cloud AWS S3

Besoin

Les fichiers du dossier partagé Windows doivent être copiés sur un stockage Bucket AWS S3, afin d’être utilisée dans une autre application. Comment automatiser la copie de ces fichiers sur le stockage S3 de façon récurrente ?

Contexte

  • L’application ERP/CRM effectue des exports chaque jour dans un dossier partagé. Lors de l’export, les fichiers existants sont écrasés.
  • Les fichiers peuvent avoir une taille atteignant 140 Mo.
  • Le dossier partagé se trouve sur un serveur Windows Server 2019.

Solution 1 : Power Automate et Passerelle de données locale

À l’aide de Power Automate, on peut configurer un “Flow”. Responsable de surveiller lorsque des nouveaux fichiers sont ajoutés ou modifiés dans un dossier, et d’envoyer vers S3 par le biais d’une connexion SFTP.

Étant donné que le dossier partagé n’est pas un dossier SharePoint ou OneDrive, il est nécessaire d’installer une “Passerelle de données locale/On Premises Data Gateway” sur le serveur. Il fera le lien entre le système de fichier et Power Automate.

Cependant, il existe une limite au niveau de la taille des fichiers que peut traiter la passerelle, la limite est de 30 Mo maximum par fichier. Au sein de Power Automate, il existe aussi une limite sur la taille des messages qui est fixé à 100 Mo.

La solution Power Automate la plus simple à mettre en place, de par son interface graphique intuitive. Mais aussi pour sa facilité à surveiller l’état de l’automatisme configuré, ne sera pas adapté pour ce cas.

Solution 2 : rclone et planificateur de tâches Windows

L’outil en ligne de commande Rclone couplé au planificateur de tâches Windows. Rclone permet de synchroniser ou de copier des fichiers en local vers un cloud provider. Le planificateur de tâches Windows, quant à lui permettra de configurer la fréquence a laquelle la commande Rclone doit être exécutée.

  1. Télécharger rclone et extraire l’archive

    1. Ajouter le chemin vers le dossier rclone dans le PATH
  2. Configurer un “remote” rclone en lancant la commande rclone config 1.

    rclone config
    # n / New remote
    n/s/q/> n
    # Enter remote name s3-rclone-automatisation-test
    name> s3-rclone-automatisation-test
    # Storage
    # 5 / Amazon S3 Compliant Storage providers inluding AWS, Alibaba ...
    Storage> 5
    # provider
    # 1 / Amazon Web Services (AWS) S3
    provider> 1
    # AWS Credentials
    # 1 / Enter AWS credentials in the next step.
    env_auth> tape Enter for 1
    # AWS Access Key ID
    access_key_id> your_access_key_id
    # AWS Secret Access Key (password)
    secret_access_key> your_secret_key
    # Region to connect to
    # 8/ EU (Paris) Region. (eu-west-3)
    Region> 8
    # Endpoint
    endpoint > (Enter to leave empty)
    # Location constraint - must be set to match the Region
    location_constraint> 8
    # ACL
    acl> (Enter to leave empty)
    # The server-side encryption algorithm used when storing the object in S3.
    server_side_encryption> (Enter to leave empty)
    # If using KMS ID you must provide the ARN of Key
    sse_kms_key_id> (Enter to leave empty)
    #The storage class to use when storing new objects in S3.
    storage_class> (Enter to leave empty)
    # Edit advanced config ?
    y/n> (Enter to use No default answer)
    # Configuration complete.
    # Keep this "s3-rclone-automatisation-test" remote ?
    y/e/d> (Enter to use Yes this is OK default answer)
    # Current remotes :
    # q / Quit config
    e/n/d/r/c/s/q> q
    
  3. Lancer votre commande de copie : rclone copy source:path dest:path [flags]

Exemple de commande rclone copy :

# Dossier source ou sont contenus les fichiers à copier : C:\Users\Administrator\Downloads\sync-folder
# Nom du "Remote" configuré dans rclone : s3-rclone-automatisation-test
# Nom du bucket S3 : rclone-automatisation-test
# Commande : 
C:\Users\Administrator\Downloads\rclone-v1.64.0-windows-amd64\rclone copy --progress --checksum -vv C:\Users\Administrator\Downloads\sync-folder s3-rclone-automatisation-test:rclone-automatisation-test
  1. Ouvrir le planificateur des tâches Windows
  2. Créer une tâche planifié.
  3. Configurer un Déclencheur :
    1. Lancer la tâche : à l’heure programmée
    2. Paramètres : Chaque jour
    3. Démarrer : Spécifier une heure dans la journée.
    4. Cocher la case : Activée
    5. (optionnel) Pour les besoins de test :
      1. Cocher la case “Répéter la tâche toutes les” : 5 minutes
      2. Pour une durée de : Indéfiniment
  4. Configurer une Action :
    1. Action : Démarrer un programme
    2. Programme/script (spécifier le chemin complet) : C:\Users\Administrator\Downloads\rclone-v1.64.0-windows-amd64\rclone
    3. Ajouter des arguments : copy –checksum -v C:\Users\Administrator\Downloads\sync-folder s3-rclone-automatisation-test:rclone-automatisation-test

Remarque : Activer l’historique de la tâche planifié, en créant un dossier dans l’arborescence “Bibliothèque du Planificateur de tâches”. Puis en créant la tâche dans ce dossier. Ensuite Clique droit sur le dossier > Activer l’historique de toutes les tâches.

Commandes Utiles

  • rclone config file : Affiche l’emplacement du fichier de configuration de rclone.
  • rclone listremotes : Affiche la liste des “remotes” configurés.

Préparer et réussir la Certification AWS Cloud Practitioner en seulement 1 mois

Préparer et réussir la Certification AWS Cloud Practitioner en seulement 1 mois

À qui s’adresse la certification Cloud Practitioner de AWS ?

La certification Cloud Practitioner est une certification AWS de base qui permet aux professionnels de l’informatique et non-informaticiens. (Développeurs, chefs de projet, et commerciaux). De comprendre les services AWS et les concepts de cloud computing. Elle est adaptée pour ceux qui cherchent à se familiariser avec les concepts de base du cloud computing, ainsi qu’aux personnes qui cherchent à valider leurs connaissances en matière de services AWS de base tels que S3, EC2, RDS et AWS Lambda.

Pourquoi vous avez tout intérêt à passer la certification ?

La certification Cloud Practitioner vous permettra de démontrer votre compréhension des concepts de base du cloud computing et des services AWS. Cela peut être un atout pour votre carrière professionnelle, de nombreuses entreprises migrent vers des solutions cloud et ont besoin de professionnels compétents pour gérer ces services. En obtenant la certification AWS Cloud Practitioner, vous pouvez vous démarquer en tant que candidat qualifié pour des postes impliquant l’utilisation de services cloud AWS.

Préparez-vous en 4 semaines

Je vous propose un plan en 4 semaines pour préparer et passer la certification AWS Cloud Practitioner. Les deux premières semaines consistent à regarder les vidéos de formation en accéléré, à installer des applications de QCM et à pratiquer régulièrement. La troisième semaine, il est recommandé de souscrire à l’abonnement SkillBuilder et de passer un examen blanc avant de suivre le cours. La quatrième semaine, il est conseillé de programmer une date d’examen, de réviser les sujets sur lesquels on a des doutes et de repasser l’examen blanc la veille de l’examen réel.

Semaine 1 & 2

  1. Préparez-vous en même temps qu’un collègue et challengez-vous en vous posant des questions.
  2. Mettez les vidéos des formations Learning Path en vitesse accélérée et valeur maximale. 1h00-2h00 par jour.
  3. Notez à l’écrit, sur un vrai cahier en papier, ce que vous avez retenu. “Les paroles s’envolent, les écrits restent.”
  4. Installer des applications de type QCM “Cloud Practitioner Exam Prep” sur votre téléphone. Disponible en grand nombre en version payante et gratuite.
  5. Pratiquez les QCM quand vous allez aux toilettes, en pause, avant d’aller dormir, et au réveil.
  6. Notez les sujets sur lesquels vous avez toujours un doute et documentez vous jusqu’à devenir incollable.

Semaine 3

  1. Souscrivez à l’abonnement SkillBuilder.aws vous pouvez résilier l’abonnement avant le renouvellement.
  2. Passer l’examen blanc 1 seule fois, avant de suivre le cours récapitulatif et identifiez vos lacunes.
  3. Suivez le récapitulatif pour l’examen Cloud Practitioner (uniquement disponible avec l’abonnement SkillBuilder) il contient des tests intermédiaires et un examen blanc.
  4. Suivez le cours et attardez vous sur les sujets ou vous avez des lacunes.

Semaine 4

  1. Programmez une date d’examen et inscrivez-vous, même si vous n’êtes pas prêt. Savoir que la date a été fixée vous n’aurez plus le choix, débrouillez vous pour être prêt le jour J.
  2. Repasser l’examen blanc à J-1 de la date d’examen, pour vous remettre dans le bain.
  3. Passez votre examen et réussissez !