This guide compares the latest and original Google Cloud choices for deploying functions. This page helps those who previously created functions with the Cloud Functions API and are transitioning to the Cloud Run Admin API. This page describes key differences in several areas, such as concepts, configuration, deployment, and triggers and retries.
Comparison
There are two versions of Cloud Run functions:
Cloud Run functions, which can be created in one of the following ways:
- Cloud Run Admin API
(Recommended): Functions created with this API (for example, by using
Google Cloud console,
gcloud run
, the REST API, or Terraform) are deployed as a service on Cloud Run. - Cloud Functions v2 API: Functions
created with this API (for example, by using
gcloud functions
, the REST API, or Terraform) can be managed with the Cloud Run Admin API as well as the Cloud Functions v2 API. When using this API, you specify the trigger when deploying your function. Learn how to detach a v2 API function so that it can be managed exclusively using the Cloud Run Admin API environment.
- Cloud Run Admin API
(Recommended): Functions created with this API (for example, by using
Google Cloud console,
Cloud Run functions (1st gen), formerly known as Cloud Functions (1st gen), is the original version of functions with limited event triggers and configurability.
By deploying functions directly onto Cloud Run, your functions will will be automatically built as containers and deployed as a Cloud Run service.
Concepts
The following table summarizes the conceptual differences for functions.
Cloud Run functions | Cloud Run functions (1st gen) | |
---|---|---|
Former product name | Cloud Functions (2nd gen) | Cloud Functions (1st gen) |
Resource model | A function is a Cloud Run service that is deployed from source code | A function is deployed from source code |
Types of functions terminology |
|
|
Assigned HTTPS URL | run.app Functions created with the Cloud Functions v2 API also have a cloudfunctions.net endpoint. |
cloudfunctions.net |
Image registry | Artifact Registry only | Artifact Registry or Container Registry (deprecated) |
IAM roles for deployment |
|
|
Internal infrastructure | Cloud Run | Google internal |
Pricing model | Cloud Run pricing | Cloud Run functions (1st gen) pricing |
Configuration
Cloud Run builds functions into containers and deploys them as services. When you deploy a function to Cloud Run, you have complete access and control over the function's behavior. For example, you can enable Direct VPC, configure GPUs, use volume mounts, and more.
The following table summarizes the configuration differences for functions:
Cloud Run functions | Cloud Run functions (1st gen) | |
---|---|---|
Request timeout |
|
|
Instance size | Up to 16 GiB RAM with 4 vCPU | Up to 8 GB RAM with 2 vCPU |
Concurrency | Up to 1000 concurrent requests per function instance | 1 concurrent request per function instance |
Traffic splitting | Supported | Not supported |
Deployment
Since August 2024, you can use Cloud Run to deploy and manage functions created with the Cloud Functions v2 API. As a result of this change:
- Function metadata such as runtime ID and build configurations are stored in the Cloud Run service definition.
- You can safely edit your function using the Cloud Run Admin API.
- You can rely on the Cloud Run service definition as the source of truth for your function.
However, note that functions created with the Cloud Run Admin API cannot be modified with the Cloud Functions API.
The following table summarizes the differences in how you create, deploy, edit, and manage functions:
Cloud Run functions | Cloud Run functions (1st gen) | |
---|---|---|
Google Cloud console | Cloud Run | Cloud Run functions (1st gen) |
Cloud SDK |
|
|
REST API |
|
|
Terraform |
|
Triggers and retries
The following table compares triggers and retries for functions:
Cloud Run functions | Cloud Run functions (1st gen) | |
---|---|---|
Trigger and invoke a function | For function created with the Cloud Run Admin API, you
specify triggers as part of deploying the function
in the Google Cloud console or after deploying the function when using the
gcloud CLI. For functions created with the Cloud Functions v2 API, you specify triggers as part of function deployment. |
You specify triggers as part of function deployment. |
Event types | Support for any event type supported by Eventarc, including 90+ event sources through Cloud Audit Logs. | Direct support for events from 7 sources. |
Retries | For functions created with the Cloud Run Admin API, update the
retry policy
in Eventarc and configure
dead-letter topic
in Pub/Sub. For functions created with the Cloud Functions v2 API, you specify retries as part of function deployment with the --retry
flag.
|
You specify retries as part of function deployment with the
--retry flag. |
Detach your function
Functions created using the Cloud Functions v2 API
(for example, by using gcloud functions
, the REST API, or Terraform) can be
detached from its existing API environment. After you detach a function, you can
only manage it using the
Cloud Run Admin API. You might
want to do this if your workloads need to stay within the
run.googleapis.com
API boundary for
Assured Workloads, or to ensure
that your workloads use the
Cloud Run SKU. See
Manage functions in the Cloud Functions v2
API documentation to learn more.
What's next
- Try the getting started guide for deploying a function in Cloud Run.