从 Cloud Run functions 连接到 Cloud SQL for PostgreSQL
了解如何使用 Google Cloud 控制台和客户端应用在连接到 PostgreSQL 实例的 Cloud Run functions 上部署示例应用。
假设您及时完成所有步骤,则本快速入门中所创建资源的费用通常不会超过 1 美元 (USD)。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用在 Cloud Run 函数上运行 Cloud SQL 示例应用所需的 Cloud 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 运行以下
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
向用户添加 Cloud Run Functions Invoker IAM 角色。
设置 Cloud SQL
创建 Cloud SQL 实例
创建数据库
控制台
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 选择
quickstart-instance
。 - 从 SQL 导航菜单中选择数据库。
- 点击创建数据库。
- 在新建数据库对话框的数据库名称字段中,输入
quickstart-db
。 - 点击创建。
gcloud
运行 gcloud
sql databases create
命令以创建数据库。
gcloud sql databases create quickstart-db --instance=quickstart-instance
创建用户
控制台
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 如需打开实例的概览页面,请点击实例名称。
- 从 SQL 导航菜单中选择用户。
- 点击添加用户账号。
- 在 quickstart-instancequickstart-instance 的添加用户账号页面中,添加以下信息:
- 在用户名字段中,输入
quickstart-user
。 - 在密码字段中,指定数据库用户的密码。记下此密码,以便在本快速入门的后续步骤中使用。
- 在用户名字段中,输入
- 点击添加。
gcloud
在运行以下命令之前,请先进行以下替换:
- 将 DB_PASS 替换为您的数据库用户密码。记下此密码,以便在本快速入门的后续步骤中使用。
运行 gcloud sql users create
命令以创建用户。
gcloud sql users create quickstart-user \ --instance=quickstart-instance \ --password=DB_PASS
Cloud SQL 和本地 PostgreSQL 的用户名长度限制一样。
配置 Cloud Run functions 服务账号
控制台
-
在 Google Cloud 控制台中,转到 IAM 页面。
- 对于名为 Compute Engine 默认服务账号的服务账号,点击铅笔图标。
- 点击添加其他角色
- 添加名为 Cloud SQL Client 的角色。
- 点击保存。
gcloud
-
运行以下
gcloud
命令以获取项目的服务账号列表:gcloud iam service-accounts list
- 复制 Compute Engine 服务账号的电子邮件地址。
- 运行以下命令,将 Cloud SQL Client 角色添加到 Compute Engine 服务账号:
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/cloudsql.client"
创建一个函数
-
在 Google Cloud 控制台中,前往 Cloud Run 函数页面。
- 点击创建函数。
- 在环境中选择第 2 代。
- 在函数名称字段中,输入
quickstart-function
。 - 在身份验证区域,选择允许未通过身份验证的调用。
- 点击下一步。
- 从运行时菜单中,选择以下语言之一:
- 在源代码菜单中,验证选择了内嵌编辑器。在此步骤中,您将使用编辑器中提供的默认函数。
语言 | 版本号 |
---|---|
Go | 1.20 |
Java | 17 |
Node.js | 18 |
Python | 3.10 |
部署该函数
- 在 Cloud Run 函数页面底部,点击部署。Google Cloud 控制台会将您重定向到函数的详细信息页面。
- 函数部署完成后,点击网址链接,以查看显示
Hello, World!
消息的网络浏览器。
部署 Cloud SQL 示例应用作为函数
您将在 Cloud Run 函数中配置和部署 Cloud SQL 示例应用作为函数。首先,使用 Cloud Shell 配置和构建示例应用。然后,使用 Cloud Run functions 部署示例应用。
您可以通过两种方式配置、构建和部署应用,具体取决于您是创建具有公共 IP 还是专用 IP 的 Cloud SQL for PostgreSQL 实例。
配置 Cloud SQL 示例应用
部署示例应用
将示例部署到 Cloud Run 函数的步骤取决于您分配给 Cloud SQL 实例的 IP 地址类型。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 选择
quickstart-instance
实例以打开实例详情页面。 - 在页面顶部的图标栏中,点击删除。
- 在删除实例对话框中,输入
quickstart-instance
,然后点击删除以删除该实例。 -
在 Google Cloud 控制台中,前往 Cloud Run 函数页面。
- 选中
quickstart-function
服务名称旁边的复选框。 - 点击 Cloud Run 函数页面顶部的删除。
可选的清理步骤
如果您未使用分配给 Compute Engine 服务账号的 Cloud SQL client 角色,则可以将其移除。
-
在 Google Cloud 控制台中,转到 IAM 页面。
- 点击名为 Compute Engine 默认服务账号的 IAM 账号对应的修改图标(铅笔图案)。
- 删除 Cloud SQL client 角色。
- 点击保存。
如果您没有使用在本快速入门中启用的 API,则可以将其停用。
- 在本快速入门中启用的 API:
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
在 Google Cloud 控制台中,转到 API 页面。
选择您要停用的任何 API,然后点击停用 API 按钮。
后续步骤
您可以根据自己的需求详细了解如何创建 Cloud SQL 实例。您还可以了解如何为 Cloud SQL 实例创建 PostgreSQL 用户和数据库。
如需详细了解价格,请参阅 Cloud SQL for PostgreSQL 价格。
详细了解以下内容:
此外,您还可以了解如何从其他 Google Cloud 应用连接到 Cloud SQL 实例: