从 App Engine 柔性环境连接到 Cloud SQL for PostgreSQL
了解如何使用 Google Cloud 控制台和客户端应用在连接到 PostgreSQL 实例的 App Engine 柔性环境中部署示例应用。
假设您及时完成所有步骤,则本快速入门中所创建资源的费用通常不会超过 1 美元 (USD)。
准备工作
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
启用在 App Engine 柔性环境中运行 Cloud SQL 示例应用所需的 Cloud API。
点击下面的按钮启用本快速入门所需的 API。
这将启用以下 API:
- Cloud SQL Admin API
- Compute Engine API
- Cloud Build API
- Cloud Logging API
点击此按钮后,您还会启用 Google App Engine 柔性环境。
点击以下按钮打开 Cloud Shell,以通过命令行直接在浏览器中访问 Google Cloud 资源。 Cloud Shell 可用于运行本快速入门中介绍的
gcloud
命令。使用 Cloud Shell 运行以下
gcloud
命令:gcloud services enable appengineflex.googleapis.com sqladmin.googleapis.com \ compute.googleapis.com cloudbuild.googleapis.com logging.googleapis.com
此命令会启用以下 API:
- Cloud SQL Admin API
- Compute Engine API
- Cloud Build API
- Cloud Logging API
运行上述命令还会启用 Google App Engine 柔性环境。
设置 Cloud SQL
创建 Cloud SQL 实例
公共 IP
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 点击创建实例。
- 点击选择 PostgreSQL。
- 确保已选择企业 Plus 版作为实例的 Cloud SQL 版本。
- 在实例 ID 字段中,输入
quickstart-instance
。 - 在密码字段中,输入 postgres 用户的密码。保存此密码以供将来使用。
- 在选择区域和可用区的可用性部分中,选择单个可用区。
- 点击显示配置选项菜单。
- 展开机器配置节点。
- 在机器类型区域中,选择 4 个 vCPU、32 GB 类型。
- 点击创建实例,然后等待实例初始化并启动。
按照以下方式运行命令之前,请将 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 createquickstart-instance \ --database-version=POSTGRES_14 \ --cpu=1 \ --memory=4GB \ --region=us-central \ --root-password=DB_ROOT_PASSWORD
专用 IP
分配 IP 地址范围并创建专用连接,以便为 Cloud SQL 配置专用服务访问通道
-
在 Google Cloud 控制台中,转到 VPC 网络页面。
- 选择
default
VPC 网络。 - 选择专用服务连接标签页。
- 选择为服务分配的 IP 范围标签页。
- 点击分配 IP 范围。
- 对于已分配的范围的名称,请指定
google-managed-services-default
。 - 选择 IP 地址范围的自动选项,并将前缀长度指定为
16
。 - 点击分配以创建分配的范围。
- 选择
default
VPC 网络的连到服务的专用连接标签页。 - 点击创建连接以在您的网络与服务提供方之间创建专用连接。
- 对于指定的分配范围,请选择
google-managed-services-default
。 - 点击连接以创建连接。
创建具有专用 IP 地址且启用了 SSL 的实例
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 点击创建实例。
- 点击选择 PostgreSQL。
- 确保已选择企业 Plus 版作为实例的 Cloud SQL 版本。
- 在实例 ID 字段中,输入
quickstart-instance
。 - 在密码字段中,输入 postgres 用户的密码。保存此密码以供将来使用。
- 在选择区域和可用区的可用性部分中,选择单个可用区。
- 点击显示配置选项菜单。
- 展开机器配置节点。
- 在机器类型区域中,选择 4 个 vCPU、32 GB 类型。
- 展开连接节点。
- 取消选中公共 IP 复选框以创建仅使用专用 IP 地址的实例。
- 选中专用 IP 复选框。
- 从网络菜单中,选择默认。
- 点击创建实例,然后等待实例初始化并启动。
- 点击连接。
- 在安全性部分中,选择仅允许 SSL 连接以启用 SSL 连接。
- 在仅允许 SSL 连接对话框中,点击保存,然后等待实例重启。
分配 IP 地址范围并创建专用连接,以便为 Cloud SQL 配置专用服务访问通道
-
运行
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 -
运行
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 的实例
-
按照以下方式运行命令之前,请将 DB_ROOT_PASSWORD 替换为数据库用户的密码。
- --database-version:数据库引擎类型和版本。如果未指定,则使用 API 默认值。请参阅 gcloud 数据库版本文档,以查看当前可用版本。
- --cpu:机器中的核心数。
- --memory:指示机器要包括多少内存的整数。可以提供大小单位(例如 3072MB 或 9GB)。如果未指定单位,则假定为 GB。
- --region:实例的区域位置(例如 asia-east1、us-east1)。如果未指定,则使用默认值
us-central1
。 请参阅区域的完整列表。 运行
gcloud sql instances patch
命令来为实例启用仅允许 SSL 连接。
(可选)修改以下参数的值:
运行 gcloud
sql instances create
命令以创建具有专用 IP 地址的 Cloud SQL 实例。
gcloud sql instances createquickstart-instance \ --database-version=POSTGRES_14 \ --cpu=1 \ --memory=4GB \ --region=us-central \ --root-password=DB_ROOT_PASSWORD \ --no-assign-ip \ --network=default
gcloud sql instances patchquickstart-instance --require-ssl
创建数据库
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 选择
quickstart-instance
。 - 从 SQL 导航菜单中选择数据库。
- 点击创建数据库。
- 在新建数据库对话框的数据库名称字段中,输入
quickstart-db
。 - 点击创建。
运行 gcloud
sql databases create
命令以创建数据库。
gcloud sql databases createquickstart-db --instance=quickstart-instance
创建用户
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 选择您创建的 quickstart-instance PostgreSQL 实例。
- 从 SQL 导航菜单中选择用户。
- 点击添加用户账号。
- 在将一个用户账号添加到 quickstart-instance 页面中,添加以下信息:
- 在用户名字段中,输入
quickstart-user
。 - 在密码字段中,指定数据库用户的密码。 记下此密码,以便在本快速入门的后续步骤中使用。
- 在用户名字段中,输入
- 点击添加。
在运行以下命令之前,请先进行以下替换:
- 将 PASSWORD 替换为您的数据库用户密码。记下此密码,以便在本快速入门的后续步骤中使用。
运行 gcloud sql users create
命令以创建用户。
gcloud sql users createquickstart-user \ --instance=quickstart-instance \ --password=PASSWORD
Cloud SQL 和本地 PostgreSQL 的用户名长度限制一样。
将示例应用部署到 App Engine 柔性环境
创建 App Engine 应用
-
在 Google Cloud 控制台中,进入 App Engine 页面。
- 点击创建应用。
- 从选择区域下拉菜单中,选择 us-central。
- 点击下一步。
- 在开始使用页面下方,滚动到页面底部。
- 点击以后再执行此操作链接。
-
运行以下
gcloud app create
命令以创建 App Engine 应用: - 当系统提示您选择 App Engine 应用所在的区域时,请输入 us-central 的数字选项。
gcloud app create
配置 App Engine 服务账号
-
在 Google Cloud 控制台中,转到 IAM 页面。
- 对于名为 App Engine 默认服务账号的服务账号,点击铅笔图标。
- 点击添加其他角色。
- 添加名为 Cloud SQL Client 的角色。
- 点击保存。
-
运行以下
gcloud
命令以获取项目的服务账号列表:gcloud iam service-accounts list
- 复制 App Engine 服务账号的电子邮件地址。
- 运行以下命令,将 Cloud SQL Client 角色添加到 App Engine 服务账号:
gcloud projects add-iam-policy-binding
YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL " \ --role="roles/cloudsql.client"
为 Cloud SQL 配置和部署示例应用
现在您已创建了一个 Cloud SQL 实例和数据库,并且配置了 App Engine 服务账号,使其有权连接到 Cloud SQL,接下来,您可以配置和部署示例应用以连接到 Cloud SQL 实例。
公共 IP
对于公共 IP 路径,App Engine 柔性环境提供了加密功能。此方法使用 Unix 套接字和 Cloud SQL Auth 代理连接到 Cloud SQL 实例。-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor - 在在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
- 在 Cloud Shell 命令提示符中,运行以下命令以激活您的项目:
gcloud config set project
YOUR-PROJECT-ID - 如果看到为 Cloud Shell 提供授权 对话框,请点击授权。
- 在 Cloud Shell Editor 的 Explorer 导航菜单中,点击表示您 Google Cloud 账号的用户名的可展开节点。
- 找到并打开
cloudshell_open/golang-samples/cloudsql/postgres/database-sql/app.flexible.yaml
文件。 -
将
app.flexible.yaml
文件中的环境变量占位符替换为以下值: - 将 <PROJECT-ID> 替换为您的项目 ID。
- 将 <INSTANCE-REGION> 替换为
us-central1
。 - 将 <INSTANCE-NAME> 替换为
quickstart-instance
。 - 将 <YOUR_DB_USER_NAME> 替换为
quickstart-user
。 - 将 <YOUR_DB_PASSWORD> 替换为您在创建用户中创建的
quickstart-user
的密码。 - 将 <YOUR_DB_NAME> 替换为
quickstart-db
。 - 在 Cloud Shell 命令提示符处,在
cloudshell_open/golang-samples/cloudsql/postgres/database-sql
目录中运行以下gcloud app deploy
命令以将示例应用部署到 App Engine 柔性环境。 - 当系统提示“要继续吗?”时,输入
Y
。 - 在通过运行
gcloud app deploy
命令来执行的操作完成后,运行gcloud app browse
命令: - 点击生成的链接以查看在 App Engine 柔性环境中运行的示例应用。此环境已连接到 Cloud SQL。
gcloud app deploy app.flexible.yaml
gcloud app browse
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor - 在在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
- 在 Cloud Shell 命令提示符中,运行以下命令以激活您的项目:
gcloud config set project
YOUR-PROJECT-ID - 如果看到为 Cloud Shell 提供授权 对话框,请点击授权。
- 在 Cloud Shell Editor 的 Explorer 导航菜单中,点击表示您 Google Cloud 账号的用户名的可展开节点。
- 找到并打开
cloudshell_open/java-docs-samples/cloud-sql/postgres/servlet/src/main/webapp/WEB-INF/appengine-web.xml
文件。 -
将
appengine-web.xml
文件中的环境变量占位符替换为以下值: - 将 my-project:区域:instance 替换为实例的连接名称,该名称显示在 Google Cloud 控制台的 Cloud SQL 实例页面上。
- 将 my-db-user 替换为
quickstart-user
。 - 将 my-db-password 替换为您在创建用户中创建的
quickstart-user
的密码。 - 将 my_db 替换为
quickstart-db
。 - 在 Cloud Shell 命令提示符处,在
cloudshell_open/java-docs-samples/cloud-sql/postgres/servlet
目录中运行以下 Apache Mavenmvn clean package
命令以将示例应用部署到 App Engine 柔性环境。 - 当系统提示“要继续吗?”时,输入
Y
。 - 在通过运行
gcloud app deploy
命令来执行的操作完成后,运行gcloud app browse
命令: - 点击生成的链接以查看在 App Engine 柔性环境中运行的示例应用。此环境已连接到 Cloud SQL。
mvn clean package appengine:deploy -DskipTests
gcloud app browse
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor - 在在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
- 在 Cloud Shell 命令提示符中,运行以下命令以激活您的项目:
gcloud config set project
YOUR-PROJECT-ID - 如果看到为 Cloud Shell 提供授权 对话框,请点击授权。
- 在 Cloud Shell Editor 的 Explorer 导航菜单中,点击表示您 Google Cloud 账号的用户名的可展开节点。
- 找到并打开
cloudshell_open/nodejs-docs-samples/cloud-sql/postgres/knex/app.flexible.yaml
文件。 -
将
app.flexible.yaml
文件中的环境变量占位符替换为以下值: - 将 <MY-PROJECT> 替换为您的项目 ID。
- 将 <INSTANCE-REGION> 替换为
us-central1
。 - 将 <INSTANCE-NAME> 替换为
quickstart-instance
。 - 将 MY_DB_USER 替换为
quickstart-user
。 - 将 MY_DB_PASSWORD 替换为您在创建用户中创建的
quickstart-user
的密码。 - 将 MY_DATABASE 替换为
quickstart-db
。 - 在 Cloud Shell 命令提示符处,在
cloudshell_open/nodejs-docs-samples/cloud-sql/postgres/knex
目录中运行以下gcloud app deploy
命令以将示例应用部署到 App Engine 柔性环境。 - 当系统提示“要继续吗?”时,输入
Y
。 - 在通过运行
gcloud app deploy
命令来执行的操作完成后,运行gcloud app browse
命令: - 点击生成的链接以查看在 App Engine 柔性环境中运行的示例应用。此环境已连接到 Cloud SQL。
gcloud app deploy app.flexible.yaml
gcloud app browse
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor - 在在 Cloud Shell 中打开对话框中,点击确认下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
- 在 Cloud Shell 命令提示符中,运行以下命令以激活您的项目:
gcloud config set project
YOUR-PROJECT-ID - 如果看到为 Cloud Shell 提供授权 对话框,请点击授权。
- 在 Cloud Shell Editor 的 Explorer 导航菜单中,点击表示您 Google Cloud 账号的用户名的可展开节点。
- 找到并打开
cloudshell_open/python-docs-samples/cloud-sql/postgres/sqlalchemy/app.flexible.yaml
文件。 -
将
app.flexible.yaml
文件中的环境变量占位符替换为以下值: - 将 <PROJECT-ID> 替换为您的项目 ID。
- 将 <INSTANCE-REGION> 替换为
us-central1
。 - 将 <INSTANCE-NAME> 替换为
quickstart-instance
。 - 将 <YOUR_DB_USER_NAME> 替换为
quickstart-user
。 - 将 <YOUR_DB_PASSWORD> 替换为您在创建用户中创建的
quickstart-user
的密码。 - 将 <YOUR_DB_NAME> 替换为
quickstart-db
。 - 在 Cloud Shell 命令提示符处,在
cloudshell_open/python-docs-samples/cloud-sql/postgres/sqlalchemy
目录中运行以下gcloud app deploy
命令以将示例应用部署到 App Engine 柔性环境。 - 当系统提示“要继续吗?”时,输入
Y
。 - 在通过运行
gcloud app deploy
命令来执行的操作完成后,运行gcloud app browse
命令: - 点击生成的链接以查看在 App Engine 柔性环境中运行的示例应用。此环境已连接到 Cloud SQL。
gcloud app deploy app.flexible.yaml
gcloud app browse
专用 IP
对于专用 IP 路径,请确保 App Engine 柔性环境虚拟机和 Cloud SQL 实例托管在同一 Virtual Private Cloud (VPC) 网络上。位于同一 VPC 网络上时,App Engine 柔性环境应用可以直接连接到 Cloud SQL 实例,而无需使用 Cloud SQL Auth 代理。创建和下载 SSL 服务器和客户端证书
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 点击
quickstart-instance
以查看其概览页面 - 点击连接标签页。
- 在安全部分下,点击创建客户端证书。
- 在创建客户端证书对话框中,输入
quickstart-key
作为名称,然后点击创建。 在已创建新的 SSL 证书对话框中,点击每个下载链接以下载证书。然后,点击关闭。
构建使用 SSL 证书的示例应用
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor - 在在 Cloud Shell 中打开对话框中,点击确认以下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
- 在 Cloud Shell 命令提示符中,运行以下命令以激活您的项目:
gcloud config set project
YOUR-PROJECT-ID - 如果系统显示为 Cloud Shell 提供授权对话框,请点击授权。
-
将 SSL 证书文件上传到 certs 文件夹。
- 从 Cloud Shell Editor 的 Explorer 导航菜单中,找到
golang-samples/cloudsql/postgres/database-sql/certs
文件夹。 - 在 Cloud Shell Editor 中右键点击 certs 文件夹,然后选择上传文件。
- 在本地机器上选择以下文件:
client-key.pem
client-cert.pem
server-ca.pem
- 选择三个 SSL 证书文件后,点击打开以完成将文件上传到 Cloud Shell Editor 的过程。
- 从 Cloud Shell Editor 的 Explorer 导航菜单中,找到
- 在 Cloud Shell Editor 的 Explorer 导航菜单中,点击表示您 Google Cloud 账号的用户名的可展开节点。
- 找到并打开
cloudshell_open/golang-samples/cloudsql/postgres/database-sql/app.flexible.yaml
文件。 - 复制以下代码并粘贴到文件中,并替换现有文件内容:
- 进行以下变量替换:
- 将 YOUR_DB_PASSWORD 替换为您在创建用户中创建的
quickstart-user
的密码。 - 将 INSTANCE_HOST 替换为实例的专用 IP 地址,该 IP 地址显示在 Google Cloud 控制台中的 Cloud SQL 实例页面上。
- 将 PROJECT_ID 替换为您的项目 ID。
- 在 Cloud Shell 命令提示符处,在
cloudshell_open/golang-samples/cloudsql/postgres/database-sql
目录中运行以下gcloud app deploy
命令以将示例应用部署到 App Engine 柔性环境。 - 当系统提示“要继续吗?”时,输入
Y
。 - 在通过运行
gcloud app deploy
命令来执行的操作完成后,运行gcloud app browse
命令: - 点击生成的链接以查看在 App Engine 柔性环境中运行的示例应用。此环境已连接到 Cloud SQL。
runtime: custom env: flex env_variables: DB_USER: quickstart-user DB_PASS:YOUR_DB_PASSWORD DB_NAME: quickstart-db DB_PORT: 3306 INSTANCE_HOST:INSTANCE_HOST DB_ROOT_CERT: certs/server-ca.pem DB_CERT: certs/client-cert.pem DB_KEY: certs/client-key.pem PRIVATE_IP: TRUE vpc_access_connector: name: projects/PROJECT_ID /locations/us-central1/connectors/quickstart-connector
gcloud app deploy app.flexible.yaml
gcloud app browse
创建和下载 SSL 服务器和客户端证书
对于 Java 用户,该连接器已提供一个安全连接,因此无需创建和下载 SSL 服务器和客户端证书。
构建示例应用
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor - 在在 Cloud Shell 中打开对话框中,点击确认以下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
- 在 Cloud Shell 命令提示符中,运行以下命令以激活您的项目:
gcloud config set project
YOUR-PROJECT-ID - 如果系统显示为 Cloud Shell 提供授权对话框,请点击授权。
- 在 Cloud Shell Editor 的 Explorer 导航菜单中,点击表示您 Google Cloud 账号的用户名的可展开节点。
- 找到并打开
cloudshell_open/java-docs-samples/cloud-sql/postgres/servlet/src/main/webapp/WEB-INF/appengine-web.xml
文件。 -
复制以下代码并粘贴到
appengine-web.xml
文件中,并替换现有文件内容: - 进行以下变量替换:
- 将 project-name:区域-name:instance-name 替换为实例的连接名称,该名称显示在 Google Cloud 控制台的 Cloud SQL 实例页面上。
- 将 my-db-password 替换为您在创建用户中创建的
quickstart-user
的密码。 - 将 PROJECT_ID 替换为您的项目 ID。
- 在 Cloud Shell 命令提示符处,在
cloudshell_open/java-docs-samples/cloud-sql/postgres/servlet
目录中运行以下 Apache Mavenmvn clean package
命令以将示例应用部署到 App Engine 柔性环境。 - 当系统提示“要继续吗?”时,输入
Y
。 - 在通过运行
gcloud app deploy
命令来执行的操作完成后,运行gcloud app browse
命令: - 点击生成的链接以查看在 App Engine 柔性环境中运行的示例应用。此环境已连接到 Cloud SQL。
<runtime>java17</runtime> <env-variables> <env-var name="INSTANCE_CONNECTION_NAME" value="project-name:region-name:instance-name " /> <env-var name="DB_PORT" value="5432" /> <env-var name="DB_USER" value="quickstart-user" /> <env-var name="DB_PASS" value="my-db-password " /> <env-var name="DB_NAME" value="quickstart-db" /> </env-variables> <vpc-access-connector> <name>projects/PROJECT_ID /locations/us-central1/connectors/quickstart-connector</name> <egress-setting>all-traffic</egress-setting> </vpc-access-connector>
mvn clean package appengine:deploy -DskipTests
gcloud app browse
创建和下载 SSL 服务器和客户端证书
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 点击
quickstart-instance
以查看其概览页面 - 点击连接标签页。
- 在安全部分下,点击创建客户端证书。
- 在创建客户端证书对话框中,输入
quickstart-key
作为名称,然后点击创建。 在已创建新的 SSL 证书对话框中,点击每个下载链接以下载证书。然后,点击关闭。
构建使用 SSL 证书的示例应用
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor - 在在 Cloud Shell 中打开对话框中,点击确认以下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
- 在 Cloud Shell 命令提示符中,运行以下命令以激活您的项目:
gcloud config set project
YOUR-PROJECT-ID - 如果系统显示为 Cloud Shell 提供授权对话框,请点击授权。
-
将 SSL 证书文件上传到 certs 文件夹。
- 从 Cloud Shell Editor 的 Explorer 导航菜单中,找到
nodejs-docs-samples/cloud-sql/postgres/knex/certs
文件夹。 - 在 Cloud Shell Editor 中右键点击 certs 文件夹,然后选择上传文件。
- 在本地机器上选择以下文件:
client-key.pem
client-cert.pem
server-ca.pem
- 选择三个 SSL 证书文件后,点击打开以完成将文件上传到 Cloud Shell Editor 的过程。
- 从 Cloud Shell Editor 的 Explorer 导航菜单中,找到
- 在 Cloud Shell Editor 的 Explorer 导航菜单中,点击表示您 Google Cloud 账号的用户名的可展开节点。
- 找到并打开
cloudshell_open/nodejs-docs-samples/cloud-sql/postgres/knex/app.flexible.yaml
文件。 - 复制以下代码并粘贴到文件中,并替换现有文件内容:
- 进行以下变量替换:
- 将 MY_DB_PASSWORD 替换为您在创建用户中创建的
quickstart-user
的密码。 - 将 INSTANCE_HOST 替换为实例的专用 IP 地址,该 IP 地址显示在 Google Cloud 控制台中的 Cloud SQL 实例页面上。
- 将 PROJECT_ID 替换为您的项目 ID。
- 在 Cloud Shell 命令提示符处,在
cloudshell_open/nodejs-docs-samples/cloud-sql/postgres/knex
目录中运行以下gcloud app deploy
命令以将示例应用部署到 App Engine 柔性环境。 - 当系统提示“要继续吗?”时,输入
Y
。 - 在通过运行
gcloud app deploy
命令来执行的操作完成后,运行gcloud app browse
命令: - 点击生成的链接以查看在 App Engine 柔性环境中运行的示例应用。此环境已连接到 Cloud SQL。
runtime: nodejs env: flex env_variables: DB_USER: quickstart-user DB_PASS:MY_DB_PASSWORD DB_NAME: quickstart-db DB_PORT: 5432 INSTANCE_HOST:INSTANCE_HOST DB_ROOT_CERT: certs/server-ca.pem DB_CERT: certs/client-cert.pem DB_KEY: certs/client-key.pem PRIVATE_IP: TRUE vpc_access_connector: name: projects/PROJECT_ID /locations/us-central1/connectors/quickstart-connector
gcloud app deploy app.flexible.yaml
gcloud app browse
创建和下载 SSL 服务器和客户端证书
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 点击
quickstart-instance
以查看其概览页面 - 点击连接标签页。
- 在安全部分下,点击创建客户端证书。
- 在创建客户端证书对话框中,输入
quickstart-key
作为名称,然后点击创建。 在已创建新的 SSL 证书对话框中,点击每个下载链接以下载证书。然后,点击关闭。
构建使用 SSL 证书的示例应用
-
在 Cloud Shell Editor 中,打开示例应用的源代码。
打开 Cloud Shell Editor - 在在 Cloud Shell 中打开对话框中,点击确认以下载示例应用代码,然后在 Cloud Shell Editor 中打开示例应用目录。
- 在 Cloud Shell 命令提示符中,运行以下命令以激活您的项目:
gcloud config set project
YOUR-PROJECT-ID - 如果系统显示为 Cloud Shell 提供授权对话框,请点击授权。
-
将 SSL 证书文件上传到 certs 文件夹。
- 从 Cloud Shell Editor 的 Explorer 导航菜单中,找到
python-docs-samples/cloud-sql/postgres/sqlalchemy/certs
文件夹。 - 在 Cloud Shell Editor 中右键点击 certs 文件夹,然后选择上传文件。
- 在本地机器上选择以下文件:
client-key.pem
client-cert.pem
server-ca.pem
- 选择三个 SSL 证书文件后,点击打开以完成将文件上传到 Cloud Shell Editor 的过程。
- 从 Cloud Shell Editor 的 Explorer 导航菜单中,找到
- 在 Cloud Shell Editor 的 Explorer 导航菜单中,点击表示您 Google Cloud 账号的用户名的可展开节点。
- 找到并打开
cloudshell_open/python-docs-samples/cloud-sql/postgres/sqlalchemy/app.flexible.yaml
文件。 - 复制以下代码并粘贴到文件中,并替换现有文件内容:
- 进行以下变量替换:
- 将 YOUR_DB_PASSWORD 替换为您在创建用户中创建的
quickstart-user
的密码。 - 将 INSTANCE_HOST 替换为实例的专用 IP 地址,该 IP 地址显示在 Google Cloud 控制台中的 Cloud SQL 实例页面上。
- 将 PROJECT_ID 替换为您的项目 ID。
- 在 Cloud Shell 命令提示符处,在
cloudshell_open/python-docs-samples/cloud-sql/postgres/sqlalchemy
目录中运行以下gcloud app deploy
命令以将示例应用部署到 App Engine 柔性环境。 - 当系统提示“要继续吗?”时,输入
Y
。 - 在通过运行
gcloud app deploy
命令来执行的操作完成后,运行gcloud app browse
命令: - 点击生成的链接以查看在 App Engine 柔性环境中运行的示例应用。此环境已连接到 Cloud SQL。
runtime: custom env: flex entrypoint: gunicorn -b :$PORT app:appentrypoint: gunicorn -b :$PORT app:app env_variables: DB_USER: quickstart-user DB_PASS:YOUR_DB_PASSWORD DB_NAME: quickstart-db DB_PORT: 5432 INSTANCE_HOST:INSTANCE_HOST DB_ROOT_CERT: certs/server-ca.pem DB_CERT: certs/client-cert.pem DB_KEY: certs/client-key.pem PRIVATE_IP: TRUE vpc_access_connector: name: projects/PROJECT_ID /locations/us-central1/connectors/quickstart-connector
gcloud app deploy app.flexible.yaml
gcloud app browse
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 选择
quickstart-instance
实例以打开实例详情页面。 - 在页面顶部的图标栏中,点击删除。
- 在删除实例对话框中,输入
quickstart-instance
,然后点击删除以删除该实例。 停用应用会阻止应用运行实例和处理请求。如果应用正在处理请求,则会在停用之前完成请求。
如需停用 App Engine 应用并保留其数据,请执行以下操作:
在 Google Cloud 控制台中,转到设置页面:
在应用设置标签页中,点击停用应用。
在应用 ID 字段中,输入要停用的应用的 ID,然后点击停用。
可选的清理步骤
如果您未使用分配给 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 实例: