# gcp_cloudfunctions_cloud_function – Creates a GCP CloudFunction

New in version 2.9.

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

## Synopsis

- A Cloud Function that contains user computation executed in response to an event.

## Requirements

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

- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---

auth_kind
string / required

Choices:
- application
- machineaccount
- serviceaccount

The type of credential used.

available_memory_mb integer |  | The amount of memory in MB available for a function.
description string |  | User-provided description of a function.
entry_point string |  | The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named "function". For Node.js this is name of a function exported by the module specified in source_location.
env_type string |  | Specifies which Ansible environment you're running this module within. This should not be set unless you know what you're doing. This only alters the User Agent string for any API requests.
environment_variables dictionary |  | Environment variables that shall be available during function execution.
event_trigger dictionary |  | An HTTPS endpoint type of source that can be triggered via URL.
| event_type string / required |  | The type of event to observe. For example: `providers/cloud.storage/eventTypes/object.change` and `providers/cloud.pubsub/eventTypes/topic.publish`.
| resource string / required |  | The resource(s) from which to observe events, for example, `projects/_/buckets/myBucket.` .
| service string |  | The hostname of the service that should be observed.
https_trigger dictionary |  | An HTTPS endpoint type of source that can be triggered via URL.
labels dictionary |  | A set of key/value label pairs associated with this Cloud Function.
location string / required |  | The location of this cloud function.
name string / required |  | A user-defined name of the function. Function names must be unique globally and match pattern `projects/*/locations/*/functions/*`.
project string |  | The Google Cloud Platform project to use.
runtime string |  | The runtime in which the function is going to run. If empty, defaults to Node.js 6.
scopes list |  | Array of scopes to be used.
service_account_contents jsonarg |  | The contents of a Service Account JSON file, either in a dictionary or as a JSON string that represents it.
service_account_email string |  | An optional service account email address if machineaccount is selected and the user does not wish to use the default email.
service_account_file path |  | The path of a Service Account JSON file if serviceaccount is selected as type.
source_archive_url string |  | The Google Cloud Storage URL, starting with gs://, pointing to the zip archive which contains the function.
source_repository dictionary |  | The source repository where a function is hosted.
| url string |  | The URL pointing to the hosted repository where the function is defined .
source_upload_url string |  | The Google Cloud Storage signed URL used for source uploading.

state
string

Choices:
- present ←
- absent

Whether the given object should exist in GCP

timeout string |  | The function execution timeout. Execution is considered failed and can be terminated if the function is not completed at the end of the timeout period. Defaults to 60 seconds.

trigger_http
boolean

Choices:
- no
- yes

Use HTTP to trigger this function.

## Notes

Note

- for authentication, you can set service_account_file using the c(gcp_service_account_file) env variable.
- for authentication, you can set service_account_contents using the c(GCP_SERVICE_ACCOUNT_CONTENTS) env variable.
- For authentication, you can set service_account_email using the `GCP_SERVICE_ACCOUNT_EMAIL` env variable.
- For authentication, you can set auth_kind using the `GCP_AUTH_KIND` env variable.
- For authentication, you can set scopes using the `GCP_SCOPES` env variable.
- Environment variables values will only be used if the playbook values are not set.
- The service_account_email and service_account_file options are mutually exclusive.

## Examples

    - name: create a cloud function
      gcp_cloudfunctions_cloud_function:
        name: test_object
        location: us-central1
        entry_point: helloGET
        source_archive_url: gs://ansible-cloudfunctions-bucket/function.zip
        trigger_http: 'true'
        project: test_project
        auth_kind: serviceaccount
        service_account_file: "/tmp/auth.pem"
        state: present

## Return Values

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

Key | Returned | Description
--- | --- | ---
availableMemoryMb integer | success | The amount of memory in MB available for a function.
description string | success | User-provided description of a function.
entryPoint string | success | The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named "function". For Node.js this is name of a function exported by the module specified in source_location.
environmentVariables dictionary | success | Environment variables that shall be available during function execution.
eventTrigger complex | success | An HTTPS endpoint type of source that can be triggered via URL.
| eventType string | success | The type of event to observe. For example: `providers/cloud.storage/eventTypes/object.change` and `providers/cloud.pubsub/eventTypes/topic.publish`.
| resource string | success | The resource(s) from which to observe events, for example, `projects/_/buckets/myBucket.` .
| service string | success | The hostname of the service that should be observed.
httpsTrigger complex | success | An HTTPS endpoint type of source that can be triggered via URL.
| url string | success | The deployed url for the function.
labels dictionary | success | A set of key/value label pairs associated with this Cloud Function.
location string | success | The location of this cloud function.
name string | success | A user-defined name of the function. Function names must be unique globally and match pattern `projects/*/locations/*/functions/*`.
runtime string | success | The runtime in which the function is going to run. If empty, defaults to Node.js 6.
serviceAccountEmail string | success | The email of the service account for this function.
sourceArchiveUrl string | success | The Google Cloud Storage URL, starting with gs://, pointing to the zip archive which contains the function.
sourceRepository complex | success | The source repository where a function is hosted.
| deployedUrl string | success | The URL pointing to the hosted repository where the function were defined at the time of deployment.
| url string | success | The URL pointing to the hosted repository where the function is defined .
sourceUploadUrl string | success | The Google Cloud Storage signed URL used for source uploading.
status string | success | Status of the function deployment.
timeout string | success | The function execution timeout. Execution is considered failed and can be terminated if the function is not completed at the end of the timeout period. Defaults to 60 seconds.
trigger_http boolean | success | Use HTTP to trigger this function.
updateTime string | success | The last update timestamp of a Cloud Function.
versionId string | success | The version identifier of the Cloud Function. Each deployment attempt results in a new version of a function being created.

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Google Inc. (@googlecloudplatform)

Hint

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