# gcp_backend_service – Create or Destroy a Backend Service

New in version 2.4.

- DEPRECATED
- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Return Values
- Status

## DEPRECATED

Removed in Ansible:
| version: 2.12
Why: | Updated modules released with increased functionality
Alternative: | Use gcp_compute_backend_service instead.

## Synopsis

- Create or Destroy a Backend Service. See https://cloud.google.com/compute/docs/load-balancing/http/backend-service for an overview. Full install/configuration instructions for the Google Cloud modules can be found in the comments of ansible/test/gce_tests.py.

## Requirements

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

- python >= 2.6
- apache-libcloud >= 1.3.0

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
backend_service_name - / required |  | Name of the Backend Service.
backends - / required |  | List of backends that make up the backend service. A backend is made up of an instance group and optionally several other parameters. See https://cloud.google.com/compute/docs/reference/latest/backendServices for details.
credentials_file - |  | Path to the JSON file associated with the service account email.

enable_cdn
boolean

Choices:
- no
- yes

If true, enable Cloud CDN for this Backend Service.

healthchecks - / required |  | List of healthchecks. Only one healthcheck is supported.
port_name - |  | Name of the port on the managed instance group (MIG) that backend services can forward data to. Required for external load balancing.
project_id - |  | GCE project ID.
protocol - |  | The protocol this Backend Service uses to communicate with backends. Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
service_account_email - |  | Service account email

state
-

Choices:
- absent
- present ←

Desired state of the resource

timeout - |  | How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds. Valid range is 1-86400.

## Notes

Note

- Update is not currently supported.
- Only global backend services are currently supported. Regional backends not currently supported.
- Internal load balancing not currently supported.

## Examples

    - name: Create Minimum Backend Service
      gcp_backend_service:
        service_account_email: "{{ service_account_email }}"
        credentials_file: "{{ credentials_file }}"
        project_id: "{{ project_id }}"
        backend_service_name: "{{ bes }}"
        backends:
        - instance_group: managed_instance_group_1
        healthchecks:
        - healthcheck_name_for_backend_service
        port_name: myhttpport
        state: present

    - name: Create BES with extended backend parameters
      gcp_backend_service:
        service_account_email: "{{ service_account_email }}"
        credentials_file: "{{ credentials_file }}"
        project_id: "{{ project_id }}"
        backend_service_name: "{{ bes }}"
        backends:
        - instance_group: managed_instance_group_1
          max_utilization: 0.6
          max_rate: 10
        - instance_group: managed_instance_group_2
          max_utilization: 0.5
          max_rate: 4
        healthchecks:
        - healthcheck_name_for_backend_service
        port_name: myhttpport
        state: present
        timeout: 60

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
backend_service_created boolean | When a Backend Service is created. | Indicator Backend Service was created. Sample: True
backend_service_deleted boolean | When a Backend Service is deleted. | Indicator Backend Service was deleted. Sample: True
backend_service_name string | Always. | Name of the Backend Service. Sample: my-backend-service
backends list | When a Backend Service exists. | List of backends (comprised of instance_group) that make up a Backend Service. Sample: [ { 'instance_group': 'mig_one', 'zone': 'us-central1-b'} ]
enable_cdn boolean | When a backend service exists. | If Cloud CDN is enabled. null if not set. Sample: True
healthchecks list | When a Backend Service exists. | List of healthchecks applied to the Backend Service. Sample: [ 'my-healthcheck' ]
port_name string | When a Backend Service exists. | Name of Backend Port. Sample: myhttpport
protocol string | When a Backend Service exists. | Protocol used to communicate with the Backends. Sample: HTTP
timeout integer | If specified. | In seconds, how long before a request sent to a backend is considered failed. Sample: myhttpport

## Status

- This module will be removed in version 2.12. [deprecated]
- For more information see DEPRECATED.

### Authors

- Tom Melendez (@supertom) <tom@supertom.com>

Hint

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