MySQL
MySQL 連接器可讓您在 MySQL 資料庫中插入、讀取、更新及刪除資料列。
支援的版本
MySQL 5.0 到 8.0 版
事前準備
使用 MySQL 連接器前,請先完成下列工作:
- 在 Google Cloud 專案中:
- 確認已設定網路連線。如要瞭解網路模式,請參閱「網路連線」。
- 將 roles/connectors.admin IAM 角色授予設定連接器的使用者。
- 將下列 IAM 角色授予要用於連接器的服務帳戶:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
服務帳戶是特殊的 Google 帳戶類型,主要用於代表需要驗證且必須取得授權才能存取 Google API 資料的非人類使用者。如果您沒有服務帳戶,請務必建立服務帳戶。詳情請參閱「建立服務帳戶」。
- 啟用下列服務:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(連接器 API)
如要瞭解如何啟用服務,請參閱「啟用服務」。
如果先前未為專案啟用這些服務或權限,系統會在設定連接器時提示您啟用。
設定連接器
連線是特定資料來源的連線,也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連線,請按照下列步驟操作:
- 按一下「+ 建立新連線」,開啟「建立連線」頁面。
- 在「位置」部分,選擇連線的位置。
- 在「Region」清單中,選取要建立連線的區域。
如需所有支援地區的清單,請參閱「位置」一節。
- 點選「下一步」。
- 在「Region」清單中,選取要建立連線的區域。
- 在「連線詳細資料」部分中,輸入下列詳細資料:
- 在「Connector」清單中選取「MySQL」。
- 在「Connector version」清單中,選取連接器版本。
- 在「Connection Name」欄位中,輸入連線執行個體的名稱。
連線名稱必須符合下列條件:
- 請使用英文字母、數字或連字號。
- 字母必須為小寫。
- 名稱開頭必須是英文字母,結尾則須為英文字母或數字。
- 名稱長度不得超過 49 個半形字元。
- 選用:在「Description」欄位中新增連線執行個體的說明。
- 選用:啟用 Cloud Logging。
- 從「Service Account」(服務帳戶) 清單中選取具備必要角色的服務帳戶。
- 在「Database name」(資料庫名稱) 欄位中輸入 MySQL 資料庫的名稱。
- 視需要設定連線節點設定:
- 節點數量下限:輸入連線節點數量下限。
- 節點數量上限:輸入連線節點數量上限。
節點是用來處理交易的連線單位 (或備用資源)。處理的交易量越多,就需要越多節點;反之,處理的交易量越少,就需要越少節點。如要瞭解節點對連接器定價的影響,請參閱「 連線節點的定價」。如果您未輸入任何值,系統預設會將最小節點設為 2 (以提高可用性),並將最大節點設為 50。
- (選用) 在「進階設定」部分,選取「使用 Proxy」核取方塊,為連線設定 Proxy 伺服器,並設定下列值:
-
Proxy Auth Scheme:選取要用於 Proxy 伺服器驗證的驗證類型。支援下列驗證類型:
- Basic:基本 HTTP 驗證。
- Digest:Digest HTTP 驗證。
- Proxy User:用於與 Proxy 伺服器進行驗證的使用者名稱。
- Proxy Password:使用者密碼的 Secret Manager 密鑰。
-
Proxy SSL Type:連線至 Proxy 伺服器時要使用的 SSL 類型。支援下列驗證類型:
- 自動:預設設定。如果網址是 HTTPS 網址,則會使用「隧道」選項。如果網址是 HTTP 網址,則會使用「從不」選項。
- 一律:連線一律啟用 SSL。
- Never:未啟用 SSL 連線。
- 通道:透過通道 Proxy 建立連線。Proxy 伺服器會開啟與遠端主機的連線,並透過 Proxy 來回傳送流量。
- 在「Proxy 伺服器」部分中,輸入 Proxy 伺服器的詳細資料。
- 選用:如要為連線新增標籤,請按一下「+ 新增標籤」。
- 點選「下一步」。
- 在「目的地」專區中,輸入要連線的遠端主機 (後端系統) 詳細資料。
- 從「Destination Type」清單中選取主機位址。
- 從清單中選取「主機位址」,指定目的地的主機名稱或 IP 位址。
- 如果您想建立與後端系統的私人連線,請從清單中選取「Endpoint attachment」,然後從「Endpoint Attachment」清單中選取所需的端點附件。
如果您想建立與後端系統的公開連線,並提供額外安全性,建議您為連線設定靜態外連 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址進入白名單。
如要輸入其他目的地,請按一下「+新增目的地」。
- 點選「下一步」。
- 從「Destination Type」清單中選取主機位址。
- 在「Authentication」(驗證) 部分中,您可以提供憑證:
- 在「Username」欄位中,輸入連線的 MySQL 使用者名稱。
- 在「密碼」欄位中輸入 Secret Manager 密鑰,其中包含與 MySQL 使用者名稱相關聯的密碼。
- 如果您先前建立的密鑰不在清單中,請選取「手動輸入密鑰」。在「Add a secret by resource ID」對話方塊中,複製並貼上 Secret Manager 的資源 ID。
- 如要使用最新版本,請複製並貼上父項密鑰的資源 ID,格式如下:
"projects/project-number/secrets/secret-name"
- 如要選取特定版本,請複製並貼上該版本的資源 ID,格式為
"projects/project-number/secrets/secret-name/versions/1"
如要新增密鑰,請按一下「新增密鑰」。
- 如要使用最新版本,請複製並貼上父項密鑰的資源 ID,格式如下:
- 如果您尚未建立用於 MySQL 的密鑰,請按一下「Create New Secret」。在「Create Secret」對話方塊中輸入以下詳細資料:
- 在「Name」欄位中輸入密鑰名稱。
- 在「Secret value」(密鑰值) 欄位中輸入密鑰內容,或上傳包含密鑰的檔案。
- 按一下「Create Secret」。
- 如果您先前建立的密鑰不在清單中,請選取「手動輸入密鑰」。在「Add a secret by resource ID」對話方塊中,複製並貼上 Secret Manager 的資源 ID。
- 在「Secret version」清單中,從下拉式選單的可用版本清單中選取「Password」機密金鑰的版本。
- 按一下「下一步」。
- 在「查看」部分中,查看連線和驗證詳細資料。
- 按一下 [建立]。
實體、作業和動作
所有整合連接器都為已連結應用程式的物件提供一層抽象層。您只能透過這個抽象層存取應用程式的物件。抽象概念會以實體、作業和動作的形式提供給您。
- 實體: 實體可視為已連結應用程式或服務中的物件或屬性集合。實體的定義與連接器至連接器的定義不同。舉例來說,在資料庫連接器中,資料表是實體;在檔案伺服器連接器中,資料夾是實體;在訊息系統連接器中,佇列是實體。
不過,連接器可能不支援或沒有任何實體,在這種情況下,
Entities
清單會是空白。 - 作業: 作業是指您可對實體執行的活動。您可以對實體執行下列任一操作:
從可用清單中選取實體後,系統會產生可用於該實體的作業清單。如需作業的詳細說明,請參閱連接器工作中的實體作業。不過,如果連接器不支援任何實體作業,則
Operations
清單中不會列出這些不支援的作業。 - 動作: 動作是透過連接器介面提供給整合項目的一流函式。動作可讓您變更實體或多個實體,而變更方式因連接器而異。通常,動作會包含一些輸入參數和輸出參數。不過,連接器可能不支援任何動作,在這種情況下,
Actions
清單會是空白。
系統限制
MySQL 連接器可處理每個節點每秒 10 筆交易,並節流超過此限制的所有交易。根據預設,Integration Connectors 會為連線分配 2 個節點 (以提高可用性)。
如要瞭解 Integration Connectors 適用的限制,請參閱「限制」一節。
支援的資料類型
以下為此連接器支援的資料類型:
- BIGINT
- BINARY
- BIT
- BOOLEAN
- CHAR
- DATE
- DECIMAL
- DOUBLE
- FLOAT
- INTEGER
- LONGN VARCHAR
- LONG VARCHAR
- NCHAR
- NUMERIC
- NVARCHAR
- REAL
- SMALL INT
- 時間
- TIMESTAMP
- TINY INT
- VARBINARY
- VARCHAR
使用 Terraform 建立連線
您可以使用 Terraform 資源建立新的連線。如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要查看建立連線的範例 Terraform 範本,請參閱範例範本。
使用 Terraform 建立這項連線時,您必須在 Terraform 設定檔中設定下列變數:
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
database_name | STRING | 是 | 要連線的 Mysql 資料庫名稱。 |
proxy_enabled | BOOLEAN | 否 | 選取這個核取方塊,即可為連線設定 Proxy 伺服器。 |
proxy_auth_scheme | ENUM | 否 | 用於向 ProxyServer Proxy 驗證的驗證類型。支援的值如下:BASIC、DIGEST、NONE |
proxy_user | STRING | 否 | 用於向 ProxyServer Proxy 驗證的使用者名稱。 |
proxy_password | SECRET | 否 | 用於驗證 ProxyServer Proxy 的密碼。 |
proxy_ssltype | ENUM | 否 | 連線至 ProxyServer Proxy 時要使用的 SSL 類型。支援的值為:AUTO、ALWAYS、NEVER、TUNNEL |
動作
這個連接器支援執行下列動作:
- 使用者定義的預存程序和函式。如果後端有任何儲存程序和函式,這些項目會列在
Configure connector task
對話方塊的Actions
欄中。 - 自訂 SQL 查詢。為了執行自訂 SQL 查詢,連接器會提供「執行自訂查詢」動作。
如要建立自訂查詢,請按照下列步驟操作:
- 按照詳細操作說明 新增連接器工作。
- 設定連接器工作時,請在要執行的動作類型中選取「動作」。
- 在「Action」清單中,選取「Execute custom query」,然後按一下「Done」。
- 展開「Task input」部分,然後執行下列操作:
- 在「Timeout after」欄位中,輸入要等待多久時間才執行查詢。
預設值:
180
秒。 - 在「資料列數量上限」欄位中,輸入要從資料庫傳回的資料列數量上限。
預設值:
25
。 - 如要更新自訂查詢,請按一下「編輯自訂指令碼」。系統會開啟「Script editor」對話方塊。
- 在「Script editor」對話方塊中輸入 SQL 查詢,然後按一下「Save」。
您可以在 SQL 陳述式中使用問號 (?) 代表單一參數,該參數必須在查詢參數清單中指定。舉例來說,下列 SQL 查詢會選取
Employees
資料表中與LastName
資料欄指定值相符的所有資料列:SELECT * FROM Employees where LastName=?
- 如果您在 SQL 查詢中使用了問號,請按一下每個問號旁的「+ 新增參數名稱」,新增參數。執行整合作業時,這些參數會依序取代 SQL 查詢中的問號 (?)。舉例來說,如果您新增了三個問號 (?),就必須依序新增三個參數。
如要新增查詢參數,請按照下列步驟操作:
- 在「類型」清單中,選取參數的資料類型。
- 在「Value」欄位中輸入參數的值。
- 如要新增多個參數,請按一下「+ 新增查詢參數」。
- 在「Timeout after」欄位中,輸入要等待多久時間才執行查詢。
行動號召範例
範例:找出較大值
本例說明如何執行使用者定義函式。這個範例中的 find_greater
函式會比較兩個整數,並傳回較大的整數。
- 在
Configure connector task
對話方塊中,按一下Actions
。 - 選取
find_greater
動作,然後按一下「Done」。 - 在「Connectors」任務的「Task Input」部分,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似以下的值:{ "$1": 1.0, "$2": 5.0 }
如果動作執行成功,連接器任務的 connectorOutputPayload
欄位會包含類似以下的值:
[{ "bignum": 5.0 }]
實體操作範例
範例:列出實體的記錄
本範例會列出 Users
實體的記錄。
- 在
Configure connector task
對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Users
。 - 選取
List
作業,然後按一下「Done」。 - 在「Connector」工作中的「Task Input」部分,您可以根據需求設定「filterClause」。
舉例來說,如果將篩選條件子句設為
employeeCode='5100' and startDate='2010-01-01 00:00:00'
,系統就只會列出 employeeCode 為 5100 且 startDate 為 2010-01-01 00:00:00 的記錄。
範例:從實體取得單一記錄
這個範例會從 Users
實體擷取記錄。
- 在
Configure connector task
對話方塊中,按一下Entities
。 - 從
Entity
清單中選取User
。 - 選取
Get
作業,然後按一下「Done」。 - 在「Connectors」任務的「Task Input」部分,按一下「entityId」,然後在「Default Value」欄位中輸入
103032
。其中
103032
是Users
實體的主鍵值。
範例:從實體中刪除記錄
這個範例會從 Users
實體中刪除記錄。
- 在
Configure connector task
對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Users
。 - 選取
Delete
作業,然後按一下「Done」。 - 在「Connectors」任務的「Task Input」部分,按一下「entityId」,然後在「Default Value」欄位中輸入
113132
。或者,如果實體具有複合式主鍵,而非指定 entityId,您可以設定 filterClause。例如:
employeeCode='5100' and startDate='2010-01-01 00:00:00'
。
範例:在實體中建立記錄
這個範例會在 Users
實體中建立記錄。
- 在
Configure connector task
對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Users
。 - 選取
Create
運算,然後按一下「Done」。 - 在「Connectors」任務的「Task Input」部分,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似以下的值:{ "employeeCode": "5100", "startDate": "2010-01-01 00:00:00.0", "country": "US" }
如果整合成功,連接器工作 connectorOutputPayload
欄位就會包含建立作業的回應。
範例:更新實體中的記錄
這個範例會更新 Users
實體中的記錄。
- 在
Configure connector task
對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Users
。 - 選取
Update
運算,然後按一下「Done」。 - 在「Connectors」任務的「Task Input」部分,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似以下的值:{ "country": "IN" }
- 在「Connectors」任務的「Task Input」部分,按一下「entityId」,然後在「Default Value」欄位中輸入
113132
。或者,如果實體具有複合式主鍵,而非指定 entityId,您可以設定 filterClause。例如:
employeeCode='5100' and startDate='2010-01-01 00:00:00'
。
如果整合成功,連接器工作 connectorOutputPayload
欄位就會包含更新作業的回應。
在整合中使用 MySQL 連線
建立連線後,Apigee Integration 和 Application Integration 都會提供這項連線。您可以透過「連接器」工作,在整合中使用連線。
- 如要瞭解如何在 Apigee Integration 中建立及使用連接器工作,請參閱「連接器工作」。
- 如要瞭解如何在 Application Integration 中建立及使用連接器工作,請參閱「連接器工作」。
此外,請參閱「在 MySQL 資料庫上執行 CRUD 作業」教學課程,瞭解如何建立 MySQL 連線,並在整合中使用連線執行讀取和寫入作業。