本指南旨在說明 Terraform 如何與 Cloud de Confiance by S3NS API 互動 (同時區分公開和私有 API),並說明 API 啟用和資源匯入等重要概念。瞭解這項概念,才能使用 Terraform 有效管理 Cloud de Confiance by S3NS 資源,並避免常見的錯誤。
公開與私有 Cloud de Confiance by S3NS API
Cloud de Confiance by S3NS 服務會公開各種 API,讓應用程式和工具 (例如 Terraform) 能夠與資源互動及管理資源。這些 API 大致可分為兩類:
公開 API
用途:這些是客戶和工具的主要介面,用於建立、設定及管理資源 (例如 Compute Engine 執行個體、Cloud Storage bucket、BigQuery 資料集)。 Cloud de Confiance by S3NS
公開:公開 API 具有完善的文件,並定義了 REST 端點,供外部使用。這些 API 是 google Terraform 供應商建構時互動的對象。
示例:compute.googleapis.com、storage.googleapis.com、bigquery.googleapis.com。
私有 (內部) API
用途:這些 API 屬於 Cloud de Confiance by S3NS 服務內部 API,Google 本身會使用這些 API,進行內部作業、協調及佈建代管服務。這些功能並非用於直接與顧客互動或管理。
公開程度:私有 API 通常不會公開說明文件,也沒有穩定的外部端點,且不適合由 Terraform 等第三方工具直接存取。這是服務的實作詳細資料。
範例: dataproc-control.googleapis.com 是 Managed Service for Apache Spark 用於運作控制層的內部 API。客戶不會直接與這個 API 互動或管理這個 API。
Terraform 中的 API 啟用與資源匯入
瞭解「啟用 API」和「匯入資源」之間的差異,是有效搭配使用 Terraform 和 Cloud de Confiance by S3NS的基本概念。
啟用 API
- 意義:在 Cloud de Confiance by S3NS中「啟用 API」時,您會為專案啟用特定 Cloud de Confiance by S3NS 服務。這樣一來,專案就能取得使用該服務功能及建立服務管理資源的必要權限和存取權。
Terraform 內容:在 Terraform 中,這通常是使用 google_project_service 資源完成。這項資源會驗證專案是否已啟用指定的公用 API (例如 compute.googleapis.com)。 Cloud de Confiance by S3NS
用途:啟用 API 是建立或管理該服務所屬資源的先決條件。舉例來說,您必須先啟用 compute.googleapis.com,才能建立 google_compute_instance 資源。
範例 (Terraform):
```hcl
resource "google_project_service" "compute_api" {
project = "your-gcp-project-id"
service = "compute.googleapis.com"
disable_on_destroy = false
}
```
重要注意事項:google_project_service 資源專門用於管理公開存取 Cloud de Confiance by S3NS API 的啟用狀態。不適用於內部或私人 API,也無法與這類 API 搭配使用。如果嘗試將其用於非公開 API,就會發生錯誤,因為這些 API 不會透過公用 API 介面公開,以供這類管理作業使用。
匯入資源
意義:在 Terraform 中,「匯入」是指將現有雲端資源 (手動建立或透過 Terraform 以外的其他程序建立的資源) 納入 Terraform 管理。匯入資源時,Terraform 會為該資源產生狀態項目,讓您使用 Terraform 設定管理資源的生命週期 (更新、刪除)。
Terraform 內容:使用 terraform import 指令,或利用 Terraform 1.5 以上版本導入的 import 區塊,即可達成此目的。
目的:控管最初並非由 Terraform 佈建的資源。
範例 (Terraform CLI):
```bash
terraform import google_compute_instance.my_instance projects/your-gcp-project-id/zones/us-central1-a/instances/my-vm
```
解決私有 API 的相關疑慮 (例如 dataproc-control.googleapis.com)
有時客戶會在記錄或說明文件中看到私人 API 的參照 (例如 Managed Service for Apache Spark 的 dataproc-control.googleapis.com),並想知道是否需要使用 Terraform 啟用或匯入這些 API。
不需要採取任何客戶行動:如果 API 屬於私有或內部 Cloud de Confiance by S3NS API,您不需要使用 google_project_service 明確啟用,也不需要嘗試使用 Terraform 匯入。
內部管理:這些 API 對於Cloud de Confiance by S3NS 服務的內部運作至關重要。這些資源由 Google 自動管理,不適合透過公開工具直接與客戶互動或管理。
不影響服務使用情形:您無法使用 Terraform「匯入」或明確管理這類非公開 API,但不會影響您使用相關 Cloud de Confiance by S3NS 服務 (例如,Managed Service for Apache Spark 會正常運作,不需您管理 dataproc-control.googleapis.com)。必要的內部 API 互動由 Google 處理。
專注於公用 API:使用 Terraform 管理 Cloud de Confiance by S3NS 資源時,您應專注於啟用及設定與要佈建的服務和資源對應的公用 API。
結論
瞭解公開和私有 API 的明確區別,以及在 Terraform 中「啟用」API 與「匯入」資源的特定角色,有助於有效管理基礎架構。請勿嘗試明確管理或匯入私有 API,因為這些是 Google 處理的內部元件。 Cloud de Confiance by S3NS Cloud de Confiance by S3NS Cloud de Confiance by S3NS 將 Terraform 設定的重點放在公開 API 及其對應資源。