對 MySQL 資料庫執行 CRUD 作業

本教學課程說明如何透過範例整合功能連線至 MySQL 資料庫執行個體,並對 MySQL 資料庫資料表執行列出、取得、建立、更新及刪除作業。

如要完成本教學課程,請執行下列工作:

事前準備

  • 確認您有權存取整合功能。
  • 在 Google Cloud 專案中執行下列操作:

    • 將下列角色授予要用來建立連線的服務帳戶:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
    • 啟用下列服務:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (Connectors API)

      如果專案先前未啟用這些服務,系統會在「建立連線」頁面建立連線時,提示您啟用這些服務。

  • 請確認您有權存取 MySQL 伺服器,並可使用該伺服器建立資料庫。

在 MySQL 伺服器中設定資料庫和資料表

連線至 MySQL 伺服器,並建立資料庫和資料表,以在本教學課程中使用。
  1. 如要連線至 MySQL 伺服器,請在已安裝 MySQL 用戶端的系統中執行下列指令:
    mysql --host=MySQL server host name or IP address --port=MySQL server port number -uusername -ppassword
    在這個範例中,請替換:
    • MySQL server host name or IP address,並輸入 MySQL 伺服器的名稱或 IP 位址。
    • MySQL server port number ,並輸入 MySQL 伺服器的通訊埠號碼。
    • username 改為 MySQL 伺服器的使用者名稱。
    • password 換成 MySQL 伺服器的密碼。
  2. 如要建立本教學課程中使用的 MySQL 資料庫,請從 MySQL 用戶端執行下列指令:
    CREATE DATABASE tutorialDB;
  3. 如要建立本教學課程中使用的資料表,請從 MySQL 用戶端執行下列指令:
    create table employee
      (
      employee_id int auto_increment primary key,
      employee_first_name varchar(500) NOT null,
      employee_last_name varchar(500) NOT null,
      employee_emailID varchar(500)
      ); 
  4. 如要將資料列新增至您建立的 employee 資料表,請從 MySQL 用戶端執行下列指令:
    INSERT INTO employee (employee_first_name,employee_last_name,employee_emailID) values ("Peter","Dilliard","test-01@test.com");
    INSERT INTO employee (employee_first_name,employee_last_name,employee_emailID) values ("Meaghan","Webb","test-02@test.com");
    
  5. 執行下列指令,確認資料表已建立並新增資料列:
    SELECT * FROM employee;
    系統會顯示下列資料表列:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           1 | Peter               | Dilliard           | test-01@test.com |
    |           2 | Meaghan             | Webb               | test-02@test.com |
    +-------------+---------------------+--------------------+------------------+
    

建立 MySQL 連線

如要啟用整合功能來連線至 MySQL 資料庫,請建立與 MySQL 資料庫的新連線:

  1. 按一下「+ 建立新連線」,開啟「建立連線」頁面。
  2. 在「位置」部分中,選擇連線位置。
    1. 在「Region」(區域) 清單中,選取要建立連線的區域。

      如需所有支援的地區清單,請參閱「位置」一文。

    2. 點選「下一步」
  3. 在「連線詳細資料」部分中,輸入下列詳細資料:
    1. 在「連接器」清單中選取「MySQL」
    2. 從「Connector version」(連接器版本) 清單中選取連接器版本。
    3. 在「連線名稱」欄位中,輸入連線執行個體的名稱。

      連線名稱必須符合下列條件:

      • 請使用英文字母、數字或連字號。
      • 字母必須為小寫。
      • 名稱開頭必須是英文字母,結尾則須為英文字母或數字。
      • 名稱不得超過 49 個字元。
    4. 選用:在「說明」欄位中,新增連線執行個體的說明。
    5. 選用:啟用 Cloud Logging
    6. 從「Service Account」(服務帳戶) 清單中,選取具備必要角色的服務帳戶。
    7. 在「Database name」(資料庫名稱) 欄位中,輸入 MySQL 資料庫的名稱。
    8. 視需要設定「連線節點設定」

      • 節點數量下限:輸入連線節點數量下限。
      • 節點數量上限:輸入連線節點數量上限。

      節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連接器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。

    9. (選用) 在「進階設定」部分,選取「使用 Proxy」核取方塊,為連線設定 Proxy 伺服器,並設定下列值:
      • Proxy 驗證機制:選取與 Proxy 伺服器進行驗證的驗證類型。系統支援下列驗證類型:
        • 基本:基本 HTTP 驗證。
        • 摘要:摘要 HTTP 驗證。
      • Proxy 使用者:用於向 Proxy 伺服器驗證的使用者名稱。
      • Proxy Password:使用者的密碼 Secret Manager 密鑰。
      • Proxy SSL Type:連線至 Proxy 伺服器時要使用的 SSL 類型。系統支援下列驗證類型:
        • 自動:預設設定。如果網址是 HTTPS 網址,則會使用「通道」選項。如果網址是 HTTP 網址,系統會使用「永不」選項。
        • 一律:連線一律啟用 SSL。
        • 從未:連線未啟用 SSL。
        • 通道:連線是透過通道 Proxy 建立。Proxy 伺服器會開啟與遠端主機的連線,流量則會透過 Proxy 來回傳輸。
      • 在「Proxy 伺服器」部分中,輸入 Proxy 伺服器的詳細資料。
        1. 按一下「+ 新增目的地」
        2. 選取「目的地類型」
          • 主機位址:指定目的地的主機名稱或 IP 位址。

            如要與後端系統建立私人連線,請按照下列步驟操作:

    10. 選用:如要為連線新增標籤,請按一下「+新增標籤」
    11. 點選「下一步」
    12. 在「目的地」部分,輸入要連線的遠端主機 (後端系統) 詳細資料。
      • 在「目的地類型」清單中,選取主機位址。
        • 如要指定目的地主機名稱或 IP 位址,請選取「主機地址」,然後在「主機 1」欄位中輸入地址。
        • 如要建立私人連線,請選取「Endpoint attachment」(端點連結),然後從「Endpoint Attachment」(端點連結) 清單中選擇所需連結。

        如要建立與後端系統的公開連線,並加強安全性,建議為連線設定靜態輸出 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址。

        如要輸入其他目的地,請按一下「+新增目的地」

      • 點選「下一步」
    13. 在「驗證」部分,您可以提供憑證:
      • 在「Username」(使用者名稱) 欄位中,輸入連線的 MySQL 使用者名稱。
      • 在「Password」(密碼) 欄位中,輸入 Secret Manager 密鑰,內含與 MySQL 使用者名稱相關聯的密碼。
        • 如果先前已建立 Secret,但清單中沒有顯示,請選取「手動輸入 Secret」。在「依據資源 ID 新增密鑰」對話方塊中,複製並貼上 Secret Manager 的資源 ID。
          • 如要使用最新版本,請複製並貼上父項密鑰的資源 ID,格式如下: "projects/project-number/secrets/secret-name"
          • 如要選取特定版本,請複製並貼上該版本的資源 ID,格式為 "projects/project-number/secrets/secret-name/versions/1"

          如要新增密鑰,請按一下「新增密鑰」

        • 如果您尚未建立要搭配 MySQL 使用的密鑰,請按一下「Create New Secret」(建立新密鑰)。在「建立密鑰」對話方塊中,輸入下列詳細資料:
          • 在「Name」(名稱) 欄位中輸入密鑰名稱。
          • 在「Secret value」(密鑰值) 欄位中輸入密鑰內容,或上傳含有密鑰的檔案。
          • 按一下「Create Secret」(建立密鑰)
      • 從「密碼版本」清單中,從下拉式選單的可用版本清單中選取「密碼」密碼的所需版本。
      • 按一下「下一步」
  4. 在「檢閱」部分中,檢查連線和驗證詳細資料。
  5. 點選「建立」

設定整合功能以使用 MySQL 連線

如要在整合功能中使用您建立的 MySQL 連線,請在整合功能中新增「連接器」工作和「API 觸發條件」API 觸發程序會透過 Edge 連線,連結至「Connectors」工作。

建立新的整合

  1. 前往 Google Cloud 控制台的「Integration Connectors」(整合連接器) 頁面。

    前往 Integration Connectors

  2. 在導覽選單中,按一下「整合」

    「Integrations List」(整合清單) 頁面隨即顯示。

  3. 選取現有的整合服務,或按一下「建立整合服務」來建立新的整合服務。

    系統會在整合編輯器頁面中開啟整合服務。

  4. 在整合服務編輯器中,依序點按「+Add a task/trigger」(新增任務/觸發條件) >「Tasks」(任務),即可查看可用任務清單。
  5. 按一下「建立新項目」
  6. 在「建立整合」對話方塊中輸入名稱和說明 (選填)。
  7. 按一下「建立」,開啟整合編輯器。

新增及設定 API 觸發條件

如要為整合服務新增及設定 API 觸發條件,請按照下列步驟操作:

  1. 在整合編輯器中,依序選取「新增工作/觸發條件」>「觸發條件」,即可顯示可用觸發條件清單。
  2. 將「API 觸發條件」元素拖曳至整合服務編輯器。

新增及設定連接器工作

請按照下列步驟設定 Connectors 工作,列出 employee 資料表中的所有實體:

  1. 在整合服務編輯器中選取「+Add a task/trigger」(新增任務/觸發條件) >「Tasks」(任務),即可顯示可用任務清單。
  2. 將「連線器」元素拖曳至整合服務編輯器。
  3. 按一下設計工具中的「Connectors」(連結器) 任務元素,即可查看任務設定窗格。
  4. 按一下「設定工作」

    系統隨即會顯示「設定連接器工作」對話方塊。

  5. 在「設定連接器工作」對話方塊中,執行下列操作:
    1. 選取您建立 MySQL 連線的連線區域。
    2. 選擇區域後,系統會顯示「連線」欄。從可用連線清單中,選取您建立的 MySQL 連線。
    3. 選擇連線後,系統會顯示「類型」欄。選取「實體」,然後從可用實體清單中選取「員工」
    4. 選擇類型後,系統會顯示「作業」欄。選取「清單」
    5. 按一下「完成」,完成連線設定並關閉對話方塊。

將「API 觸發條件」元素連結至「連結器」工作元素

接著新增邊緣連線,將 API 觸發條件連結至「Connectors」工作。邊緣連線是指整合中任意兩個元素之間的連線。如要進一步瞭解邊緣和邊緣條件,請參閱「邊緣」。

如要新增邊緣連線,請按一下「API 觸發條件」元素底部的「分叉」控制點。將邊緣連線拖曳到「Join」(加入) 控制點,該控制點位於「Connectors」(連接器) 工作元素頂端。

測試整合功能

如要測試整合,請執行下列操作:

  1. 按一下整合服務編輯器工具列中的「測試」按鈕。
  2. 視需要變更「執行期限 (以分鐘為單位)」值,然後按一下「測試整合」
  3. 整合成功後,「測試整合」窗格會顯示「整合執行成功」訊息。如要查看記錄,請按一下「查看記錄」
  4. 在「回應參數」的「連線器輸出內容」下方,會顯示下列輸出內容:
    [ {
        "employee_id": 1.0,
        "employee_first_name": "Peter",
        "employee_last_name": "Dilliard",
        "employee_emailID": "test-01@test.com"
      },
      {
        "employee_id": 2.0,
        "employee_first_name": "Meaghan",
        "employee_last_name": "Webb",
        "employee_emailID": "test-02@test.com"
      } ]

對 MySQL 資料庫表執行其他作業

在整合中設定 Connectors 工作時,您可以選取下列任一作業:

  • 清單
  • 取得
  • 建立
  • 更新
  • 刪除

您已使用 List 作業查看 employee 資料表中的所有資料列。在本教學課程的後續章節中,您將使用 Get、Create、Update 和 Delete 作業,在 employee 表格中新增、修改或移除資料列。

從資料表取得資料列

如果您知道要擷取之資料列的實體 ID (或主鍵),請在整合中將該值做為 Get 作業的輸入內容。Get 作業傳回的詳細資料與 List 作業傳回的詳細資料類似。不過,List 作業會擷取符合指定查詢的所有資料表列詳細資料,Get 作業則只會擷取符合指定實體 ID 的資料表列詳細資料。

請注意,根據預設,List 作業會傳回資料表中的所有資料列,但 Get 作業需要實體 ID 做為搜尋參數。因此,如要使用 Get 作業,您必須知道要擷取之資料列的實體 ID,或提供實體 ID 的預設值。

如要取得指定資料列的詳細資料,請按照下列步驟設定先前建立的「Connectors」工作:

  1. 按一下設計工具中的「Connectors」(連結器) 任務元素,即可查看任務設定窗格。
  2. 按一下「設定工作」

    系統隨即會顯示「設定連接器工作」對話方塊。

  3. 在「Configure connector task」對話方塊的「Operation」欄中,選取「Get」,然後按一下「Done」
  4. 在任務設定窗格中,按一下「Task Input」(任務輸入內容) 下方的「Entity ID」(實體 ID)
  5. 在「設定變數」對話方塊中,選取「Use as an input to integration」(以整合輸入內容的形式使用),然後按一下「Save」(儲存)
  6. 按一下整合服務編輯器工具列中的「測試」按鈕。
  7. 視需要變更「執行期限 (分鐘)」值。
  8. 輸入要擷取詳細資料的實體 ID。輸入 2
  9. 按一下「測試整合」
  10. 整合成功後,「測試整合」窗格會顯示「整合執行成功」訊息。如要查看記錄,請按一下「查看記錄」
  11. 在「回應參數」的「連線器輸出內容酬載」下方,會顯示下列輸出內容:
    [ {
        "employee_id": 2.0,
        "employee_first_name": "Meaghan",
        "employee_last_name": "Webb",
        "employee_emailID": "test-02@test.com"
      } ]
  12. 您可以確認這裡顯示的資訊是否與 MySQL 資料表中的對應列資訊相符。如要在 MySQL 資料表中查看這項資訊,請從 MySQL 用戶端執行下列指令:
    SELECT * FROM employee WHERE employee_id=2;
    系統會顯示下列資料表列:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           2 | Meaghan             | Webb               | test-02@test.com |
    +-------------+---------------------+--------------------+------------------+
        

在表格中新增資料列

您可以使用「建立」作業在資料表中新增資料列。使用「建立」作業時,您必須在連接器輸入酬載中提供實體的所有值。

如要使用「建立」作業新增資料列,請按照下列步驟設定先前建立的「連線器」工作:

  1. 在設計工具中,按一下「Connectors」(連結器) 任務元素,即可查看任務設定窗格。
  2. 按一下「設定工作」

    系統隨即會顯示「設定連接器工作」對話方塊。

  3. 在「設定連接器工作」對話方塊的「作業」欄中,選取「建立」,然後按一下「完成」
  4. 在任務設定窗格中,按一下「Task Input」(任務輸入內容) 下方的「Connector input payload」(連接器輸入內容酬載)
  5. 在「設定變數」對話方塊中,選取「Use as an input to integration」(以整合輸入內容的形式使用),然後按一下「Save」(儲存)
  6. 按一下整合服務編輯器工具列中的「測試」按鈕。
  7. 視需要變更「執行期限 (分鐘)」值。
  8. 輸入要建立的實體詳細資料。舉例來說,如要在 employee 資料表中新增員工,請輸入下列 JSON:
    {
      "employee_first_name": "Mary",
      "employee_last_name": "Smith",
      "employee_emailID": "test-03@test.com"
    }
  9. 按一下「測試整合」
  10. 整合成功後,「測試整合」窗格會顯示「整合執行成功」訊息。如要查看記錄,請按一下「查看記錄」
  11. 在「Response Parameters」的「Connector input payload」下方,會顯示您提供的酬載:
    {
      "employee_first_name": "Mary",
      "employee_last_name": "Smith",
      "employee_emailID": "test-03@test.com"
    }
    在「連線器輸出內容有效負載」下方,實體 ID 會顯示為輸出內容:
    {
      "employee_id": 3.0
    }
  12. 您可以確認 MySQL 資料表中是否已新增資料列。如要在 MySQL 資料表中查看這項資訊,請從 MySQL 用戶端執行下列指令:
    SELECT * FROM employee;
    系統會顯示下列資料表列:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           1 | Peter               | Dilliard           | test-01@test.com |
    |           2 | Meaghan             | Webb               | test-02@test.com |
    |           3 | Mary                | Smith              | test-03@test.com |
    +-------------+---------------------+--------------------+------------------+
        

更新資料表中的資料列

使用「更新」作業變更資料表列中的值。舉例來說,您可以使用這項作業更新 employee 表格中員工的電子郵件 ID。如要指定要更新的實體,您可以提供實體 ID,就像 Get 作業一樣。或者,您可以使用 Filter 子句參數,傳遞要用來篩選資料表列的值。如果您想根據特定搜尋條件,在多個資料列中進行相同變更,這個方法就非常實用。

如要更新資料表列,請按照下列步驟設定先前建立的「連線」工作:

  1. 按一下設計工具中的「Connectors」(連結器) 任務元素,即可查看任務設定窗格。
  2. 按一下「設定工作」

    系統隨即會顯示「設定連接器工作」對話方塊。

  3. 在「Configure connector task」對話方塊的「Operation」欄中,選取「Update」,然後按一下「Done」
  4. 在任務設定窗格中,按一下「Task Input」(任務輸入內容) 下方的「Connector input payload」(連接器輸入內容酬載)
  5. 在「設定變數」對話方塊中,選取「Use as an input to integration」(以整合輸入內容的形式使用),然後按一下「Save」(儲存)
  6. 接著,在任務設定窗格中,按一下「Task Input」(任務輸入內容) 下方的「Filter clause」(篩選子句)
  7. 在「設定變數」對話方塊中,選取「Use as an input to integration」(以整合輸入內容的形式使用),然後按一下「Save」(儲存)
  8. 按一下整合服務編輯器工具列中的「測試」按鈕。
  9. 視需要變更「執行期限 (分鐘)」值。
  10. 輸入要篩選的條件,舉例來說,如要尋找電子郵件 ID 為 test-03@test.com 的員工,請輸入:
    employee_emailID="test-03@test.com"
  11. 輸入要更新的值。舉例來說,如要更新 employee 表格中所有員工的電子郵件 ID,且目前的電子郵件 ID 符合篩選子句 test-03@test.com,請輸入下列 JSON:
    {
      "employee_emailID": "msmith@test.com"
    }
  12. 按一下「測試整合」
  13. 整合成功後,「測試整合」窗格會顯示「整合執行成功」訊息。如要驗證實體是否已更新,請使用 Get 作業取得指定實體的詳細資料。
  14. 您可以驗證 MySQL 資料表中的資料列是否已更新。如要在 MySQL 資料表中查看這項資訊,請從 MySQL 用戶端執行下列指令:
    SELECT * FROM employee;
    系統會顯示下列資料表列:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           1 | Peter               | Dilliard           | test-01@test.com |
    |           2 | Meaghan             | Webb               | test-02@test.com |
    |           3 | Mary                | Smith              | msmith@test.com  |
    +-------------+---------------------+--------------------+------------------+
          

刪除資料表中的資料列

您可以使用 Delete 作業刪除一或多個資料表列。提供實體 ID,或使用篩選子句指定要刪除的資料列。請注意,如果您使用篩選子句指定要刪除的資料列條件,系統可能會刪除符合指定篩選條件的多個資料列。如要只刪除特定資料列,請使用實體 ID。

如要使用實體 ID 刪除資料表列,請按照下列步驟設定先前建立的「連線器」工作:

  1. 按一下設計工具中的「Connectors」(連結器) 任務元素,即可查看任務設定窗格。
  2. 按一下「設定工作」

    系統隨即會顯示「設定連接器工作」對話方塊。

  3. 在「Configure connector task」(設定連接器工作) 對話方塊的「Operation」(作業) 欄中,選取「Delete」(刪除),然後按一下「Done」(完成)
  4. 在任務設定窗格中,按一下「Task Input」(任務輸入內容) 下方的「Entity ID」(實體 ID)
  5. 在「設定變數」對話方塊中,選取「Use as an input to integration」(以整合輸入內容的形式使用),然後按一下「Save」(儲存)
  6. 按一下整合服務編輯器工具列中的「測試」按鈕。
  7. 視需要變更「執行期限 (分鐘)」值。
  8. 輸入要刪除的資料表列實體 ID。輸入 3
  9. 按一下「測試整合」
  10. 整合成功後,「測試整合」窗格會顯示「整合執行成功」訊息。如要驗證資料列是否已刪除,請使用 Get 作業取得已刪除資料列的詳細資料。這應該會針對指定的實體 ID 傳回錯誤。

    您也可以使用 List 作業,並視需要提供已刪除表格列的篩選子句。這會傳回剩餘的資料列清單,也可能是空白清單。

    舉例來說,如果您刪除實體 ID 為 3 的資料表列,然後為 List 作業指定篩選子句 employee_emailID="msmith@test.com" 或實體 ID 3,記錄中的回應參數就會顯示 []

  11. 您可以確認 MySQL 資料表中的資料列是否已刪除。如要在 MySQL 資料表中驗證這項資訊,請從 MySQL 用戶端執行下列指令:
    SELECT * FROM employee;
    系統會顯示下列資料表列:
    +-------------+---------------------+--------------------+------------------+
    | employee_id | employee_first_name | employee_last_name | employee_emailID |
    +-------------+---------------------+--------------------+------------------+
    |           1 | Peter               | Dilliard           | test-01@test.com |
    |           2 | Meaghan             | Webb               | test-02@test.com |
    +-------------+---------------------+--------------------+------------------+
            

後續步驟