使用 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,由使用者在建立資源前決定、指定及傳遞。您可以建立或取得具有使用者指定資源 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 資料集
在本範例中,您將使用 Config Connector 和 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
欄位管理資源時,如果符合下列條件,Config Connector 就會取得資源: Google Cloud
- 資源具有使用者指定的資源 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 支援的資源。