## google-cloud-run (platform)

Deploy a container to Google Cloud Run.

### Interface

### Examples

```hcl
project = "wpmini"

app "wpmini" {
  labels = {
    "service" = "wpmini",
    "env"     = "dev"
  }

  build {
    use "pack" {}

    registry {
      use "docker" {
        image = "gcr.io/waypoint-project-id/wpmini"
        tag   = "latest"
      }
    }
  }

  deploy {
    use "google-cloud-run" {
      project  = "waypoint-project-id"
      location = "europe-north1"

      port = 5000

      static_environment = {
        "NAME" : "World"
      }

      capacity {
        memory                     = 128
        cpu_count                  = 2
        max_requests_per_container = 10
        request_timeout            = 300
      }

	  service_account_name = "cloudrun@waypoint-project-id.iam.gserviceaccount.com"

      auto_scaling {
        max = 10
      }

      cloudsql_instances = ["waypoint-project-id:europe-north1:sql-instance"]

      vpc_access {
        connector = "custom-vpc-connector"
        egress = "all"
      }
    }
  }

  release {
    use "google-cloud-run" {}
  }
}
```

### Required Parameters

These parameters are used in the [`use` stanza](/docs/waypoint-hcl/use) for this plugin.

#### auto_scaling (category)

Configuration to control the auto scaling parameters for Cloud Run.

##### auto_scaling.max

Maximum number of Cloud Run instances. When the maximum requests per container is exceeded, Cloud Run will create an additional container instance to handle load.
This parameter controls the maximum number of instances that can be created.

- Type: **int**

#### capacity (category)

CPU, Memory, and resource limits for each Cloud Run instance.

##### capacity.cpu_count

Number of CPUs to allocate the Cloud Run instance, min 1, max 2.

- Type: **int**

##### capacity.max_requests_per_container

Maximum number of concurrent requests each instance can handle. When the maximum requests are exceeded, Cloud Run will create an additional instance.

- Type: **int**

##### capacity.memory

Memory to allocate the Cloud Run instance specified in MB, min 128, max 4096.

- Type: **int**

##### capacity.request_timeout

Maximum time a request can take before timing out, max 900.

- Type: **int**

#### location

GCP location, e.g. europe-north-1.

- Type: **string**

#### project

GCP project ID where the Cloud Run instance will be deployed.

- Type: **string**

### Optional Parameters

These parameters are used in the [`use` stanza](/docs/waypoint-hcl/use) for this plugin.

#### cloudsql_instances

Specify list of CloudSQL instances that the Cloud Run instance will have access to.

- Type: **list of string**
- **Optional**

#### port

The port your application listens on.

- Type: **int**
- **Optional**

#### service_account_name

Specify a service account email that Cloud Run will use to run the service. You must have the `iam.serviceAccounts.actAs` permission on the service account.

- Type: **string**
- **Optional**

#### static_environment

Additional environment variables to be added to the Cloud Run instance.

- Type: **map of string to string**
- **Optional**

#### unauthenticated

Is public unauthenticated access allowed for the Cloud Run instance?.

- Type: **bool**
- **Optional**

#### vpc_access (category)

VPCAccess details.

##### vpc_access.connector

Set VPC Access Connector for the Cloud Run instance.

- Type: **string**
- **Optional**

##### vpc_access.egress

Set VPC egress. Supported values are 'all' and 'private-ranges-only'.

- Type: **string**
- **Optional**

### Output Attributes

Output attributes can be used in your `waypoint.hcl` as [variables](/docs/waypoint-hcl/variables) via [`artifact`](/docs/waypoint-hcl/variables/artifact) or [`deploy`](/docs/waypoint-hcl/variables/deploy).

#### id

- Type: **string**

#### region

- Type: **string**

#### resource

- Type: **cloudrun.Deployment_Resource**

#### resource_state

- Type: **opaqueany.Any**

#### revision_id

- Type: **string**

#### url

- Type: **string**
