community.general.serverless module – Manages a Serverless Framework project
Note
This module is part of the community.general collection (version 9.4.0).
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.general.serverless
.
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 |
Comments |
---|---|
Whether or not to deploy artifacts after building them. When this option is This is mostly useful for generating artifacts to be stored/deployed elsewhere. Choices:
|
|
Whether or not to force full deployment, equivalent to serverless Choices:
|
|
AWS region to deploy the service to. This parameter defaults to Default: |
|
The path of a serverless framework binary relative to the ‘service_path’ eg. node_module/.bin/serverless |
|
The path to the root of the Serverless Service to be operated on. |
|
The name of the serverless framework project stage to deploy to. This uses the serverless framework default “dev”. Default: |
|
Goal state of given stage/project. Choices:
|
|
Shows all stack events during deployment, and display any Stack Output. Choices:
|
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: none |
Can run in |
|
Support: none |
Will return details on what has changed (or possibly needs changing in |
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
community.general.serverless:
service_path: '{{ project_dir }}'
state: present
- name: Deploy a project, then pull its resource list back into Ansible
community.general.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_info module can get a full list of the stack resources, as
# well as stack events and outputs
- cloudformation_info:
region: us-east-1
stack_name: '{{ sls.service_name }}'
stack_resources: true
- name: Deploy a project using a locally installed serverless binary
community.general.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 |
Description |
---|---|
Full Returned: always Sample: |
|
The service name specified in the serverless.yml that was just deployed. Returned: always Sample: |
|
Whether the stack for the serverless project is present/absent. Returned: always |