# serverless – Manages a Serverless Framework project

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Return Values

- Status

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

Choices:
- 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
added in 2.7

Choices:
- no ←
- yes

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

Choices:
- absent
- present ←

Goal state of given stage/project.

verbose
boolean
added in 2.7

Choices:
- 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
      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_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
      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]

### Authors

- Ryan Scott Brown (@ryansb)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.