Serverless plugin author's cheat sheet
This cheat sheet provides a detailed overview of the exposed lifecycle events and available commands (and entrypoints) of the Serverless framework, that can be hooked by plugins (internal and external ones). The document is structured by the commands invoked by the user.
Lifecycle events are shown as the globally available outer events (all providers) and sub lifecycle events that are provider specific in the called order. Currently only the AWS provider is shown. If you have information about the other provider, please let me know and I will add the sub lifecycles accordingly.
The current event system can be improved in the future. Only package, deploy and info provide detailed event lifecycles for now, that make the plugin integration much more fine-grained.
Plugins can spawn any command or entrypoint with this.serverless.pluginManager.spawn()
and invoke a sub lifecycle.
Lifecycle events / commands
package
package:cleanup
-> aws:common:validate:validate
-> aws:common:cleanupTempDir:cleanup
package:initialize
package:setupProviderConfiguration
package:createDeploymentArtifacts
package:compileFunctions
package:compileEvents
package:finalize
-> aws:package:finalize:mergeCustomProviderResources
-> aws:package:finalize:saveServiceState
-> aws:common:moveArtifactsToPackage:move
deploy
before:deploy:deploy
-> aws:common:validate:validate
-> aws:common:moveArtifactsToTemp:move
deploy:deploy
-> aws:deploy:deploy:createStack
-> aws:deploy:deploy:checkForChanges (1.17->)
-> aws:deploy:deploy:uploadArtifacts
-> aws:deploy:deploy:validateTemplate
-> aws:deploy:deploy:updateStack
deploy:finalize
-> aws:deploy:finalize:cleanup
deploy function
deploy:function:initialize
deploy:function:packageFunction
-> package:function:package
deploy:function:deploy
-> aws:common:cleanupTempDir:cleanup
deploy list
deploy:list:log
info
info:info
-> aws:info:validate
-> aws:info:gatherData
-> aws:info:displayServiceInfo
-> aws:info:displayApiKeys
-> aws:info:displayEndpoints
-> aws:info:displayFunctions
-> aws:info:displayStackOutputs
Would be super great to update the plugin section of the online doc. It is pretty hard to get the right info :)