使用 resourceID 欄位管理資源
本頁面說明如何使用 resourceID
欄位管理資源。
Config Connector 可讓您使用不可變動但可選的 resourceID
欄位,明確指定 Google Cloud資源的資源 ID,以便建立或取得資源。「不可變動,但可選填」表示您可以選擇是否指定 resourceID
欄位,但在將資訊清單套用至叢集後,您就無法變更 resourceID
欄位的值。
resourceID
欄位可讓您更靈活地命名具有使用者指定資源 ID 的 Google Cloud資源。您可以使用 Config Connector 資源中的 resourceID
欄位,在相同命名空間內的不同專案、資料夾、組織或父項資源下,定義多個相同類型的 Config Connector 資源,並使用相同的 Google Cloud資源名稱。 Google Cloud 資源名稱也不受 Kubernetes 物件名稱的命名慣例限制。此外,resourceID
欄位可讓您取得具有服務產生資源 ID 的 Google Cloud 資源。
Config Connector 會將命名空間設為資源的「擁有者」,以免資源遭到其他擁有者取用。不過,如果您使用 resourceID
欄位,則在同一個命名空間下,可以有多個具有相同 Google Cloud 資源名稱的資源。這些資源會造成 Config Connector 無法管理的衝突。您必須手動解決任何衝突問題。
資源 ID 類型
在 Config Connector 中,資源 ID 可以由使用者指定或服務產生。
- 使用者指定的資源 ID
- 在建立資源前,由使用者決定、指定及傳入的資源 ID。您可以使用
resourceID
欄位建立或取得具有使用者指定資源 ID 的資源。 - 服務產生的資源 ID
- 服務在建立資源時產生的資源 ID。使用者可以在資源成功建立後擷取這項資訊。您可以使用
resourceID
欄位取得具有服務產生資源 ID 的資源。如果您想建立具有服務產生資源 ID 的新資源,請將這個欄位留空。請參閱含有服務產生資源 ID 的資源清單。
指定 resourceID 欄位
您可以在資源的 spec
中指定 resourceID
欄位。
下列資訊清單說明如何為 Pub/Sub 主題指定 resourceID
欄位。Config Connector 資源的名稱為 pubsub-topic-sample
,而 Pub/Sub 主題的名稱為 pubsub-topic-id
。
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
name: pubsub-topic-sample
spec:
resourceID: pubsub-topic-id
使用 resourceID 欄位建立資源
建立 BigQuery 資料集
在這個範例中,您會使用 resourceID
欄位搭配設定連接器,建立新的 BigQuery 資料集。resourceID
欄位的值應遵循 BigQuery 資料集 datasetId
欄位的命名慣例。
將下列內容複製到名為
bigquery-dataset.yaml
的檔案中。apiVersion: bigquery.cnrm.cloud.google.com/v1beta1 kind: BigQueryDataset metadata: name: bigquerydataset-sample-for-creation spec: resourceID: bigquerydataset_sample_with_resourceid defaultTableExpirationMs: 3600000 description: "BigQuery Dataset Sample with the ResourceID Field" friendlyName: bigquerydataset-sample-with-resourceid location: US
將 YAML 檔案套用至叢集。
kubectl apply --namespace CC_NAMESPACE -f bigquery-dataset.yaml
將
CC_NAMESPACE
替換為 Config Connector 管理資源的命名空間。使用
kubectl describe
查看資料集詳細資料。kubectl describe --namespace CC_NAMESPACE bigquerydataset bigquerydataset-sample-for-creation
將
CC_NAMESPACE
替換為 Config Connector 管理資源的命名空間。
使用 resourceID 欄位取得資源
當您使用 resourceID
欄位管理 Google Cloud 資源時,如果符合下列條件,Config Connector 就會取得該資源:
- 資源具有使用者指定的資源 ID,且資訊清單中的值和資源名稱與現有資源相符;或者,
- 資源具有服務產生的資源 ID。
取得資料夾
如要使用 Config Connector 搭配 resourceID
欄位取得資料夾,請完成下列步驟:
將下列內容複製到名為
folder.yaml
的檔案中。apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 kind: Folder metadata: annotations: cnrm.cloud.google.com/organization-id: ORG_ID # Remove the deletion-policy annotation if it is safe to delete the # folder when the resource is deleted from your cluster. cnrm.cloud.google.com/deletion-policy: "abandon" name: folder-sample-for-acquisition spec: resourceID: ACQUIRED_FOLDER_ID displayName: ACQUIRED_FOLDER_DISPLAY_NAME
更改下列內容:
- 將
ORG_ID
替換為貴機構的數字 ID。 ACQUIRED_FOLDER_ID
,其中包含要取得的資料夾的數字 ID。ACQUIRED_FOLDER_DISPLAY_NAME
包含要取得的資料夾顯示名稱。
- 將
將 YAML 檔案套用至叢集。
kubectl apply --namespace CC_NAMESPACE -f folder.yaml
將
CC_NAMESPACE
替換為 Config Connector 管理資源的命名空間。使用
kubectl describe
查看資料夾的詳細資料。kubectl describe --namespace CC_NAMESPACE folder folder-sample-for-acquisition
將
CC_NAMESPACE
替換為 Config Connector 管理資源的命名空間。
後續步驟
請參閱資源參考資料,瞭解 Config Connector 支援的資源。