Connect from Cloud Run

This page guides you through the process of deploying a sample application on a Cloud Run service by using the Google Cloud console and a client application. This sample application connects Cloud Run to AlloyDB for PostgreSQL.

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.

    Go to project selector

  3. Make sure 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.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud APIs necessary to run an AlloyDB for PostgreSQL sample application on Cloud Run.

    Enable the APIs

    1. In the Confirm project step, to confirm the name of the project that you are going to make changes to, click Next.

    2. In the Enable APIs step, click Enable to enable the following:

      • AlloyDB API
      • Cloud Run Admin API
      • Compute Engine API
      • Cloud Build API
      • Container Registry API
      • Service Networking API
      • Cloud Resource Manager API

Create a cluster and its primary instance

  1. In the Google Cloud console, go to the Clusters page.

    Go to Clusters

  2. Click Create cluster.

    The Google Cloud console presents you with a choice of cluster types. Select Highly available.

  3. Click Continue.

    The Configure your cluster section expands.

  4. Under Basic info, in the Cluster ID field, enter my-cluster.

  5. In the Password field, enter any password you'd like. Take note of this password. You use it again later in this quickstart.

  6. In the Region field, select us-central1 (Iowa).

  7. Under Networking, select default.

    If you have not set up private services access yet, a dialog labeled Private service access connection required appears.

    In the Private service access connection required dialog, to create private services access connection, complete the following:

    1. Click Set up connection.

      A new pane labeled Enable Service Networking API appears.

    2. In the pane, select Use an automatically allocated IP range.

    3. Click Continue.

    4. Click Create connection, and wait for the connection configuration to finish.

      The pane is removed.

  8. Click Continue.

    The Configure your primary instance section expands.

  9. Under Basic info, in the Instance ID field, enter my-primary.

  10. For a Machine value, select 2 vCPU, 16 GB.

  11. Click Create cluster.

    Wait for the cluster to get created.

Connect to your instance and create a database

  1. If you are not in your newly created cluster Overview page, then in the Google Cloud console, go to the Clusters page.

    Go to Clusters

  2. To display the cluster Overview page, click the my-cluster cluster name.

  3. In the navigation menu, click AlloyDB Studio.

  4. In the Database list on the Sign in to AlloyDB Studio page, select postgres.

  5. In the User drop-down list, select postgres.

  6. In the Password field, enter the password you created in Create a cluster and its primary instance.

  7. Click Authenticate. The Explorer pane displays a list of the objects in your database.

  8. In the Editor 1 tab, create a database:

    CREATE DATABASE quickstart_db;
    
  9. Click Run. Wait for the Statement executed successfully message to display in the Results pane.

Find your project ID

  1. Go to the Dashboard page in the Google Cloud console.

    Go to Dashboard

  2. Find the project ID on the Project info card.

  3. Take note of your project ID. You need it for the following step of this quickstart.

Populate Artifact Registry with an image of the sample application

  1. In the Google Cloud console, open Cloud Shell.

    Open Cloud Shell

  2. In Cloud Shell Editor, use the following command to clone the repository with the sample application code from GitHub:

    cloudshell_open --repo_url \
    "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy" \
    --dir \
    "examples/go" \
    --force_new_clone
  3. Create a repository in Artifact Registry for docker images:

    gcloud artifacts repositories create cloud-run-source-deploy --location us-central1 --repository-format=docker --project PROJECT_ID

    Replace PROJECT_ID with the ID of your project.

  4. In the Authorize Cloud Shell dialog, click Authorize. This prompt does not appear if you have done this step previously.

  5. To build a Docker container and publish it to Artifact Registry, use the following command:

     gcloud builds submit --tag  us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy/run-sql --project PROJECT_ID

    Replace PROJECT_ID with the ID of your project.

Find the IP address for your new instance

  1. In the Google Cloud console, go to the Clusters page.

    Go to Clusters

  2. Find the row in the table whose Resource name is my-primary.

  3. Take note of that row's Private IP address. You need it for the following step of this quickstart.

Create a service for Cloud Run

  1. In the Google Cloud console, go to the Cloud Run page.

    Go to Cloud Run

  2. In the Services tab, click Create Service.

  3. In the Container image URL field, click Select.

  4. In the Select container image pane, complete the following steps:

    1. Select the Artifact registry tab.
    2. Expand us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy.
    3. Expand run-sql.
    4. Select the latest image.
    5. Click Select.
  5. In the Service name field, enter quickstart-service.

  6. Make sure us-central1 (Iowa) is selected in the Region list by default.

  7. In the Authentication section, select Allow unauthenticated invocations.

  8. Ensure that CPU is only allocated during request processing is selected in the CPU allocation and pricing section.

  9. Expand the Container(s), Volumes, Networking, Security section.

  10. In the Container(s) tab, select the Variables & secrets tab and complete the following steps:

    1. In the Environment variables section, click Add variable.

    2. Enter the following in the Name and Value fields:

  11. Switch from the Container(s) tab to the Networking tab and complete the following steps:

    1. Select the Connect to a VPC for outbound traffic checkbox.

    2. Select the Send traffic directly to a VPC option.

    3. In the Network drop-down list, choose the default value.

    4. In the Subnet drop-down list, ensure that the default value is selected.

  12. Click Create to create the Cloud Run service.

    After the Cloud Run service is deployed, the quickstart-service page displays the URL of the sample application in the URL field.

    The application uses AlloyDB as its datastore.

View the sample application

  1. In the Google Cloud console, go to the Cloud Run page.

    Go to Cloud Run

  2. On the quickstart-service page, click Copy to clipboard to copy the application URL.

  3. In a new browser tab, paste the copied application URL and click Enter.

    The sample vote-collecting web application that appears looks similar to the following:

    Tabs and spaces sample application

Clean up

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

Clean up the cluster

  1. In the Google Cloud console, go to the Clusters page.

    Go to Clusters

  2. Next to the my-cluster cluster that you want to delete, click Actions, and then click Delete.

  3. In the Delete cluster dialog that appears, type my-cluster in the my-cluster field, confirming that you want to delete it.

  4. Click Delete.

Clean up the service

  1. In the Google Cloud console, go to the Cloud Run page.

    Go to Cloud Run

  2. Select the checkbox next to the quickstart-service service name.

  3. Click Delete at the top of the Cloud Run page.

  4. In the Delete quickstart-service dialog that appears, click Delete to confirm.

What's next