對 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. 選用:在「Description」(說明) 欄位中,新增連線執行個體的說明。
    5. 選用:啟用 Cloud Logging
    6. 從「服務帳戶」清單中,選取具備必要角色的服務帳戶。
    7. 在「Database name」(資料庫名稱) 欄位中,輸入 MySQL 資料庫的名稱。
    8. 視需要設定「連線節點設定」

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

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

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

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

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

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

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

      • 點選「下一步」
    13. 在「驗證」部分,您可以提供憑證:
      • 在「Username」(使用者名稱) 欄位中,輸入連線的 MySQL 使用者名稱。
      • 在「Password」(密碼) 欄位中,輸入 Secret Manager 密鑰,內含與 MySQL 使用者名稱相關聯的密碼。
        • 如果先前已建立 Secret,但清單中沒有顯示,請選取「Enter Secret Manually」(手動輸入 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」(密鑰值) 欄位中輸入密鑰內容,或上傳包含密鑰的檔案。
          • 按一下「建立密鑰」
      • 從「Secret version」(密碼版本) 清單中,從下拉式選單的可用版本清單中選取「Password」(密碼) Secret 的版本。
      • 按一下「下一步」
  4. 在「查看」部分,查看連線和驗證詳細資料。
  5. 點選「建立」

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

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

建立新的整合

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

    前往「Integration Connectors」頁面

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

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

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

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

  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 觸發條件」元素底部的「分叉」控制點。將邊緣連線拖曳至「Connectors」(連接器) 工作元素頂端的「Join」(加入) 控制點。

測試整合

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

  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. 在「設定連接器工作」對話方塊的「作業」欄中,選取「取得」,然後按一下「完成」
  4. 在任務設定窗格中,按一下「Task Input」(任務輸入內容) 下方的「Entity ID」(實體 ID)
  5. 在「設定變數」對話方塊中,選取「Use as an input to integration」(以整合輸入內容的形式使用),然後按一下「Save」(儲存)
  6. 按一下整合服務編輯器工具列中的「測試」按鈕。
  7. 視需要變更「執行期限 (分鐘)」值。
  8. 輸入要擷取詳細資料的實體 ID。輸入 2
  9. 按一下「測試整合」
  10. 整合成功後,「測試整合」窗格會顯示「整合執行成功」訊息。如要查看記錄,請按一下「查看記錄」
  11. 在「Response Parameters」的「Connector output payload」下方,會顯示下列輸出內容:
    [ {
        "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. 在「Configure connector task」(設定連結器工作) 對話方塊的「Operation」(作業) 欄中,選取「Create」(建立) ,然後按一下「Done」(完成)
  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. 在「回應參數」的「連線器輸入酬載」下方,會顯示您提供的酬載:
    {
      "employee_first_name": "Mary",
      "employee_last_name": "Smith",
      "employee_emailID": "test-03@test.com"
    }
    在「Connector output payload」(連接器輸出酬載) 下方,實體 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. 在「設定連結器工作」對話方塊的「作業」欄中,選取「更新」,然後按一下「完成」
  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 |
    +-------------+---------------------+--------------------+------------------+
            

後續步驟