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.
-> aws:common:validate:validate
-> aws:common:cleanupTempDir:cleanup
-> aws:package:finalize:mergeCustomProviderResources
-> aws:package:finalize:saveServiceState
-> aws:common:moveArtifactsToPackage:move
-> aws:common:validate:validate
-> aws:common:moveArtifactsToTemp:move
-> aws:deploy:deploy:createStack
-> aws:deploy:deploy:checkForChanges (1.17->)
-> aws:deploy:deploy:uploadArtifacts
-> aws:deploy:deploy:validateTemplate
-> aws:deploy:deploy:updateStack
-> aws:deploy:finalize:cleanup
-> package:function:package
-> aws:common:cleanupTempDir:cleanup
-> aws:info:validate
-> aws:info:gatherData
-> aws:info:displayServiceInfo
-> aws:info:displayApiKeys
-> aws:info:displayEndpoints
-> aws:info:displayFunctions
-> aws:info:displayStackOutputs
I'm trying to get a file copied to the project directory when the user types sls deploy, can this be done? I've tried so many versions of this
I've tried these but not limited to these...
the second hook works but I've added the cp and get this message when the file does not exist for my env.yml
is it possible to run a script prior to loading the provider object at time of run?