从 Cloud Run functions 连接到 Cloud SQL for PostgreSQL

了解如何使用 Google Cloud 控制台和客户端应用在连接到 PostgreSQL 实例的 Cloud Run functions 上部署示例应用。

假设您及时完成所有步骤,则本快速入门中所创建资源的费用通常不会超过 1 美元 (USD)。

准备工作

  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. 启用在 Cloud Run functions 上运行 Cloud SQL 示例应用所需的 Cloud API。

    控制台

    点击启用 API 以启用本快速入门所需的 API。

    启用 API

    这将启用以下 API:

    • Cloud Run Functions API
    • Cloud SQL Admin API
    • Cloud Run Admin API
    • Cloud Build API
    • Artifact Registry API
    • Eventarc API
    • Compute Engine API
    • Service Networking API
    • Cloud Logging API

    gcloud

    点击以下按钮打开 Cloud Shell,以通过命令行直接在浏览器中访问 Google Cloud 资源。Cloud Shell 可用于运行本快速入门中介绍的 gcloud 命令。

    打开 Cloud Shell

    使用 Cloud Shell 运行以下 gcloud 命令:

    gcloud services enable cloudfunctions.googleapis.com sqladmin.googleapis.com run.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com eventarc.googleapis.com compute.googleapis.com servicenetworking.googleapis.com pubsub.googleapis.com logging.googleapis.com

    此命令会启用以下 API:

    • Cloud Run functions API
    • Cloud SQL Admin API
    • Cloud Run API
    • Cloud Build API
    • Artifact Registry API
    • Eventarc API
    • Compute Engine API
    • Service Networking API
    • Cloud Logging API
  7. 向用户添加 Cloud Run Functions Invoker IAM 角色。

    添加角色

设置 Cloud SQL

创建 Cloud SQL 实例

创建数据库

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 选择 quickstart-instance
  3. 从 SQL 导航菜单中选择数据库
  4. 点击创建数据库
    1. 新建数据库对话框的数据库名称字段中,输入 quickstart-db
    2. 点击创建

gcloud

运行 gcloud sql databases create 命令以创建数据库。

gcloud sql databases create quickstart-db --instance=quickstart-instance

创建用户

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 从 SQL 导航菜单中选择用户
  4. 点击添加用户账号
  5. quickstart-instancequickstart-instance 的添加用户账号页面中,添加以下信息:
    • 用户名字段中,输入 quickstart-user
    • 密码字段中,指定数据库用户的密码。记下此密码,以便在本快速入门的后续步骤中使用。
  6. 点击添加

gcloud

在运行以下命令之前,请先进行以下替换:

  1. DB_PASS 替换为您的数据库用户密码。记下此密码,以便在本快速入门的后续步骤中使用。

运行 gcloud sql users create 命令以创建用户。

gcloud sql users create quickstart-user \
--instance=quickstart-instance \
--password=DB_PASS

Cloud SQL 和本地 PostgreSQL 的用户名长度限制一样。

配置 Cloud Run functions 服务账号

配置 Cloud Run functions 使用的服务账号,使其具有有权连接到 Cloud SQL 的 Cloud SQL Client 角色。

控制台

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    进入 IAM

  2. 对于名为 Compute Engine 默认服务账号的服务账号,点击铅笔图标。
  3. 点击添加其他角色
  4. 添加名为 Cloud SQL Client角色
  5. 点击保存

gcloud

  1. 运行以下 gcloud 命令以获取项目的服务账号列表:
    gcloud iam service-accounts list
  2. 复制 Compute Engine 服务账号电子邮件地址
  3. 运行以下命令,将 Cloud SQL Client 角色添加到 Compute Engine 服务账号
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/cloudsql.client"

创建一个函数

  1. 在 Google Cloud 控制台中,前往 Cloud Run 函数页面。

    前往 Cloud Run 函数

  2. 点击创建函数
  3. 环境中选择第 2 代
  4. 函数名称字段中,输入 quickstart-function
  5. 身份验证区域,选择允许未通过身份验证的调用
  6. 点击下一步
  7. 运行时菜单中,选择以下语言之一:
  8. 语言 版本号
    Go 1.20
    Java 17
    Node.js 18
    Python 3.10
  9. 源代码菜单中,验证选择了内嵌编辑器。在此步骤中,您将使用编辑器中提供的默认函数。

部署该函数

  1. 在 Cloud Run functions 页面底部,点击部署。Google Cloud 控制台会将您重定向到函数的详细信息页面。
  2. 函数部署完成后,点击网址链接,以查看显示 Hello, World! 消息的网络浏览器。

部署 Cloud SQL 示例应用作为函数

您将在 Cloud Run functions 中配置和部署 Cloud SQL 示例应用作为函数。首先,使用 Cloud Shell 配置和构建示例应用。然后,使用 Cloud Run functions 部署示例应用。

您可以通过两种方式配置、构建和部署应用,具体取决于您是创建具有公共 IP 还是专用 IP 的 Cloud SQL for PostgreSQL 实例。

配置 Cloud SQL 示例应用

部署示例应用

将示例部署到 Cloud Run functions 的步骤取决于您分配给 Cloud SQL 实例的 IP 地址类型。

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 选择 quickstart-instance 实例以打开实例详情页面。
  3. 在页面顶部的图标栏中,点击删除
  4. 删除实例对话框中,输入 quickstart-instance,然后点击删除以删除该实例。
  5. 在 Google Cloud 控制台中,前往 Cloud Run 函数页面。

    前往 Cloud Run 函数

  6. 选中 quickstart-function 服务名称旁边的复选框。
  7. 点击 Cloud Run functions 页面顶部的删除

可选的清理步骤

如果您未使用分配给 Compute Engine 服务账号的 Cloud SQL client 角色,则可以将其移除。

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    进入 IAM

  2. 点击名为 Compute Engine 默认服务账号的 IAM 账号对应的修改图标(铅笔图案)。
  3. 删除 Cloud SQL client 角色。
  4. 点击保存

如果您没有使用在本快速入门中启用的 API,则可以将其停用。

  • 在本快速入门中启用的 API:
    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
  1. 在 Google Cloud 控制台中,转到 API 页面。

    转到“API”

  2. 选择您要停用的任何 API,然后点击停用 API 按钮。

后续步骤

您可以根据自己的需求详细了解如何创建 Cloud SQL 实例

您还可以了解如何为 Cloud SQL 实例创建 PostgreSQL 用户数据库

如需详细了解价格,请参阅 Cloud SQL for PostgreSQL 价格

详细了解以下内容:

  • 使用公共 IP 地址配置 Cloud SQL 实例。
  • 使用专用 IP 地址配置 Cloud SQL 实例。

此外,您还可以了解如何从其他 Google Cloud 应用连接到 Cloud SQL 实例: