community.general.serverless – Manages a Serverless Framework project

From Get docs
Ansible/docs/2.11/collections/community/general/serverless module


community.general.serverless – Manages a Serverless Framework project

Note

This plugin is part of the community.general collection (version 2.0.1).

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.serverless.


Synopsis

Requirements

The below requirements are needed on the host that executes this module.

  • serverless
  • yaml

Parameters

Parameter Choices/Defaults Comments

deploy

boolean

  • no
  • yes

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

  • no

  • yes

Whether or not to force full deployment, equivalent to serverless --force option.

functions

list / elements=string

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

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

  • absent
  • present

Goal state of given stage/project.

verbose

boolean

  • no

  • yes

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
  community.general.serverless:
    service_path: '{{ project_dir }}'
    state: present

- name: Deploy specific functions
  community.general.serverless:
    service_path: '{{ project_dir }}'
    functions:
      - my_func_one
      - my_func_two

- 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 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.





Authors

  • Ryan Scott Brown (@ryansb)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/serverless_module.html