从 Cloud Run functions 连接到 Cloud SQL for MySQL

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

假设您及时完成所有步骤,则本快速入门中所创建资源的费用通常不会超过 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. 启用在 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

    点击以下按钮打开 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
  5. 向用户添加 Cloud Run Functions Invoker IAM 角色。

    添加角色

设置 Cloud SQL

创建 Cloud SQL 实例

公共 IP

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

    转到“Cloud SQL 实例”

  2. 点击创建实例
  3. 点击选择 MySQL
  4. 确保已选择企业 Plus 版作为实例的 Cloud SQL 版本。
  5. 实例 ID 字段中,输入 quickstart-instance
  6. 密码字段中,输入根用户的密码。保存此密码以供将来使用。
  7. 选择区域和可用区的可用性部分中,选择单个可用区
  8. 点击显示配置选项菜单。
  9. 展开机器配置节点。
  10. 机器类型区域中,选择 4 个 vCPU、32 GB 类型。
  11. 点击创建实例,然后等待实例初始化并启动。

按照以下方式运行命令之前,请将 DB_ROOT_PASSWORD 替换为数据库用户的密码。

(可选)修改以下参数的值:

  • --database-version:数据库引擎类型和版本。如果未指定,则使用 API 默认值。请参阅 gcloud 数据库版本文档,以查看当前可用版本。
  • --cpu:机器中所需的核心数。
  • --memory:表示机器所需内存数量的整数。应该提供大小单位(例如 3072MB 或 9GB)。如果未指定单位,则假定为 GB。
  • --region:实例的区域位置(例如 asia-east1、us-east1)。如果未指定,则使用默认值 us-central

运行 gcloud sql instances create 命令以创建 Cloud SQL 实例。

 gcloud sql instances create quickstart-instance \
--database-version=MYSQL_8_0 \
--cpu=1 \
--memory=4GB \
--region=us-central1 \
--root-password=DB_ROOT_PASSWORD

分配 IP 地址范围并创建专用连接,以便为 Cloud SQL 配置专用服务访问通道

  1. 在 Google Cloud 控制台中,转到 VPC 网络页面。

    转到 VPC 网络页面

  2. 选择 default VPC 网络。
  3. 选择专用服务连接标签页。
  4. 选择为服务分配的 IP 范围标签页。
  5. 点击分配 IP 范围
  6. 对于已分配的范围的名称,请指定 google-managed-services-default
  7. 选择 IP 地址范围的自动选项,并将前缀长度指定为 16
  8. 点击分配以创建分配的范围。
  9. 选择 default VPC 网络的连到服务的专用连接标签页。
  10. 点击创建连接以在您的网络与服务提供方之间创建专用连接。
  11. 对于指定的分配范围,请选择 google-managed-services-default
  12. 点击连接以创建连接。

创建具有专用 IP 地址且启用了 SSL 的实例

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

    转到“Cloud SQL 实例”

  2. 点击创建实例
  3. 点击选择 MySQL
  4. 确保已选择企业 Plus 版作为实例的 Cloud SQL 版本。
  5. 实例 ID 字段中,输入 quickstart-instance
  6. 密码字段中,输入根用户的密码。保存此密码以供将来使用。
  7. 选择区域和可用区的可用性部分中,选择单个可用区
  8. 点击显示配置选项菜单。
  9. 展开机器配置节点。
  10. 机器类型区域中,选择 4 个 vCPU、32 GB 类型。
  11. 展开连接节点。
  12. 取消选中公共 IP 复选框以创建仅使用专用 IP 地址的实例。
  13. 选中专用 IP 复选框。
  14. 网络菜单中,选择默认
  15. 点击创建实例,然后等待实例初始化并启动。
  16. 点击连接
  17. 安全性部分中,选择仅允许 SSL 连接以启用 SSL 连接。
  18. 启用 SSL 对话框中,点击启用并重启,然后等待实例重启。

分配 IP 地址范围并创建专用连接,以便为 Cloud SQL 配置专用服务访问通道

  1. 运行 gcloud compute addresses create 命令以分配 IP 地址范围。

    gcloud compute addresses create google-managed-services-default \
    --global --purpose=VPC_PEERING --prefix-length=16 \
    --description="peering range for Google" --network=default
  2. 运行 gcloud services vpc-peerings connect 命令以创建与分配的 IP 地址范围的专用连接。将 YOUR_PROJECT_ID 替换为您的项目 ID。

    gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-default --network=default \
    --project=YOUR_PROJECT_ID

创建具有专用 IP 地址且启用了 SSL 的实例

  1. 按照以下方式运行命令之前,请将 DB_ROOT_PASSWORD 替换为数据库用户的密码。

  2. (可选)修改以下参数的值:

    • --database-version:数据库引擎类型和版本。如果未指定,则使用 API 默认值。请参阅 gcloud 数据库版本文档,以查看当前可用版本。
    • --cpu:机器中的核心数。
    • --memory:指示机器要包括多少内存的整数。可以提供大小单位(例如 3072MB 或 9GB)。如果未指定单位,则假定为 GB。
    • --region:实例的区域位置(例如 asia-east1、us-east1)。如果未指定,则使用默认值 us-central1。 请参阅区域的完整列表。

    运行 gcloud sql instances create 命令以创建具有专用 IP 地址的 Cloud SQL 实例。

     gcloud sql instances create quickstart-instance \
    --database-version=MYSQL_8_0 \
    --cpu=1 \
    --memory=4GB \
    --region=us-central1 \
    --root-password=DB_ROOT_PASSWORD \
    --no-assign-ip \
    --network=default
  3. 运行 gcloud sql instances patch 命令来为实例启用仅允许 SSL 连接

  4. gcloud sql instances patch quickstart-instance --require-ssl

创建数据库

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

    转到“Cloud SQL 实例”

  2. 选择 quickstart-instance
  3. 从 SQL 导航菜单中选择数据库
  4. 点击创建数据库
    1. 创建数据库对话框的数据库名称字段中,输入 quickstart-db。保留字符集和排序规则的值。
    2. 点击创建

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

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

创建用户

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

    转到“Cloud SQL 实例”

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

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

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

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

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

Cloud SQL 和本地 MySQL 的用户名长度限制一样;MySQL 8.0 及更高版本为 32 个字符,较低版本为 16 个字符。

配置 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. 点击保存
  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 MySQL 实例。

配置 Cloud SQL 示例应用

公共 IP

对于公共 IP 路径,Cloud Run functions 提供加密功能,并通过 Unix 套接字使用 Cloud SQL Auth 代理进行连接。
  1. 在 Cloud Shell Editor 中,打开示例应用的源代码。

    打开 Cloud Shell Editor
  2. 在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
  3. 在 Cloud Shell Editor 的下半部分屏幕中,在 Cloud Shell 命令提示符处运行以下命令来激活您的项目。将 YOUR_PROJECT_ID 替换为您的项目 ID。
    gcloud config set project YOUR_PROJECT_ID
  4. 如果看到为 Cloud Shell 提供授权 对话框,请点击授权
  5. 在 Cloud Shell 中运行以下 gcloud artifacts repositories create 命令,在 Artifact Registry 中创建名为 quickstart-repo 的代码库,并且其与 Cloud SQL 实例位于同一区域。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. 按照以下方式在 Cloud Shell 中运行 gcloud builds submit 命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. 在 Cloud Run functions 的 gen2 中,不支持自动配置和运行 Cloud SQL Auth 代理。使用 Cloud Run 支持此功能。您必须使用 --add-cloudsql-instances 标志手动修改底层 Cloud Run 服务,以使用该服务配置并运行 Cloud SQL Auth 代理。将 INSTANCE_CONNECTION_NAME 替换为实例的连接名称。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
  1. 在 Cloud Shell Editor 中,打开示例应用的源代码。

    打开 Cloud Shell Editor
  2. 在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
  3. 在 Cloud Shell Editor 的下半部分屏幕中,在 Cloud Shell 命令提示符处运行以下命令来激活您的项目。将 YOUR_PROJECT_ID 替换为您的项目 ID。
    gcloud config set project YOUR_PROJECT_ID
  4. 如果看到为 Cloud Shell 提供授权 对话框,请点击授权
  5. 在 Cloud Shell 中运行以下 gcloud artifacts repositories create 命令,在 Artifact Registry 中创建名为 quickstart-repo 的代码库,并且其与 Cloud SQL 实例位于同一区域。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. 按照以下方式在 Cloud Shell 中运行 mvn 命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
      -Dimage=YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql \
      -DskipTests -Djib.to.credHelper=gcloud
  7. 在 Cloud Run functions 的 gen2 中,不支持自动配置和运行 Cloud SQL Auth 代理。使用 Cloud Run 支持此功能。您必须使用 --add-cloudsql-instances 标志手动修改底层 Cloud Run 服务,以使用该服务配置并运行 Cloud SQL Auth 代理。将 INSTANCE_CONNECTION_NAME 替换为实例的连接名称。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
  1. 在 Cloud Shell Editor 中,打开示例应用的源代码。

    打开 Cloud Shell Editor
  2. 在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
  3. 在 Cloud Shell Editor 的下半部分屏幕中,在 Cloud Shell 命令提示符处运行以下命令来激活您的项目。将 YOUR_PROJECT_ID 替换为您的项目 ID。
    gcloud config set project YOUR_PROJECT_ID
  4. 如果看到为 Cloud Shell 提供授权 对话框,请点击授权
  5. 在 Cloud Shell 中运行以下 gcloud artifacts repositories create 命令,在 Artifact Registry 中创建名为 quickstart-repo 的代码库,并且其与 Cloud SQL 实例位于同一区域。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. 按照以下方式在 Cloud Shell 中运行 gcloud builds submit 命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. 在 Cloud Run functions 的 gen2 中,不支持自动配置和运行 Cloud SQL Auth 代理。使用 Cloud Run 支持此功能。您必须使用 --add-cloudsql-instances 标志手动修改底层 Cloud Run 服务,以使用该服务配置并运行 Cloud SQL Auth 代理。将 INSTANCE_CONNECTION_NAME 替换为实例的连接名称。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
  1. 在 Cloud Shell Editor 中,打开示例应用的源代码。
    打开 Cloud Shell Editor
  2. 在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
  3. 在 Cloud Shell Editor 的下半部分屏幕中,在 Cloud Shell 命令提示符处运行以下命令来激活您的项目。将 YOUR_PROJECT_ID 替换为您的项目 ID。
    gcloud config set project YOUR_PROJECT_ID
  4. 如果看到为 Cloud Shell 提供授权 对话框,请点击授权
  5. 在 Cloud Shell 中运行以下 gcloud artifacts repositories create 命令,在 Artifact Registry 中创建名为 quickstart-repo 的代码库,并且其与 Cloud SQL 实例位于同一区域。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. 按照以下方式在 Cloud Shell 中运行 gcloud builds submit 命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. 在 Cloud Run functions 的 gen2 中,不支持自动配置和运行 Cloud SQL Auth 代理。使用 Cloud Run 支持此功能。您必须使用 --add-cloudsql-instances 标志手动修改底层 Cloud Run 服务,以使用该服务配置并运行 Cloud SQL Auth 代理。将 INSTANCE_CONNECTION_NAME 替换为实例的连接名称。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
对于专用 IP 路径,您的应用会通过无服务器 VPC 访问通道直接连接到您的实例。此方法使用 TCP 套接字直接连接到 Cloud SQL 实例,而无需使用 Cloud SQL Auth 代理。

创建和下载 SSL 服务器和客户端证书

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

    转到“Cloud SQL 实例”

  2. 点击 quickstart-instance 以查看其概览页面
  3. 点击连接标签页。
  4. 安全部分下,点击创建客户端证书
  5. 创建客户端证书对话框中,输入 quickstart-key 作为名称,然后点击创建
  6. 已创建新的 SSL 证书对话框中,点击每个下载链接以下载证书。然后,点击关闭

创建无服务器 VPC 连接以通过专用 IP 地址连接到实例

  1. 在 Google Cloud 控制台中,转到无服务器 VPC 访问通道 - 创建连接器页面。

    创建无服务器 VPC 连接器

  2. 输入 quickstart-connector 作为名称
  3. 网络下拉菜单中,选择默认
  4. 子网下拉菜单中,选择自定义 IP 范围
  5. IP 范围输入框中,输入 10.8.0.0
  6. 点击创建以创建连接器。

构建使用 SSL 证书的示例应用

  1. 在 Cloud Shell Editor 中,打开示例应用的源代码。

    打开 Cloud Shell Editor
  2. 在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
  3. 在 Cloud Shell Editor 的下半部分屏幕中,在 Cloud Shell 命令提示符处运行以下命令来激活您的项目。将 YOUR_PROJECT_ID 替换为您的项目 ID。
    gcloud config set project YOUR_PROJECT_ID
  4. 如果看到为 Cloud Shell 提供授权 对话框,请点击授权
  5. 将 SSL 证书文件上传到 certs 文件夹。
    1. 在 Cloud Shell Editor 中右键点击 certs 文件夹,然后选择上传文件
    2. 在本地机器上选择以下文件:
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 选择三个 SSL 证书文件后,点击打开以完成将文件上传到 Cloud Shell Editor 的过程。
  6. 在 Cloud Shell 中运行以下 gcloud artifacts repositories create 命令,在 Artifact Registry 中创建名为 quickstart-repo 的代码库,并且其与 Cloud SQL 实例位于同一区域。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  7. 按照以下方式在 Cloud Shell 中运行 gcloud builds submit 命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  8. 在 Cloud Run functions 的 gen2 中,不支持自动配置和运行 Cloud SQL Auth 代理。使用 Cloud Run 支持此功能。您必须使用 --add-cloudsql-instances 标志手动修改底层 Cloud Run 服务,以使用该服务配置并运行 Cloud SQL Auth 代理。将 INSTANCE_CONNECTION_NAME 替换为实例的连接名称。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

创建和下载 SSL 服务器和客户端证书

对于 Java 用户,该连接器已提供一个安全连接,因此无需创建和下载 SSL 服务器和客户端证书。

创建无服务器 VPC 连接以通过专用 IP 地址连接到实例

  1. 在 Google Cloud 控制台中,转到无服务器 VPC 访问通道 - 创建连接器页面。

    创建无服务器 VPC 连接器

  2. 输入 quickstart-connector 作为名称
  3. 网络下拉菜单中,选择默认
  4. 子网下拉菜单中,选择自定义 IP 范围
  5. IP 范围输入框中,输入 10.8.0.0
  6. 点击创建以创建连接器。

构建示例应用

  1. 在 Cloud Shell Editor 中,打开示例应用的源代码。
    打开 Cloud Shell Editor
  2. 在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
  3. 在 Cloud Shell Editor 的下半部分屏幕中,在 Cloud Shell 命令提示符处运行以下命令来激活您的项目。将 YOUR_PROJECT_ID 替换为您的项目 ID。
    gcloud config set project YOUR_PROJECT_ID
  4. 如果看到为 Cloud Shell 提供授权 对话框,请点击授权
  5. 在 Cloud Shell 中运行以下 gcloud artifacts repositories create 命令,在 Artifact Registry 中创建名为 quickstart-repo 的代码库,并且其与 Cloud SQL 实例位于同一区域。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. 按照以下方式在 Cloud Shell 中运行 mvn 命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
      -Dimage=YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql \
      -DskipTests -Djib.to.credHelper=gcloud
  7. 在 Cloud Run functions 的 gen2 中,不支持自动配置和运行 Cloud SQL Auth 代理。使用 Cloud Run 支持此功能。您必须使用 --add-cloudsql-instances 标志手动修改底层 Cloud Run 服务,以使用该服务配置并运行 Cloud SQL Auth 代理。将 INSTANCE_CONNECTION_NAME 替换为实例的连接名称。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

创建和下载 SSL 服务器和客户端证书

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

    转到“Cloud SQL 实例”

  2. 点击 quickstart-instance 以查看其概览页面
  3. 点击连接标签页。
  4. 安全部分下,点击创建客户端证书
  5. 创建客户端证书对话框中,输入 quickstart-key 作为名称,然后点击创建
  6. 已创建新的 SSL 证书对话框中,点击每个下载链接以下载证书。然后,点击关闭

创建无服务器 VPC 连接以通过专用 IP 地址连接到实例

  1. 在 Google Cloud 控制台中,转到无服务器 VPC 访问通道 - 创建连接器页面。

    创建无服务器 VPC 连接器

  2. 输入 quickstart-connector 作为名称
  3. 网络下拉菜单中,选择默认
  4. 子网下拉菜单中,选择自定义 IP 范围
  5. IP 范围输入框中,输入 10.8.0.0
  6. 点击创建以创建连接器。

构建使用 SSL 证书的示例应用

  1. 在 Cloud Shell Editor 中,打开示例应用的源代码。
    打开 Cloud Shell Editor
  2. 在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
  3. 在 Cloud Shell Editor 的下半部分屏幕中,在 Cloud Shell 命令提示符处运行以下命令来激活您的项目。将 YOUR_PROJECT_ID 替换为您的项目 ID。
    gcloud config set project YOUR_PROJECT_ID
  4. 将 SSL 证书文件上传到 certs 文件夹。
    1. 在 Cloud Shell Editor 中右键点击 certs 文件夹,然后选择上传文件
    2. 在本地机器上选择以下文件:
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 选择三个 SSL 证书文件后,点击打开以完成将文件上传到 Cloud Shell Editor 的过程。
  5. 在 Cloud Shell 中运行以下 gcloud artifacts repositories create 命令,在 Artifact Registry 中创建名为 quickstart-repo 的代码库,并且其与 Cloud SQL 实例位于同一区域。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. 按照以下方式在 Cloud Shell 中运行 gcloud builds submit 命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. 在 Cloud Run functions 的 gen2 中,不支持自动配置和运行 Cloud SQL Auth 代理。使用 Cloud Run 支持此功能。您必须使用 --add-cloudsql-instances 标志手动修改底层 Cloud Run 服务,以使用该服务配置并运行 Cloud SQL Auth 代理。将 INSTANCE_CONNECTION_NAME 替换为实例的连接名称。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

创建和下载 SSL 服务器和客户端证书

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

    转到“Cloud SQL 实例”

  2. 点击 quickstart-instance 以查看其概览页面
  3. 点击连接标签页。
  4. 安全部分下,点击创建客户端证书
  5. 创建客户端证书对话框中,输入 quickstart-key 作为名称,然后点击创建
  6. 已创建新的 SSL 证书对话框中,点击每个下载链接以下载证书。然后,点击关闭

创建无服务器 VPC 连接以通过专用 IP 地址连接到实例

  1. 在 Google Cloud 控制台中,转到无服务器 VPC 访问通道 - 创建连接器页面。

    创建无服务器 VPC 连接器

  2. 输入 quickstart-connector 作为名称
  3. 网络下拉菜单中,选择默认
  4. 子网下拉菜单中,选择自定义 IP 范围
  5. IP 范围输入框中,输入 10.8.0.0
  6. 点击创建以创建连接器。

构建使用 SSL 证书的示例应用

  1. 在 Cloud Shell Editor 中,打开示例应用的源代码。
    打开 Cloud Shell Editor
  2. 在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
  3. 在 Cloud Shell Editor 的下半部分屏幕中,在 Cloud Shell 命令提示符处运行以下命令来激活您的项目。将 YOUR_PROJECT_ID 替换为您的项目 ID。
    gcloud config set project YOUR_PROJECT_ID
  4. 将 SSL 证书文件上传到 certs 文件夹。
    1. 在 Cloud Shell Editor 中右键点击 certs 文件夹,然后选择上传文件
    2. 在本地机器上选择以下文件:
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 选择三个 SSL 证书文件后,点击打开以完成将文件上传到 Cloud Shell Editor 的过程。
  5. 在 Cloud Shell 中运行以下 gcloud artifacts repositories create 命令,在 Artifact Registry 中创建名为 quickstart-repo 的代码库,并且其与 Cloud SQL 实例位于同一区域。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. 按照以下方式在 Cloud Shell 中运行 gcloud builds submit 命令,以构建 Docker 容器并将其发布到 Artifact Registry。将 YOUR_PROJECT_ID 替换为您的项目 ID,将 YOUR_REGION_NAME 替换为您的区域名称。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. 在 Cloud Run functions 的 gen2 中,不支持自动配置和运行 Cloud SQL Auth 代理。使用 Cloud Run 支持此功能。您必须使用 --add-cloudsql-instances 标志手动修改底层 Cloud Run 服务,以使用该服务配置并运行 Cloud SQL Auth 代理。将 INSTANCE_CONNECTION_NAME 替换为实例的连接名称。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

部署示例应用

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

公共 IP

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

    前往 Cloud Run 函数

  2. 选择您在本快速入门的上一步中创建的 quickstart-function
  3. 函数详情页面中,点击由 Cloud Run 提供支持窗格中的链接以访问底层 Cloud Run functions 服务。
  4. 点击修改和部署新修订版本
  5. 容器映像网址字段中,点击选择
    1. 选择 Artifact Registry 标签页,然后展开 quickstart-repo 节点。
    2. 展开 function-sql 容器,然后选择您在上一步中创建的容器映像。
    3. 点击选择
  6. 点击环境变量部分中的添加变量,创建以下环境变量:
    • INSTANCE_UNIX_SOCKET:设置为 /cloudsql/YOUR_PROJECT_ID:YOUR_REGION_NAME:quickstart-instance
    • DB_NAME:设置为 quickstart-db
    • DB_USER:设置为 quickstart-user
    • DB_PASS:设置为您在之前的创建用户快速入门步骤中指定的 quickstart-user 的密码。
  7. 启用连接到 Cloud SQL:

    1. Cloud SQL 连接部分,点击添加连接
    2. 选择实例的连接名称。
  8. 点击页面底部的部署
  9. 部署 quickstart-function 后,quickstart-function页面会显示正在运行的服务的网址。点击网址链接以查看连接到 Cloud SQL 的已部署 Cloud Run functions 示例应用。应用应类似如下所示:

    查看已部署的示例应用。

  1. 如需将 gen2 函数部署到 Cloud Run functions,请运行以下 gcloud functions deploy 命令。在运行该命令之前,请更新以下变量:
    • YOUR_REGION_NAME 替换为您的区域名称
    • INSTANCE_CONNECTION_NAME 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的连接名称

    • DB_PASS 替换为您在之前的创建用户快速入门步骤中创建的 quickstart-user 的密码

    按如下所示运行 gcloud functions deploy 命令来创建 Cloud Run functions 函数:

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime go120 \ --trigger-http \ --allow-unauthenticated \ --entry-point Votes \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. 如果您看到确认消息,表明已部署 Cloud Run functions,请点击消息中的服务网址链接,以查看连接到 Cloud SQL 的已部署 Cloud Run functions 示例应用。

    查看已部署的示例应用。

  1. 如需将 gen2 函数部署到 Cloud Run functions,请运行以下 gcloud functions deploy 命令。在运行该命令之前,请更新以下变量:
    • YOUR_REGION_NAME 替换为您的区域名称
    • INSTANCE_CONNECTION_NAME 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的连接名称

    • DB_PASS 替换为您在之前的创建用户快速入门步骤中创建的 quickstart-user 的密码

    按如下所示运行 gcloud functions deploy 命令来创建 Cloud Run functions 函数:

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime java11 \ --trigger-http \ --allow-unauthenticated \ --entry-point com.example.cloudsql.functions.Main \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. 如果您看到确认消息,表明已部署 Cloud Run functions,请点击消息中的服务网址链接,以查看连接到 Cloud SQL 的已部署 Cloud Run functions 示例应用。

    查看已部署的示例应用。

  1. 如需将 gen2 函数部署到 Cloud Run functions,请运行以下 gcloud functions deploy 命令。在运行该命令之前,请更新以下变量:
    • YOUR_REGION_NAME 替换为您的区域名称
    • INSTANCE_CONNECTION_NAME 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的连接名称

    • DB_PASS 替换为您在之前的创建用户快速入门步骤中创建的 quickstart-user 的密码

    按如下所示运行 gcloud functions deploy 命令来创建 Cloud Run functions 函数:

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime nodejs18 \ --trigger-http \ --allow-unauthenticated \ --entry-point votes \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. 如果您看到确认消息,表明已部署 Cloud Run functions,请点击消息中的服务网址链接,以查看连接到 Cloud SQL 的已部署 Cloud Run functions 示例应用。

    查看已部署的示例应用。

  1. 如需将 gen2 函数部署到 Cloud Run functions,请运行以下 gcloud functions deploy 命令。在运行该命令之前,请更新以下变量:
    • YOUR_REGION_NAME 替换为您的区域名称
    • INSTANCE_CONNECTION_NAME 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的连接名称

    • DB_PASS 替换为您在之前的创建用户快速入门步骤中创建的 quickstart-user 的密码

    按如下所示运行 gcloud functions deploy 命令来创建 Cloud Run functions 函数:

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime python310 \ --trigger-http \ --allow-unauthenticated \ --entry-point votes \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. 如果您看到确认消息,表明已部署 Cloud Run functions,请点击消息中的服务网址链接,以查看连接到 Cloud SQL 的已部署 Cloud Run functions 示例应用。

    查看已部署的示例应用。

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

    前往 Cloud Run 函数

  2. 选择您在本快速入门的上一步中创建的 quickstart-function
  3. 函数详情页面中,点击由 Cloud Run 提供支持窗格中的链接以访问底层 Cloud Run functions 服务。
  4. 点击修改和部署新修订版本
  5. 容器映像网址字段中,点击选择
    1. 选择 Artifact Registry 标签页,然后展开 quickstart-repo 节点。
    2. 展开 function-sql 容器,然后选择您在上一步中创建的容器映像。
    3. 点击选择
  6. 点击环境变量部分中的添加变量,创建以下环境变量:
    • DB_NAME:设置为 quickstart-db
    • DB_USER:设置为 quickstart-user
    • DB_PASS:设置为您在之前的创建用户快速入门步骤中指定的 quickstart-user 的密码。
    • INSTANCE_CONNECTION_NAME:设置为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的连接名称
    • DB_PORT:设置为 3306
    • INSTANCE_HOST:设置为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的专用 IP 地址。
    • DB_ROOT_CERT:设置为 certs/server-ca.pem
    • DB_CERT:设置为 certs/client-cert.pem
    • DB_KEY:设置为 certs/client-key.pem
    • PRIVATE_IP:设置为 TRUE
  7. 启用连接到 Cloud SQL:

    1. Cloud SQL 连接部分,点击添加连接
    2. 选择实例的连接名称。
    3. VPC 网络下拉菜单中选择 default: Serverless VPC Access Connector "quickstart-connector"
    4. 选择通过 VPC 连接器路由所有流量选项。
  8. 点击页面底部的部署
  9. 部署 quickstart-function 后,quickstart-function页面会显示正在运行的服务的网址。点击网址链接以查看连接到 Cloud SQL 的已部署 Cloud Run functions 示例应用。应用应类似如下所示:

    查看已部署的示例应用

  1. 如需将 gen2 函数部署到 Cloud Run functions,请运行以下 gcloud functions deploy 命令。在运行该命令之前,请更新以下变量:
    • YOUR_REGION_NAME 替换为您的区域名称
    • PRIVATE_IP_ADDRESS 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的 Cloud SQL 实例的专用 IP 地址。
    • DB_PASS 替换为您在之前的创建用户快速入门步骤中创建的 quickstart-user 的密码
    • INSTANCE_CONNECTION_NAME 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的连接名称

    按如下所示运行 gcloud functions deploy 命令来创建 Cloud Run functions 函数:

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime go120 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point Votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=3306 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java 用户应按如下所示运行 gcloud functions deploy 命令且不使用 INSTANCE_HOSTDB_PORTDB_ROOT_CERTDB_CERTDB_KEYPRIVATE_IP 标志来创建 Cloud Run functions 函数,因为 Java 连接器已提供安全连接:

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime go120 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point Votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. 如果您看到确认消息,表明已部署 Cloud Run functions,请点击消息中的服务网址链接,以查看连接到 Cloud SQL 的已部署 Cloud Run 函数示例应用。

    查看已部署的示例应用

  1. 如需将 gen2 函数部署到 Cloud Run functions,请运行以下 gcloud functions deploy 命令。在运行该命令之前,请更新以下变量:
    • YOUR_REGION_NAME 替换为您的区域名称
    • PRIVATE_IP_ADDRESS 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的 Cloud SQL 实例的专用 IP 地址。
    • DB_PASS 替换为您在之前的创建用户快速入门步骤中创建的 quickstart-user 的密码
    • INSTANCE_CONNECTION_NAME 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的连接名称

    按如下所示运行 gcloud functions deploy 命令来创建 Cloud Run functions 函数:

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime java11 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point com.example.cloudsql.functions.Main \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=3306 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java 用户应按如下所示运行 gcloud functions deploy 命令且不使用 INSTANCE_HOSTDB_PORTDB_ROOT_CERTDB_CERTDB_KEYPRIVATE_IP 标志来创建 Cloud Run functions 函数,因为 Java 连接器已提供安全连接:

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime java11 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point com.example.cloudsql.functions.Main \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. 如果您看到确认消息,表明已部署 Cloud Run functions,请点击消息中的服务网址链接,以查看连接到 Cloud SQL 的已部署 Cloud Run 函数示例应用。

    查看已部署的示例应用

  1. 如需将 gen2 函数部署到 Cloud Run functions,请运行以下 gcloud functions deploy 命令。在运行该命令之前,请更新以下变量:
    • YOUR_REGION_NAME 替换为您的区域名称
    • PRIVATE_IP_ADDRESS 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的 Cloud SQL 实例的专用 IP 地址。
    • DB_PASS 替换为您在之前的创建用户快速入门步骤中创建的 quickstart-user 的密码
    • INSTANCE_CONNECTION_NAME 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的连接名称

    按如下所示运行 gcloud functions deploy 命令来创建 Cloud Run functions 函数:

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime nodejs18 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=3306 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java 用户应按如下所示运行 gcloud functions deploy 命令且不使用 INSTANCE_HOSTDB_PORTDB_ROOT_CERTDB_CERTDB_KEYPRIVATE_IP 标志来创建 Cloud Run functions 函数,因为 Java 连接器已提供安全连接:

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime nodejs18 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. 如果您看到确认消息,表明已部署 Cloud Run functions,请点击消息中的服务网址链接,以查看连接到 Cloud SQL 的已部署 Cloud Run 函数示例应用。

    查看已部署的示例应用

  1. 如需将 gen2 函数部署到 Cloud Run functions,请运行以下 gcloud functions deploy 命令。在运行该命令之前,请更新以下变量:
    • YOUR_REGION_NAME 替换为您的区域名称
    • PRIVATE_IP_ADDRESS 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的 Cloud SQL 实例的专用 IP 地址。
    • DB_PASS 替换为您在之前的创建用户快速入门步骤中创建的 quickstart-user 的密码
    • INSTANCE_CONNECTION_NAME 替换为 Google Cloud 控制台中 Cloud SQL 实例页面上显示的实例的连接名称

    按如下所示运行 gcloud functions deploy 命令来创建 Cloud Run functions 函数:

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime python310 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=3306 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java 用户应按如下所示运行 gcloud functions deploy 命令且不使用 INSTANCE_HOSTDB_PORTDB_ROOT_CERTDB_CERTDB_KEYPRIVATE_IP 标志来创建 Cloud Run functions 函数,因为 Java 连接器已提供安全连接:

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime python310 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. 如果您看到确认消息,表明已部署 Cloud Run functions,请点击消息中的服务网址链接,以查看连接到 Cloud SQL 的已部署 Cloud Run 函数示例应用。

    查看已部署的示例应用

清理

为避免因本页中使用的资源导致您的 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 实例创建 MySQL 用户数据库

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

详细了解以下内容:

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

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