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.
Sommaire
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 boilerplate... Serverless: Generating boilerplate in "C:\Users\pnom\serverless\google\my-service" _______ __ | _ .-----.----.--.--.-----.----| .-----.-----.-----. | |___| -__| _| | | -__| _| | -__|__ --|__ --| |____ |_____|__| \___/|_____|__| |__|_____|_____|_____| | | | The Serverless Application Framework | | serverless.com, v1.14.0 -------' Serverless: Successfully generated boilerplate for template: "google-nodejs" $ cd my-service $ npm install
Ensuite, voici la fonction à exposer et qui doit se trouver dans le fichier index.js
:
'use strict'; exports.hello = (request, response) => { response.status(200).send(JSON.stringify({ "message": "Hello " + request.body.name })); };
Il faut également préciser dans le fichier de configuration serverless.yml
l’identifiant du projet, le fichier où se trouve votre clé GCP et la fonction hello
:
service: my-service provider: name: google runtime: nodejs project: my-project-id credentials: /Users/pnom/.gcloud/keyfile.json plugins: - serverless-google-cloudfunctions package: exclude: - node_modules/** - .gitignore - .git/** functions: hello: handler: hello events: - http: hello-world
Déploiement
Il n’y a plus qu’à demander le déploiement de la fonction qui sera exposée via Google Cloud Endpoints :
$ serverless deploy Serverless: Packaging service... Serverless: Compiling function "hello"... Serverless: Creating deployment... Serverless: Checking deployment create progress... . Serverless: Done... Serverless: Uploading artifacts... Serverless: Artifacts successfully uploaded... Serverless: Updating deployment... Serverless: Checking deployment update progress... ......... Serverless: Done... Service Information service: my-service project: my-project-id stage: dev region: us-central1 Deployed functions hello https://us-central1-my-project-id.cloudfunctions.net/hello
Exécution
La fonction est invocable directement avec serverless :
$ serverless invoke -f hello -d '{"name":"you"}' Serverless: botbelvj2fxw {"message":"Hello you"}
Mais la méthode la plus universelle est d’utiliser curl
:
$ curl -H 'Content-Type: application/json' -d '{"name":" you"}' https://us-central1-my-project-id.cloudfunctions.net/hello {"message":"Hello you"}
Comme d’habitude, les traces applicatives sont accessibles dans le terminal :
$ serverless logs -f hello Serverless: Displaying the 10 most recent log(s): 2017-06-07T21:44:38.364746304Z: Function execution took 96 ms, finished with status code: 200 2017-06-07T21:44:38.269143279Z: Function execution started 2017-06-07T21:44:16.171434676Z: Function execution took 9 ms, finished with status code: 200 2017-06-07T21:44:16.163581255Z: Function execution started 2017-06-07T21:43:01.576274186Z: Function execution took 20 ms, finished with status code: 200 2017-06-07T21:43:01.557565786Z: Function execution started 2017-06-07T21:42:18.863188914Z: Function execution took 201 ms, finished with status code: 200 2017-06-07T21:42:18.662673016Z: Function execution started 2017-06-07T21:28:24.931930999Z: Function execution took 363 ms, finished with status code: 200 2017-06-07T21:28:24.570613073Z: Function execution started
Nettoyage
$ serverless remove Serverless: Removing artifacts in deployment bucket... Serverless: Removing deployment... Serverless: Checking deployment remove progress... ... Serverless: Done...
Conclusion
Si vous êtes habitué à utiliser Serverless Framework, vous n’allez pas être perdu. En revanche, le support de la plateforme de Google est encore assez jeune. Par exemple, il est impossible de personnaliser la configuration de la fonction via Cloud Endpoints. De même, il n’est possible ne configurer qu’un seul déclencheur par fonction. Reste à voir si ses limitations proviennent de GCP ou du framework… Et à quelle vitesse chacun évolueront !
Cette première version du plugin Google est donc très encourageante. A suivre avec attention !
https://blog.lecacheur.com/2017/06/08/serverless-framework-debarque-chez-google-cloud/https://blog.lecacheur.com/wp-content/uploads/2017/06/serverless-google-cloudfunctions-square.jpghttps://blog.lecacheur.com/wp-content/uploads/2017/06/serverless-google-cloudfunctions-square-150x150.jpgDéveloppementcloud endpoints,google cloud,serverlessRé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...SeBSébastien LECACHEUR23r0@laposte.netAdministratorLe weblogue de SeB
Laisser un commentaire