serverless – Manages a Serverless Framework project¶
New in version 2.3.
Synopsis¶
Provides support for managing Serverless Framework (https://serverless.com/) project deployments and stacks.
Requirements¶
The below requirements are needed on the host that executes this module.
serverless
yaml
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
deploy
boolean
|
|
Whether or not to deploy artifacts after building them.
When this option is
false all the functions will be built, but no stack update will be run to send them out.This is mostly useful for generating artifacts to be stored/deployed elsewhere.
|
force
boolean
added in 2.7 |
|
Whether or not to force full deployment, equivalent to serverless
--force option. |
functions
list
|
Default: []
|
A list of specific functions to deploy.
If this is not provided, all functions in the service will be deployed.
|
region
string
|
AWS region to deploy the service to.
This parameter defaults to
us-east-1 . |
|
serverless_bin_path
path
added in 2.4 |
The path of a serverless framework binary relative to the 'service_path' eg. node_module/.bin/serverless
|
|
service_path
path
/ required
|
The path to the root of the Serverless Service to be operated on.
|
|
stage
string
|
The name of the serverless framework project stage to deploy to.
This uses the serverless framework default "dev".
|
|
state
string
|
|
Goal state of given stage/project.
|
verbose
boolean
added in 2.7 |
|
Shows all stack events during deployment, and display any Stack Output.
|
Notes¶
Note
Currently, the
serverless
command must be in the path of the node executing the task. In the future this may be a flag.
Examples¶
- name: Basic deploy of a service
serverless:
service_path: '{{ project_dir }}'
state: present
- name: Deploy specific functions
serverless:
service_path: '{{ project_dir }}'
functions:
- my_func_one
- my_func_two
- name: Deploy a project, then pull its resource list back into Ansible
serverless:
stage: dev
region: us-east-1
service_path: '{{ project_dir }}'
register: sls
# The cloudformation stack is always named the same as the full service, so the
# cloudformation_facts module can get a full list of the stack resources, as
# well as stack events and outputs
- cloudformation_facts:
region: us-east-1
stack_name: '{{ sls.service_name }}'
stack_resources: true
- name: Deploy a project using a locally installed serverless binary
serverless:
stage: dev
region: us-east-1
service_path: '{{ project_dir }}'
serverless_bin_path: node_modules/.bin/serverless
Return Values¶
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
command
string
|
always |
Full `serverless` command run by this module, in case you want to re-run the command outside the module.
Sample:
serverless deploy --stage production
|
service_name
string
|
always |
The service name specified in the serverless.yml that was just deployed.
Sample:
my-fancy-service-dev
|
state
string
|
always |
Whether the stack for the serverless project is present/absent.
|
Status¶
This module is not guaranteed to have a backwards compatible interface. [preview]
This module is maintained by the Ansible Community. [community]