Développement

Tester en local les Firebase Functions

Nous venons de voir comment exécuter localement les Google Cloud Functions. En développant des Firebase Functions, nous nous attendons à pouvoir utiliser les mêmes outils. Pourtant, en utilisant Firebase Storage (plutôt que Google Cloud Storage), le prototype de la fonction change sensiblement : 'use strict'; = ().onChange(event => { const object = ; const filePath = ; // Exit if this is a deletion or a deploy event. if ( === 'not_exists') { return (`File ${filePath} deleted.`); } else if…
Lire d'avantage
Développement

Tester en local les Google Cloud Functions

Ce qui est appréciable avec les Fonctions as a Service, c'est la simplicité de déploiement. Vous avez un bout de code que vous souhaitez expérimenter ? Vous le codez, demandez le déploiement Et rien d'autre ! C'est disponible après quelques secondes ! Un des cas d'usages les plus courants est la glue entre services. Le code est généralement simple et permet de lier plusieurs services entre eux. Lorsque l'on développe du code d'intégration, il n'est pas rare de s'y reprendre…
Lire d'avantage
Développement

Sauvegarde et restauration MySQL avec des emojis 😅

L'encodage des caractères est un problème récurrent. Et comme cela ne suffisait pas, de plus en plus de personnes utilisent des emojis dans du contenu. 😜 Même si vous prenez vos précautions avec l'UTF8, ces caractères spéciaux peuvent poser quelques soucis lors de la sauvegarde ou restauration d'une base de données. Heureusement, il existe une méthode relativement simple pour MySQL : 🙏 $ mysqldump -c -Q -r -h database1 -u myuser -pmypassword mydatabase --default-character-set=utf8mb4 $ mysql -h mydatabase2 -u myuser…
Lire d'avantage
Développement

Tests automatisés des patterns Grok pour le plugin Logstash

Quand on souhaite analyser l'usage d'une API REST, la suite logicielle ELK se révèle être un outil simple et extrêmement puissant. Elle permet de suivre en temps réel l'usage des APIs, détecter des régressions suite à un déploiement, détecter les problèmes de performances, détecter des erreurs d'implémentation ou d'algorithmie dans les applications clientes, de retracer une activité utilisateur, Même si les logs d'accès HTTP sont supportés en standard, il est intéressant de les personnaliser pour obtenir un niveau de détail…
Lire d'avantage
Développement

Postman – supporter l’OAuth2 avec le Resource Owner Password Credentials Grant

Même si curl est mon outil préféré pour appeler des APIs, il faut avouer qu'il est parfois plus confortable d'utiliser une IHM telle que Postman. Ce dernier supporte de nombreux modes d'authentification dont l'OAuth2. Cependant, OAuth2 propose 4 types d'autorisation. Or, Postman n'en supporte que 2 actuellement : Authorization Code et Client Credentials. Pour autant, cela ne veut pas dire qu'il n'est pas possible d'utiliser Postman pour interagir avec une API avec un type d'autorisation OAuth2 non supporté comme le…
Lire d'avantage
Développement

HTTPie – un client HTTP plus intuitif

Depuis quelques années, curl est devenu le programme que j'utilise le plus (après mes butineurs). Dans un monde où les APIs sont omni-présentes, c'est un portail vers l'infini et l'au-delà ! Il permet de faire des recherches, de télécharger des fichiers, de construire une infrastructure, d'envoyer des SMS, d'insérer des données dans une base, de livrer une application, d'exécuter du code, de se téléporter (pour attraper les pokémons régionaux), Même s'il est assez simple d'utilisation, il lui manque un petit…
Lire d'avantage
Développement

join multi-fichiers CSV

Récemment, j'ai dû assembler le contenu de plusieurs fichiers CSV en effectuant une jointure sur une clé unique pour chaque ligne. Contexte Les fichiers se composent de 2 colonnes. La première est une clé et la seconde une valeur quelconque. Les clés ne sont pas toutes présentes dans chaque fichier. Les lignes de ces fichiers peuvent être triées par ordre alphabétique sur la clé. Pour information, le séparateur de champ utilisé est la virgule. De plus, les fichier ne contiennent…
Lire d'avantage
Développement

Serverless Framework débarque chez Google Cloud

Récemment, Serverless Framework a annoncé le support des Google Cloud Functions. Même s'il était possible de déployer simplement des Google Cloud Functions via le CLI officiel, ce framework permet d'industrialiser le processus de développement et déploiement des fonctions. Reprenons notre classique exemple et voyons comment le déployer avec ce nouveau couple. La Google Cloud Function Sans surprise, l'initialisation du projet se fait de cette façon : $ serverless create --template google-nodejs --path my-service Serverless: Generating Serverless: Generating boilerplate in "C:\Users\pnom\serverless\google\my-service"…
Lire d'avantage
Développement

A la découverte de Webtask

Dans l'univers des Function as a Service, il existe un fournisseur qui commence à être connu. Il se nomme auth0 et propose sa propre solution d'exécution de fonction : Webtask. Très orienté webhook, ce service offre quelques fonctionnalités intéressantes et la mise en œuvre semble plutôt simple. Les langages supportés sont , Express et C#. Reprenons l'exemple simple utilisé pour découvrir Serverless Framework. Installation L'installation du Webtask CLI nécessite NPM et s'exécute avec la ligne de commande suivante : $…
Lire d'avantage
Développement

Premiers pas avec Azure Functions

Oui, vous ne rêvez pas. Nous allons parler aujourd'hui de Microsoft Azure. Et plus particulièrement du service Azure Functions qui permet d'exécuter du code. Les fonctions Azure peuvent être déclenchées sur réception d'un événement Azure (Blob Storage, Table Storage, Azure DocumentDB, Bot Framework, ordonnanceur, HTTP, ...) ou externe (Box, DropBox, OneDrive, SendGrid, ...). Actuellement, les langages supportés sont le C#, F# et Javascript. Comme nous sommes sur des outils Microsoft, nous allons utiliser les interfaces graphiques fournies. Mais il faut…
Lire d'avantage