Deploying to Cloud Run functions

This page explains how to deploy applications to Cloud Run functions usingCloud Build. If you're new to Cloud Build, read thequickstarts and theBuild configuration overview first.

Cloud Run functions is a serverless execution environment for building andconnecting cloud services. With Cloud Run functions, you can write single-purposefunctions that are attached to events emitted from your cloud infrastructure andservices. Your function is triggered when an event being watched is fired. Formore information on Cloud Run functions, readCloud Run functions documentation.

Before you begin

  • Enable the Cloud Run functions API:

    Enable the Cloud Run functions API

  • Have your application source code ready. Your source code needs to be storedin a repository such as GitHub or Bitbucket.

  • To run thegcloud commands in this page, installtheGoogle Cloud CLI.

Caution: Effective June 17, 2024, Cloud Source Repositories isn't available to new customers. If your organization hasn't previously used Cloud Source Repositories, you can't enable the API or use Cloud Source Repositories. New projects not connected to an organization can't enable the Cloud Source Repositories API. Organizations that have used Cloud Source Repositories prior to June 17, 2024 are not affected by this change.

Required Identity and Access Management permissions

  1. In the Google Cloud console, go to the Cloud BuildPermissions page:

    Go toPermissions

  2. For yourspecified Cloud Build service accountordefault Cloud Build service account, set the status of the following roles toEnabled:

    • Cloud Functions Developer (roles/cloudfunctions.developer) | To deploy and manage functions.
    • Cloud Run Admin (roles/run.admin) | Allows your Cloud Build service account to deploy new versions to Cloud Run.
    • Storage Admin (roles/storage.admin) | Enables reading and writing from Cloud Storage.
    • Artifact Registry Writer (roles/artifactregistry.writer) | Allows pulling images from and writing to Artifact Registry.
    • Logs Writer (roles/logging.logWriter) | Allows log entries to be written to Cloud Logging.
    • Cloud Build Editor (roles/cloudbuild.builds.editor) | Allows your service account to run builds.

Configuring the deployment

Cloud Build lets you use any publicly available container imageto execute your tasks. You can do this by specifying the image in a buildstepin the Cloud Build config file.

Cloud Run functions provides thegcloud functions deploy command, whichdeploys your function from the directory containing your function code.You can use thecloud-sdk image as a build step in your config file to invokegcloud commands within the image.Arguments passed to this build step are passed to Google Cloud CLI directly,allowing you to run anygcloud command in this image.

To deploy an application to Cloud Run functions, use the following steps:

  1. In your project root directory, create theCloud Build configuration filenamedcloudbuild.yaml orcloudbuild.json.
  2. In the config file:

    • Add aname field and specify thegcloud build step.
    • Addfunctions deploy to theargs field to invoke thegcloud functions deploy command.For available configuration options, seegcloud functions deploy reference.
    • --source=. implies that the source code is in the current working directory.

    YAML

    steps:-name:'gcr.io/google.com/cloudsdktool/cloud-sdk'args:-gcloud-functions-deploy-FUNCTION_NAME---region=FUNCTION_REGION---source=.---trigger-http---runtime=RUNTIME

    JSON

    {"steps":[{"name":"gcr.io/google.com/cloudsdktool/cloud-sdk","args":["gcloud","functions","deploy",["FUNCTION_NAME"],"--region=FUNCTION_REGION","--source=.","--trigger-http","--runtime=RUNTIME"]}]}

    Replace the placeholder values in the config file above with the following:

    • FUNCTION_NAME is the name of the Cloud Run functions you are deploying.If you're updating an existing function, this value must match the name ofthe function you're updating.
    • FUNCTION_REGION is the region to which you'redeploying Cloud Run functions. For a list of supported regions, seeCloud Run functions locations.
    • --trigger-http is the trigger type for this function, in this case an HTTP request (webhook).
    • RUNTIME is theruntimein which to run the function.

    For more information on usinggcloud functions deploy, see theCloud Run functions documentation.

  3. Start the build using the config file created in the previous step:

    gcloudbuildssubmit--region=REGION--configCONFIG_FILE_PATHSOURCE_DIRECTORY

    Replace the placeholder values in the config file above with the following:

    • CONFIG_FILE_PATH is the path to the build config file.
    • SOURCE_DIRECTORY is the path or URL to the source code.
    • REGION is one of thesupported build regions.

    If you don't specify aCONFIG_FILE_PATH andSOURCE_DIRECTORY in thegcloud builds submit command, Cloud Build assumes that the configfile and the source code are in the current working directory.

Continuous deployment

You can automate the deployment of your software to Cloud Run functions by creatingCloud Build triggers. You can configure your triggers to build anddeploy images whenever you update your source code.

To automate your deployment to Cloud Run functions:

  1. In your repository root, add a config file with stepsto invoke thegcloud functions deploy command:

    YAML

    steps:-name:'gcr.io/google.com/cloudsdktool/cloud-sdk'args:-gcloud-functions-deploy-FUNCTION_NAME---region=FUNCTION_REGION---source=.---trigger-http---runtime=RUNTIME

    JSON

    {"steps":[{"name":"gcr.io/google.com/cloudsdktool/cloud-sdk","args":["gcloud","functions","deploy",["FUNCTION_NAME"],"--region=FUNCTION_REGION","--source=.","--trigger-http","--runtime=RUNTIME"]}]}

    Replace the placeholder values in the config file above with the following:

    • FUNCTION_NAME is the name of the Cloud Run functions you are deploying.If you're updating an existing function, this value must match the name ofthe function you're updating.
    • FUNCTION_REGION is the region to which you're deploying Cloud Run functions.For a list of supported regions, seeCloud Run functions locations.
    • --trigger-http is the trigger type for this function, in this case an HTTP request (webhook).
    • RUNTIME is theruntimein which to run the function.
  2. Create a build trigger with the config file created in the previous step:

    1. Open theTriggers page in the Google Cloud console:

      Open Triggers page

    2. Select your project from the project selector drop-down menu at the top of the page.

    3. ClickCreate Trigger.

    4. In theName field, enter a name for your trigger.

    5. UnderRegion, select theregion for your trigger.

      Note: The region for your trigger must match the regionof the function you're deploying to.
    6. UnderEvent, select the repository event to start your trigger.

    7. UnderSource, select your repository and the branch or tag namethat will start your trigger.For more information on specifying which branches to autobuild, seeCreating a build trigger.

    8. UnderConfiguration, selectCloud Buildconfiguration file (YAML or JSON).

    9. In theCloud Build configuration file location field,typecloudbuild.yaml after the/.

    10. ClickCreate to save your build trigger.

Anytime you push new code to your repository, you will automatically trigger abuild and deploy on Cloud Run functions.

For more information on creating Cloud Build triggers, seeCreating and managing build triggers.

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-02-19 UTC.