從 Cloud Run 連線至 MySQL 適用的 Cloud SQL

瞭解如何透過 Google Cloud 控制台和用戶端應用程式,在 Cloud Run 上部署連結至 MySQL 執行個體的範例應用程式。

假設您及時完成所有步驟,這項快速入門導覽課程建立的資源通常不到一美元。


如要直接在 Google Cloud 控制台按照逐步指南操作,請按一下「Guide me」(逐步引導)

逐步引導


事前準備

  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 上執行 Cloud SQL 範例應用程式所需的 Cloud API。
    控制台gcloud

    按一下「Enable APIs」(啟用 API),啟用本快速入門所需的 API。

    啟用 API

    這會啟用下列 API:

    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
    • Service Networking API

    按一下下列按鈕開啟 Cloud Shell,直接在瀏覽器中使用指令列存取 Google Cloud 資源。您可以使用 Cloud Shell 執行本快速入門導覽課程中的 gcloud 指令。

    開啟 Cloud Shell

    使用 Cloud Shell 執行下列 gcloud 指令:

    gcloud services enable compute.googleapis.com sqladmin.googleapis.com run.googleapis.com \
    containerregistry.googleapis.com cloudbuild.googleapis.com servicenetworking.googleapis.com

    這個指令會啟用下列 API:

    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
    • Service Networking API

設定 Cloud SQL

建立 Cloud SQL 執行個體

公開 IP

控制台gcloud
  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 點選「建立執行個體」
  3. 按一下「Choose MySQL」(選擇 MySQL)
  4. 請確認執行個體的 Cloud SQL 版本為「Enterprise Plus」
  5. 在「Instance ID」(執行個體 ID) 欄位中輸入 quickstart-instance
  6. 在「Password」(密碼) 欄位中,輸入超級使用者的密碼。請儲存這個密碼,以供日後使用。
  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
控制台gcloud

分配 IP 位址範圍並建立私人連線,以便設定 Cloud SQL 的私人服務存取權

  1. 在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 選取 default 虛擬私有雲網路。
  3. 選取 [Private service connection] (私人服務連線) 分頁標籤。
  4. 選取「Allocated IP ranges for services」(已分配的服務 IP 範圍) 分頁標籤。
  5. 按一下「Allocate IP range」(分配 IP 範圍)
  6. 為分配範圍的「Name」(名稱) 指定 google-managed-services-default
  7. 選取 IP 範圍的「自動」選項,並將前置字串長度指定為 16
  8. 按一下 [Allocate] (分配),建立已分配範圍。
  9. 選取 default 虛擬私有雲網路的「Private connections to services」(私人服務連線) 分頁。
  10. 按一下「建立連線」,在網路與服務生產端之間建立私人連線。
  11. 在「已指派的分配範圍」部分,選取「google-managed-services-default」。
  12. 按一下 [Connect] (連線) 建立連線。

建立啟用 SSL 的私人 IP 位址執行個體

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 點選「建立執行個體」
  3. 按一下「Choose MySQL」(選擇 MySQL)
  4. 請確認執行個體的 Cloud SQL 版本為「Enterprise Plus」
  5. 在「Instance ID」(執行個體 ID) 欄位中輸入 quickstart-instance
  6. 在「Password」(密碼) 欄位中,輸入超級使用者的密碼。請儲存這個密碼,以供日後使用。
  7. 在「選擇區域和可用區供應情形」部分,選取「單一可用區」
  8. 按一下「顯示設定選項」選單。
  9. 展開「機器設定」節點。
  10. 在「機器類型」區域中,選取「4 個 vCPU,32 GB」類型。
  11. 展開「連線」節點。
  12. 取消勾選「公開 IP」核取方塊,即可建立只有私人 IP 位址的執行個體。
  13. 勾選「Private IP」(私人 IP) 核取方塊。
  14. 從「Network」(網路) 選單中,選取「default」(預設)
  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

建立啟用 SSL 的私人 IP 位址執行個體

  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

建立資料庫

控制台gcloud
  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 選取「quickstart-instance」。
  3. 在 SQL 導覽選單中,選取「資料庫」
  4. 按一下 [Create database] (建立資料庫)。
    1. 在「Create a database」(建立資料庫) 對話方塊的「Database name」(資料庫名稱) 欄位中,輸入 quickstart-db。保留字元集和定序的值。
    2. 點選「建立」

執行 gcloud sql databases create 指令來建立資料庫。

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

新增使用者

控制台gcloud
  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中選取「使用者」
  4. 按一下「新增使用者帳戶」
    • 在「Add a user account to instance instance_name」(在執行個體「instance_name」中新增使用者帳戶) 頁面中, 新增下列資訊:
      • 使用者名稱:設為 quickstart-user
      • 密碼:指定資料庫使用者的密碼。 請記下這個值,本快速入門導覽課程的後續步驟會用到。
      • 在「主機名稱」部分,預設為「允許任何主機」,表示使用者可以從任何 IP 位址連線。

        (選用) 選取「依 IP 位址或位址範圍限制主機」, 然後在「主機」部分輸入 IP 位址或位址範圍。 使用者只能從指定的 IP 位址或位址連線。

  5. 按一下「新增」

執行下列指令前,請先進行下列替換:

  1. PASSWORD,並提供資料庫使用者的密碼。 請記下這個值,本快速入門導覽課程的後續步驟會用到。

執行 gcloud sql users create 指令來建立使用者。

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

Cloud SQL 的使用者名稱長度限制與地端 MySQL 相同:MySQL 8.0 以上版本為 32 個字元,舊版則為 16 個字元。

將範例應用程式部署至 Cloud Run

設定 Cloud Run 服務帳戶

設定 Cloud Run 使用的服務帳戶,使其具備「Cloud SQL 用戶端」角色,並擁有連線至 Cloud SQL 的權限。
控制台gcloud
  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」(Cloud SQL 用戶端) 角色新增至 Compute Engine 服務帳戶
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/cloudsql.client"

設定 Cloud SQL 範例應用程式

有了 Cloud SQL 執行個體、資料庫和具備用戶端權限的服務帳戶,您現在可以設定範例應用程式,連線至 Cloud SQL 執行個體。

公開 IP

如果是公開 IP 路徑,Cloud Run 會提供加密功能,並透過 Unix Socket 使用 Cloud SQL Auth Proxy 建立連線。
GoJavaNode.jsPython
  1. 在 Cloud Shell 編輯器中開啟範例應用程式的原始碼。

    開啟 Cloud Shell 編輯器
  2. 在「Open in Cloud Shell」(在 Cloud Shell 中開啟) 對話方塊中,按一下「Confirm」(確認),下載範例應用程式程式碼,並在 Cloud Shell 編輯器中開啟範例應用程式目錄。
  3. 在 Cloud Shell 中執行下列指令,建構 Docker 容器並發布至 Container Registry。 請將 YOUR_PROJECT_ID 改成您的專案 ID。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql
  1. 在 Cloud Shell 編輯器中開啟範例應用程式的原始碼。

    開啟 Cloud Shell 編輯器

  2. 在「Open in Cloud Shell」(在 Cloud Shell 中開啟) 對話方塊中,按一下「Confirm」(確認),下載範例應用程式程式碼,並在 Cloud Shell 編輯器中開啟範例應用程式目錄。
  3. 在 Cloud Shell 中執行下列指令,建構 Docker 容器並發布至 Container Registry。 請將 YOUR_PROJECT_ID 改成專案的專案 ID。
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
     -Dimage=gcr.io/YOUR_PROJECT_ID/run-sql -DskipTests
  1. 在 Cloud Shell 編輯器中開啟範例應用程式的原始碼。

    開啟 Cloud Shell 編輯器

  2. 在「Open in Cloud Shell」(在 Cloud Shell 中開啟) 對話方塊中,按一下「Confirm」(確認),下載範例應用程式程式碼,並在 Cloud Shell 編輯器中開啟範例應用程式目錄。
  3. 在 Cloud Shell 中執行下列指令,建構 Docker 容器並發布至 Container Registry。 請將 YOUR_PROJECT_ID 改成專案的專案 ID。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql
  1. 在 Cloud Shell 編輯器中開啟範例應用程式的原始碼。
    開啟 Cloud Shell 編輯器
  2. 在「Open in Cloud Shell」(在 Cloud Shell 中開啟) 對話方塊中,按一下「Confirm」(確認),下載範例應用程式程式碼,並在 Cloud Shell 編輯器中開啟範例應用程式目錄。
  3. 在 Cloud Shell 中執行下列指令,建構 Docker 容器並發布至 Container Registry。 請將 YOUR_PROJECT_ID 改成專案的專案 ID。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql
如果是私人 IP 路徑,應用程式會透過無伺服器虛擬私有雲端存取,直接連線至執行個體。這個方法會使用 TCP Socket 直接連線至 Cloud SQL 執行個體,不需使用 Cloud SQL Auth Proxy。
GoJavaNode.jsPython

建立及下載 SSL 伺服器和用戶端憑證

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 按一下 quickstart-instance 即可查看「總覽」頁面
  3. 按一下「連結」分頁標籤。
  4. 在「安全性」部分下方,按一下「建立用戶端憑證」
  5. 在「Create a client certificate」(建立用戶端憑證) 對話方塊中,輸入 quickstart-key 做為名稱,然後按一下「Create」(建立)
  6. 在「New SSL certificate created」(已建立新的 SSL 憑證) 對話方塊中,按一下每個下載連結即可下載憑證。然後按一下「關閉」

建立無伺服器虛擬私有雲連線,透過私人 IP 連線至執行個體

  1. 在 Google Cloud 控制台中,前往「無伺服器虛擬私有雲存取」-「建立連接器」頁面。

    建立無伺服器虛擬私有雲連接器

  2. 輸入 quickstart-connector 做為名稱
  3. 從「網路」下拉式選單中選取「預設」
  4. 從「子網路」下拉式選單中選取「自訂 IP 範圍」
  5. 在「IP 範圍」輸入方塊中輸入 10.8.0.0
  6. 按一下「建立」來建立連接器。

使用 SSL 憑證建構範例應用程式

  1. 在 Cloud Shell 編輯器中開啟範例應用程式的原始碼。

    開啟 Cloud Shell 編輯器
  2. Open in Cloud Shell 對話方塊中,按一下「確認」,下載範例應用程式程式碼,並在 Cloud Shell 編輯器中開啟範例應用程式目錄。
  3. 將 SSL 憑證檔案上傳至 certs 資料夾。
    1. 在 Cloud Shell 編輯器中,對「certs」資料夾按一下滑鼠右鍵,然後選取「Upload Files」
    2. 在本機電腦上選取下列檔案:
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 選取這三個 SSL 憑證檔案,然後按一下「開啟」,完成將檔案上傳至 Cloud Shell 編輯器的程序。
  4. 在 Cloud Shell 中執行下列指令,建構 Docker 容器並發布至 Container Registry。 請將 YOUR_PROJECT_ID 改成您的專案 ID。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql

建立及下載 SSL 伺服器和用戶端憑證

Java 使用者可直接透過連接器建立安全連線,因此不必建立及下載 SSL 伺服器和用戶端憑證。

建立無伺服器虛擬私有雲連線,透過私人 IP 連線至執行個體

  1. 在 Google Cloud 控制台中,前往「無伺服器虛擬私有雲存取」-「建立連接器」頁面。

    建立無伺服器虛擬私有雲連接器

  2. 輸入 quickstart-connector 做為名稱
  3. 從「網路」下拉式選單中選取「預設」
  4. 從「子網路」下拉式選單中選取「自訂 IP 範圍」
  5. 在「IP 範圍」輸入方塊中輸入 10.8.0.0
  6. 按一下「建立」來建立連接器。

建構範例應用程式

  1. 在 Cloud Shell 編輯器中開啟範例應用程式的原始碼。
    開啟 Cloud Shell 編輯器
  2. 在「Open in Cloud Shell」(在 Cloud Shell 中開啟) 對話方塊中,按一下「Confirm」(確認),下載範例應用程式程式碼,並在 Cloud Shell 編輯器中開啟範例應用程式目錄。
  3. 在 Cloud Shell 中執行下列指令,建構 Docker 容器並發布至 Container Registry。 請將 YOUR_PROJECT_ID 改成專案的專案 ID。
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
     -Dimage=gcr.io/YOUR_PROJECT_ID/run-sql -DskipTests

建立及下載 SSL 伺服器和用戶端憑證

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 按一下 quickstart-instance 即可查看「總覽」頁面
  3. 按一下「連結」分頁標籤。
  4. 在「安全性」部分下方,按一下「建立用戶端憑證」
  5. 在「Create a client certificate」(建立用戶端憑證) 對話方塊中,輸入 quickstart-key 做為名稱,然後按一下「Create」(建立)
  6. 在「New SSL certificate created」(已建立新的 SSL 憑證) 對話方塊中,按一下每個下載連結即可下載憑證。然後按一下「關閉」

建立無伺服器虛擬私有雲連線,透過私人 IP 連線至執行個體

  1. 在 Google Cloud 控制台中,前往「無伺服器虛擬私有雲存取」-「建立連接器」頁面。

    建立無伺服器虛擬私有雲連接器

  2. 輸入 quickstart-connector 做為名稱
  3. 從「網路」下拉式選單中選取「預設」
  4. 從「子網路」下拉式選單中選取「自訂 IP 範圍」
  5. 在「IP 範圍」輸入方塊中輸入 10.8.0.0
  6. 按一下「建立」來建立連接器。

使用 SSL 憑證建構範例應用程式

  1. 在 Cloud Shell 編輯器中開啟範例應用程式的原始碼。
    開啟 Cloud Shell 編輯器
  2. 在「Open in Cloud Shell」(在 Cloud Shell 中開啟) 對話方塊中,按一下「Confirm」(確認),下載範例應用程式程式碼,並在 Cloud Shell 編輯器中開啟範例應用程式目錄。
  3. 將 SSL 憑證檔案上傳至 certs 資料夾。
    1. 在 Cloud Shell 編輯器中,對「certs」資料夾按一下滑鼠右鍵,然後選取「Upload Files」
    2. 在本機電腦上選取下列檔案:
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 選取這三個 SSL 憑證檔案,然後按一下「開啟」,完成將檔案上傳至 Cloud Shell 編輯器的程序。
  4. 在 Cloud Shell 中執行下列指令,建構 Docker 容器並發布至 Container Registry。 請將 YOUR_PROJECT_ID 改成專案的專案 ID。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql

建立及下載 SSL 伺服器和用戶端憑證

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 按一下 quickstart-instance 即可查看「總覽」頁面
  3. 按一下「連結」分頁標籤。
  4. 在「安全性」部分下方,按一下「建立用戶端憑證」
  5. 在「Create a client certificate」(建立用戶端憑證) 對話方塊中,輸入 quickstart-key 做為名稱,然後按一下「Create」(建立)
  6. 在「New SSL certificate created」(已建立新的 SSL 憑證) 對話方塊中,按一下每個下載連結即可下載憑證。然後按一下「關閉」

建立無伺服器虛擬私有雲連線,透過私人 IP 連線至執行個體

  1. 在 Google Cloud 控制台中,前往「無伺服器虛擬私有雲存取」-「建立連接器」頁面。

    建立無伺服器虛擬私有雲連接器

  2. 輸入 quickstart-connector 做為名稱
  3. 從「網路」下拉式選單中選取「預設」
  4. 從「子網路」下拉式選單中選取「自訂 IP 範圍」
  5. 在「IP 範圍」輸入方塊中輸入 10.8.0.0
  6. 按一下「建立」來建立連接器。

使用 SSL 憑證建構範例應用程式

  1. 在 Cloud Shell 編輯器中開啟範例應用程式的原始碼。
    開啟 Cloud Shell 編輯器
  2. 在「Open in Cloud Shell」(在 Cloud Shell 中開啟) 對話方塊中,按一下「Confirm」(確認),下載範例應用程式程式碼,並在 Cloud Shell 編輯器中開啟範例應用程式目錄。
  3. 將 SSL 憑證檔案上傳至 certs 資料夾。
    1. 在 Cloud Shell 編輯器中,對「certs」資料夾按一下滑鼠右鍵,然後選取「Upload Files」
    2. 在本機電腦上選取下列檔案:
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 選取這三個 SSL 憑證檔案,然後按一下「開啟」,完成將檔案上傳至 Cloud Shell 編輯器的程序。
  4. 在 Cloud Shell 中執行下列指令,建構 Docker 容器並發布至 Container Registry。 請將 YOUR_PROJECT_ID 改成專案的專案 ID。
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql

部署範例應用程式

將範例部署至 Cloud Run 的步驟,取決於您指派給 Cloud SQL 執行個體的 IP 位址類型。

圖片連結方法會因設定的環境變數而異。

  • 如要使用 TCP 連線,請設定 INSTANCE_HOST 環境變數的值。這個連線方法會採用以環境變數形式設定的憑證和通訊埠
  • 如要使用 Unix Socket 連線,請設定 INSTANCE_UNIX_SOCKET 環境變數的值。

    請勿設定 INSTANCE_HOST 環境變數的值。

    Java 本身不支援 Unix Socket。如果應用程式是以 Java 編寫,則必須使用 Cloud SQL Java 連接器。

  • 如要使用其中一個 Cloud SQL 語言連接器連線,請設定 INSTANCE_CONNECTION_NAME DB_IAM_HOST 環境變數的值。

    請勿為下列環境變數設定值:

    • INSTANCE_HOST
    • INSTANCE_UNIX_SOCKET
    • DB_PORT
    • DB_ROOT_CERT
    • DB_CERT
    • DB_KEY
    由於連接器已使用 Cloud SQL 驗證 Proxy 伺服器提供安全連線,因此不會使用這些值, 該伺服器會在通訊埠 3307 上建立與 Cloud SQL 的連線。

公開 IP

控制台gcloud
  1. 前往 Google Cloud 控制台的「Cloud Run」頁面。

    前往 Cloud Run

  2. 按一下「建立容器」,然後選取「服務」,顯示「建立服務」表單。

  3. 按一下「容器映像檔網址」輸入欄位中的「選取」按鈕。
    1. 選取您在上一個步驟中建立的 gcr.io/YOUR_PROJECT_ID/run-sql 容器映像檔。
  4. 輸入 quickstart-service 做為服務名稱
  5. 在「驗證」部分中,選取 Allow unauthenticated invocations 選項。如果您沒有權限 (Cloud Run 管理員角色) 可選取這個選項,服務會部署並要求驗證。
  6. 展開「Container, Variables & Secrets, Connections, Security」(容器、變數和密鑰、連線、安全性) 專區。
  7. 點選「環境變數」下方的「新增變數」,建立下列 Environment variables。 按照下列方式設定環境變數的值:
    • INSTANCE_UNIX_SOCKET:設為 /cloudsql/YOUR_PROJECT_ID:us-central1:quickstart-instance
    • INSTANCE_CONNECTION_NAME:設為執行個體的「連線名稱」,該名稱會顯示在 Google Cloud 控制台的「Cloud SQL 執行個體」頁面上。
    • DB_NAME:設為 quickstart-db
    • DB_USER:設為 quickstart-user
    • DB_PASS:設為您在先前的「建立使用者」快速入門步驟中指定的 quickstart-user 密碼。
  8. 啟用連線至 Cloud SQL:

    • 按一下「連結」分頁標籤。
    • 按一下「Cloud SQL connections」(Cloud SQL 連線) 區段下方的「Add Connection」(新增連線) 按鈕。
    • 從下拉式選單中選取先前建立的 quickstart-instance

    新增 Cloud SQL 連線

  9. 如要建立 Cloud Run 服務,請按一下「建立」

  10. Cloud Run 服務部署完成後,「Service details」(服務詳細資料) 頁面頂端會顯示執行中服務的「URL」(網址)。 按一下「URL」連結,即可在 Cloud Run 上查看已部署的範例應用程式,該應用程式已連線至 Cloud SQL。

    查看已部署的範例應用程式。

  1. 執行下列指令前,請先進行下列替換:

    • YOUR_PROJECT_ID 為您的專案 ID。
    • INSTANCE_CONNECTION_NAME,並將其換成執行個體的連線名稱,該名稱會顯示在 Google Cloud 控制台的「Cloud SQL 執行個體」頁面上。

    • DB_PASS 換成您在上一個「建立使用者」快速入門步驟中建立的 quickstart-user 密碼。

    執行下列 gcloud run deploy 指令,建立 Cloud Run 服務。 環境變數會因您想使用的連線方法而異:

    gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID/run-sql \
        --add-cloudsql-instances INSTANCE_CONNECTION_NAME \
        --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME" \
        --set-env-vars DB_NAME="quickstart-db" \
        --set-env-vars DB_USER="quickstart-user" \
        --set-env-vars DB_PASS="DB_PASS"

    系統提示指定區域時,請輸入 us-central1 提供的數字選項。

  2. 看到 Cloud Run 服務已部署的確認訊息後,請按一下訊息中的「服務網址」連結,查看連線至 Cloud SQL 的 Cloud Run 範例應用程式。

    查看已部署的範例應用程式。

控制台gcloud
  1. 前往 Google Cloud 控制台的「Cloud Run」頁面。

    前往 Cloud Run

  2. 按一下「建立容器」,然後選取「服務」,顯示「建立服務」表單。

  3. 保留從現有容器映像檔部署的選項,然後按一下「選取」,指定您在上一步建立的 gcr.io/YOUR_PROJECT_ID/run-sql 容器映像檔。
  4. 輸入 quickstart-service 做為服務名稱
  5. 在「驗證」部分中,選取 Allow unauthenticated invocations 選項。如果您沒有權限 (Cloud Run 管理員角色) 可選取這個選項,服務會部署並要求驗證。
  6. 展開「Container, Variables & Secrets, Connections, Security」(容器、變數和密鑰、連線、安全性) 專區。
  7. 按一下「環境變數」下方的「新增變數」,建立下列環境變數。按照下列方式設定環境變數的值:
    • DB_NAME:設為 quickstart-db
    • DB_USER:設為 quickstart-user
    • DB_PASS:設為您在先前的「建立使用者」快速入門步驟中指定的 quickstart-user 密碼。
    • INSTANCE_CONNECTION_NAME:設為執行個體的「連線名稱」,該名稱會顯示在 Google Cloud 控制台的「Cloud SQL 執行個體」頁面上。
    • DB_PORT:設為 3306
    • DB_ROOT_CERT:設為 certs/server-ca.pem
    • DB_CERT:設為 certs/client-cert.pem
    • DB_KEY:設為 certs/client-key.pem
    • PRIVATE_IP:設為 TRUE
  8. 啟用連線至 Cloud SQL:

    1. 按一下「連線」
    2. 按一下「Cloud SQL connections」(Cloud SQL 連線) 部分中的「Add connection」(新增連線)
    3. 選取您先前建立的 quickstart-instance Cloud SQL 執行個體。
    4. 從「VPC Network」(虛擬私有雲網路) 下拉式選單中選取 default: Serverless VPC Access Connector "quickstart-connector"
    5. 選取「透過虛擬私有雲連接器轉送所有流量」選項。
  9. 按一下「建立」即可建立 Cloud Run 服務。

  10. 部署 Cloud Run 服務後,「服務詳細資料」頁面頂端會顯示執行中服務的網址。按一下「URL」連結,即可在 Cloud Run 上查看已部署的範例應用程式,該應用程式已連線至 Cloud SQL。

    查看已部署的範例應用程式

  1. 執行下列指令前,請先進行下列替換:

    • YOUR_PROJECT_ID 為您的專案 ID。
    • INSTANCE_CONNECTION_NAME,並將其換成執行個體的連線名稱,該名稱會顯示在 Google Cloud 控制台的「Cloud SQL 執行個體」頁面上。

    • DB_PASS 換成您在上一個「建立使用者」快速入門步驟中建立的 quickstart-user 密碼。

    執行下列 gcloud run deploy 指令,建立 Cloud Run 服務。環境變數會因您想使用的連線方法而異:

    gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID/run-sql \
        --add-cloudsql-instances INSTANCE_CONNECTION_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 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"
        
    gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID/run-sql \
        --add-cloudsql-instances INSTANCE_CONNECTION_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"
        

    系統提示指定區域時,請輸入 us-central1 提供的數字選項。

  2. 看到 Cloud Run 服務已部署的確認訊息後,請按一下訊息中的「服務網址」連結,查看連線至 Cloud SQL 的 Cloud Run 範例應用程式。

    查看已部署的範例應用程式

清除所用資源

如要避免系統向您的 Google Cloud 帳戶收取本頁所用資源的費用,請按照下列步驟操作。

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 選取 quickstart-instance 執行個體,開啟「Instance details」(執行個體詳細資料) 頁面。
  3. 在頁面頂端的圖示列中,按一下 [刪除]
  4. 在「Delete instance」(刪除執行個體) 對話方塊中輸入 quickstart-instance,然後按一下「Delete」(刪除) 刪除執行個體。
  5. 前往 Google Cloud 控制台的「Cloud Run」頁面。

    前往 Cloud Run

  6. 選取「quickstart-service」服務名稱旁的核取方塊。
  7. 按一下 Cloud Run 頁面頂端的「刪除」

選用清除步驟

如果您未使用指派給 Compute Engine 服務帳戶的 Cloud SQL 用戶端角色,可以移除該角色。

  1. 前往 Google Cloud 控制台的「IAM」頁面。

    前往「IAM」頁面

  2. 按一下名為「Compute Engine default service account」的 IAM 帳戶編輯圖示 (看起來像鉛筆)。
  3. 刪除 Cloud SQL 用戶端角色。
  4. 按一下 [儲存]

如果您未使用本快速入門導覽課程啟用的 API,可以停用這些 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 使用者資料庫

如要進一步瞭解定價,請參閱 MySQL 適用的 Cloud SQL 定價

請點選下列連結瞭解更多資訊:

  • 使用公開 IP 位址設定 Cloud SQL 執行個體。
  • 為 Cloud SQL 執行個體設定私人 IP 位址。

此外,您也可以瞭解如何從其他 Google Cloud 應用程式連線至 Cloud SQL 執行個體: