Skip to content

Instantly share code, notes, and snippets.

@mikesouza
Forked from bwinant/lifecycle-plugin.js
Created February 20, 2019 11:11
Show Gist options
  • Save mikesouza/b9d2c89aec768a8871c8778f530cf4ab to your computer and use it in GitHub Desktop.
Save mikesouza/b9d2c89aec768a8871c8778f530cf4ab to your computer and use it in GitHub Desktop.
Serverless Plugin Lifecycle Events
'use strict';
// This plugin will bind to all available lifecycle events and print them out as they are invoked
class LifecyclePrinter {
constructor(serverless, options) {
this.serverless = serverless;
this.options = options;
this.provider = this.serverless.getProvider('aws');
this.hooks = {};
for (let event in this.serverless.pluginManager.hooks) {
if (event.startsWith('before:') || event.startsWith('after:')) {
this.hooks[event] = this.hook.bind(this, event);
}
else {
const beforeEvent = 'before:' + event;
this.hooks[beforeEvent] = this.hook.bind(this, beforeEvent);
const afterEvent = 'after:' + event;
this.hooks[afterEvent] = this.hook.bind(this, afterEvent);
}
}
}
hook(event) {
console.log(' IN: %s', event);
}
}
module.exports = LifecyclePrinter;
~/sandbox> sls deploy
IN: before:package:cleanup
IN: before:aws:common:validate:validate
IN: after:aws:common:validate:validate
IN: before:aws:common:cleanupTempDir:cleanup
IN: after:aws:common:cleanupTempDir:cleanup
IN: after:package:cleanup
IN: before:package:initialize
IN: after:package:initialize
IN: before:package:setupProviderConfiguration
IN: after:package:setupProviderConfiguration
IN: before:package:createDeploymentArtifacts
Serverless: Packaging service...
Serverless: Excluding development dependencies...
IN: after:package:createDeploymentArtifacts
IN: before:package:compileFunctions
IN: after:package:compileFunctions
IN: before:package:compileEvents
IN: after:package:compileEvents
IN: before:package:finalize
IN: before:aws:package:finalize:mergeCustomProviderResources
IN: after:aws:package:finalize:mergeCustomProviderResources
IN: before:aws:package:finalize:saveServiceState
IN: before:aws:common:moveArtifactsToPackage:move
IN: after:aws:common:moveArtifactsToPackage:move
IN: after:aws:package:finalize:saveServiceState
IN: after:package:finalize
IN: before:aws:common:validate:validate
IN: after:aws:common:validate:validate
IN: before:deploy:deploy
IN: before:aws:deploy:deploy:createStack
IN: after:aws:deploy:deploy:createStack
IN: before:aws:deploy:deploy:checkForChanges
IN: after:aws:deploy:deploy:checkForChanges
IN: before:aws:deploy:deploy:uploadArtifacts
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service .zip file to S3 (15.05 KB)...
IN: after:aws:deploy:deploy:uploadArtifacts
IN: before:aws:deploy:deploy:validateTemplate
Serverless: Validating template...
IN: after:aws:deploy:deploy:validateTemplate
IN: before:aws:deploy:deploy:updateStack
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
.........................................
Serverless: Stack create finished...
IN: after:aws:deploy:deploy:updateStack
IN: before:aws:info:validate
IN: after:aws:info:validate
IN: before:aws:info:gatherData
IN: after:aws:info:gatherData
IN: before:aws:info:displayServiceInfo
Service Information
service: sandbox
stage: dev
region: us-west-2
stack: sandbox-dev
IN: after:aws:info:displayServiceInfo
IN: before:aws:info:displayApiKeys
api keys:
None
IN: after:aws:info:displayApiKeys
IN: before:aws:info:displayEndpoints
endpoints:
GET - https://<redacted>.execute-api.us-west-2.amazonaws.com/dev/f1
GET - https://<redacted>.execute-api.us-west-2.amazonaws.com/dev/f2
IN: after:aws:info:displayEndpoints
IN: before:aws:info:displayFunctions
functions:
function1: sandbox-dev-function1
function2: sandbox-dev-function2
IN: after:aws:info:displayFunctions
IN: before:aws:info:displayStackOutputs
IN: after:aws:info:displayStackOutputs
IN: after:deploy:deploy
IN: before:deploy:finalize
IN: before:aws:deploy:finalize:cleanup
IN: after:aws:deploy:finalize:cleanup
IN: after:deploy:finalize
@jelder
Copy link

jelder commented Mar 6, 2020

This is invaluable. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment