Deploy a Cloud Run app by using Cloud Shell

Learn how to set up and deploy a sample Hello World application to Cloud Run and view the status of your live service's resources.

Before you begin

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

Required roles

To get the permissions that you need to deploy a Cloud Run app, ask your administrator to grant you the following IAM roles on your project:

For more information about granting roles, see Manage access to projects, folders, and organizations.

You might also be able to get the required permissions through custom roles or other predefined roles.

Grant the Cloud Build service account access to your project

Cloud Build automatically uses the Compute Engine default service account as the default Cloud Build service account to build your source code and Cloud Run resource, unless you override this behavior.

For Cloud Build to build your sources, grant the Cloud Build service account the Cloud Run Builder (roles/run.builder) role on your project:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \
    --role=roles/run.builder

Replace PROJECT_ID with your Google Cloud project ID and SERVICE_ACCOUNT_EMAIL_ADDRESS with the email address of the Cloud Build service account. If you're using the Compute Engine default service account as the Cloud Build service account, then use the following format for the service account email address:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Replace PROJECT_NUMBER with your Google Cloud project number.

For detailed instructions on how to find your project ID, and project number, see Creating and managing projects.

Granting the Cloud Run builder role takes a couple of minutes to propagate.

Create an application

  1. Launch the Cloud Shell Editor.
  2. From the Cloud Code status bar, select New Application.
  3. Choose Cloud Run application as your preferred application type.
  4. From the list of sample applications (Node.js, Python with Flask and Django frameworks, Java, Go), choose a Hello World app.

    For example, choosing Python (Flask): Hello World creates a starter Python (Flask) Hello World app.

  5. Select a folder as your application location and then click Create New Application.

    Cloud Shell Editor loads the application in a new workspace. After the workspace loads, your app is accessible in the explorer view.

Deploy to Cloud Run

To deploy your application to Cloud Run, follow these steps:

  1. Open the command palette (press Ctrl/Cmd+Shift+P or click View > Command Palette) and then run the Deploy to Cloud Run command. This brings up the Cloud Run Deploy UI.
  2. If prompted, authorize Cloud Code to make Google Cloud API calls.
  3. Set your Google Cloud project.
  4. If prompted, enable the Cloud Run API by clicking Enable APIs.
  5. In the Deploy to Cloud Run dialog, select a pre-existing service or create a new one.
  6. If you're creating a new service, choose Cloud Run (fully managed) under Deployment Platform.
  7. Choose a region to deploy to.
  8. For Authentication, select Allow unauthenticated invocations to make this a public service.
  9. After you define your preferred settings, you can click Deploy.

    Cloud Code builds your image, pushes it to the registry, and deploys your app to Cloud Run. Your service is now live!

  10. View your running service by following the URL displayed in your Cloud Run: Deploy dialog.

Edit your service

To edit your application, follow these steps:

  1. With the Explorer view, find the app.py file that implements the service behavior.
  2. Change the message "It's running!" to a message of your choosing.
  3. After you make this change, choose the Deploy to Cloud Run command using the Command Palette.
  4. Check that the service you just created is selected in Service Settings.
  5. Click Deploy.
  6. After your application finishes building and deploying, you can refresh your service to see your updated message.

View logs

You can also view logs from your deployed application with the Log Viewer that comes with Cloud Code.

To view logs, follow these steps:

  1. Click Cloud Code icon Cloud Code and then expand the Cloud Run section.
  2. Right-click your Cloud Run service and then click View logs.

  3. Refresh your app in the browser, and see the new logs generated by clicking the Logs refresh button.

Clean up

To avoid incurring charges to your Google Cloud account for the resources used on this page, follow these steps.

To delete your project:

  1. Go to the Projects page in the Google Cloud console:

    Go to the Projects page

  2. Select the project you created for this quickstart and then click Delete.

    This shuts down the project and schedules it for deletion.

If you're using a pre-existing project and would like to delete resources you created for this quickstart:

What's next