Stay organized with collections
Save and categorize content based on your preferences.
Manage functions
This guide shows you how to manage and detach a function that was created with
the gcloud functions command. To learn how to manage a function that was
created with the gcloud run command, see Manage Cloud Run services.
Functions created using the Cloud Functions v2 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. For example, you can update an
existing function using either gcloud functions or gcloud run commands:
gcloud run deploy FUNCTION_NAME \
--source= . \
--function=ENTRYPOINT
--base-image=google-22-full/nodejs22
Detach
The gcloud functions detach
command lets you detach a Cloud Functions v2 function 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.
Prepare your function for detach
When preparing to detach your function, consider the following:
The detach operation is not reversible.
The detach operation cannot be applied to Cloud Run functions (1st gen).
Familiarize yourself with how to deploy functions in Cloud Run
using the Google Cloud console, Google Cloud CLI, and Terraform.
HTTP functions will retain their assigned URLs.
Triggers attached to event-driven functions will be retained.
Triggers cannot be managed through the run.googleapis.com API directly.
Be sure to familiarize yourself with the trigger management guides for
Eventarc or Pub/Sub.
Disabling retry on failure
is not a supported feature on Cloud Run.
During the detach operation, Cloud Run functions modifies the triggers
attached to functions configured with
no retry on failure,
to ensure that the underlying Pub/Sub topic makes a maximum of five
delivery attempts. When the detach operation is completed, a
dead letter queue
topic stores the undelivered messages, which you can retrieve by creating a new
subscription to the dead letter queue.
When a function is successfully detached, a new Cloud Run revision
is created. Starting from that revision onwards, the function will be
billed using the Cloud Run SKU.
Detach your function
You can detach your function using the following command:
gcloud functions detach FUNCTION_NAME
Replace FUNCTION_NAME with the name of your function.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eCloud Functions v2 API functions can be managed using either the Cloud Functions v2 API or the Cloud Run Admin API, allowing for flexibility in deployment and updates via \u003ccode\u003egcloud functions\u003c/code\u003e or \u003ccode\u003egcloud run\u003c/code\u003e commands.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egcloud beta functions detach\u003c/code\u003e command enables the detachment of a Cloud Functions v2 function from its original API environment, transitioning its management exclusively to the Cloud Run Admin API.\u003c/p\u003e\n"],["\u003cp\u003eDetaching a function is irreversible and not applicable to Cloud Run (1st gen) functions, but HTTP functions retain their URLs and event-driven functions retain triggers.\u003c/p\u003e\n"],["\u003cp\u003eDetaching a function to the Cloud Run Admin API changes the billing to the Cloud Run SKU, and modifies the retry settings for event-driven functions to ensure a maximum of five delivery attempts with the use of a dead letter queue for undelivered messages.\u003c/p\u003e\n"],["\u003cp\u003eFollowing a successful detach operation, a new Cloud Run revision of the function is created, marking the point from which the function will be managed and billed through the Cloud Run framework.\u003c/p\u003e\n"]]],[],null,["# Manage functions\n================\n\nThis guide shows you how to manage and detach a function that was created with\nthe `gcloud functions` command. To learn how to manage a function that was\ncreated with the `gcloud run` command, see [Manage Cloud Run services](/run/docs/managing/services).\n| **Note:** If you created a Cloud Run function using `gcloud run` commands or the Cloud Run Admin API, you can't manage that function with `gcloud functions` commands or the Cloud Functions v2 API.\n\nFunctions created using the [Cloud Functions v2 API](/functions/docs/apis)\n(for example, by using `gcloud functions`, the REST API, or Terraform) can be\nmanaged with the [Cloud Run Admin API](/run/docs/reference/cloud-run-admin-api-overview)\nas well as the Cloud Functions v2 API. For example, you can update an\nexisting function using either `gcloud functions` or `gcloud run` commands: \n\n### gcloud functions\n\n gcloud functions deploy \u003cvar translate=\"no\"\u003eFUNCTION_NAME\u003c/var\u003e \\\n --runtime=nodejs22 \\\n --source= . \\\n --entry-point=\u003cvar translate=\"no\"\u003eENTRYPOINT\u003c/var\u003e\n --trigger-http\n\n### gcloud run\n\n gcloud run deploy \u003cvar translate=\"no\"\u003eFUNCTION_NAME\u003c/var\u003e \\\n --source= . \\\n --function=\u003cvar translate=\"no\"\u003eENTRYPOINT\u003c/var\u003e\n --base-image=google-22-full/nodejs22\n\nDetach\n------\n\nThe [`gcloud functions detach`](/sdk/gcloud/reference/functions/detach)\ncommand lets you detach a Cloud Functions v2 function from its existing\nAPI environment. After you detach a function, you can only manage it using the\nCloud Run Admin API. You might want to do this if your workloads need to stay\nwithin the `run.googleapis.com` API boundary for\n[Assured Workloads](/assured-workloads/docs/overview), or to ensure\nthat your workloads use the [Cloud Run SKU](/skus/sku-groups/cloud-run).\n\n### Prepare your function for detach\n\nWhen preparing to detach your function, consider the following:\n\n- The detach operation is not reversible.\n- The detach operation cannot be applied to Cloud Run functions (1st gen).\n- Familiarize yourself with how to [deploy functions in Cloud Run](/run/docs/deploy-functions) using the Google Cloud console, Google Cloud CLI, and Terraform.\n- HTTP functions will retain their assigned URLs.\n- Triggers attached to event-driven functions will be retained.\n- Triggers cannot be managed through the `run.googleapis.com` API directly. Be sure to familiarize yourself with the trigger management guides for [Eventarc](/eventarc/docs) or [Pub/Sub](/pubsub/docs/overview).\n- Disabling [retry on failure](/functions/docs/bestpractices/retries#event_driven_functions_created_with_v2_api) is not a supported feature on Cloud Run.\n - During the detach operation, Cloud Run functions modifies the triggers attached to functions configured with [no retry on failure](/functions/docs/bestpractices/retries#event_driven_functions_created_with_v2_api), to ensure that the underlying Pub/Sub topic makes a maximum of five delivery attempts. When the detach operation is completed, a [dead letter queue](/pubsub/docs/handling-failures#how_dead_letter_topics_work) topic stores the undelivered messages, which you can retrieve by creating a new subscription to the dead letter queue.\n- When a function is successfully detached, a new Cloud Run revision is created. Starting from that revision onwards, the function will be billed using the [Cloud Run SKU](/skus/sku-groups/cloud-run).\n\n### Detach your function\n\nYou can detach your function using the following command: \n\n gcloud functions detach \u003cvar translate=\"no\"\u003eFUNCTION_NAME\u003c/var\u003e\n\nReplace \u003cvar translate=\"no\"\u003eFUNCTION_NAME\u003c/var\u003e with the name of your function."]]