資料夾是 Cloud Platform 資源階層中的節點。資料夾可包含專案、其他資料夾,或是兩者兼具。 機構資源能使用資料夾,在階層中的機構資源節點下對專案進行分組。舉例來說,您的機構資源可能包含多個部門,每個部門都有自己的 Google Cloud 資源組。您可以使用資料夾,將這些資源按照部門分組,或是將具有相同常見允許或拒絕政策的資源分組。資料夾可包含多個資料夾或資源,但是特定資料夾或資源只能有一個父項。
在下圖中,這個名為「公司」的機構擁有代表兩個部門的資料夾:「Dept X」(部門 X) 和「Dept Y」(部門 Y),以及一個名為「Shared Infrastructure」(共用基礎架構) 用於儲存兩個部門共用項目的資料夾。在「Dept Y」之下有兩個團隊,各團隊資料夾中再依產品進行分組。其中「Product 1」(產品 1) 資料夾包含了三個專案,每個專案都包含該專案本身所需的資源。這提供了高度的靈活性,能夠以適當的精細程度,指派允許、拒絕或機構政策。
您可以藉由資料夾層級的允許和拒絕政策,控制資料夾中資源的存取權。舉例來說,如果向使用者授予某個資料夾的 Compute 執行個體管理員角色,使用者將擁有該資料夾內所有專案的 Compute 執行個體管理員角色。
事前準備
資料夾功能只開放給擁有機構資源的 Google Workspace 和 Cloud Identity 客戶使用。如要進一步瞭解如何取得機構資源,請參閱建立及管理機構。
如果您想探索使用資料夾的最佳方法,我們建議您:
- 參閱使用 IAM 控制資料夾的存取權。該主題說明如何控制存取資料夾和其中資源的人員和存取權限。
- 瞭解如何設定資料夾權限。 資料夾支援使用多個不同的 IAM 角色。如果您要廣泛設定權限,讓使用者能查看專案的結構,請在機構資源層級針對整個網域授予機構檢視者及資料夾檢視者角色。如要限制資料夾階層分支的瀏覽權限,請針對您希望使用者查看的資料夾,授予資料夾檢視者角色。
- 建立資料夾。在您規劃如何組織 Cloud 資源的同時,我們建議您使用單一資料夾做為沙箱來開始,在這個資料夾中進行實驗,找出最適合您機構資源的階層。請將資料夾想成資源之間的分界線,以及存取和設定政策的附加點。您可以選擇為屬於不同部門的資源建立資料夾,並將管理員角色指派給資料夾來委派管理員權限。您也可以使用資料夾,將屬於應用程式或不同環境的資源分組,例如:開發、生產及測試。並使用巢狀資料夾模擬這些不同的情境。
常見的情況是建立資料夾,資料夾中又包含其他資料夾或專案,如上圖所示。這種結構稱作「資料夾階層」。建立資料夾階層時,請記住下列事項:
- 資料夾最多可建立 10 (十) 層的巢狀結構。
- 父項資料夾最多只可以包含 300 個資料夾。這裡指的是下一層的子資料夾,這些子資料夾可以包含更多資料夾或專案。
- 在階層的同個層級中,資料夾顯示名稱不能重複。
設定管理資料夾的權限
如要存取及管理資料夾,請將特定資料夾 IAM 角色指派給特定的使用者群組。如要進一步瞭解這些角色,請參閱使用 IAM 對資料夾進行存取權控管。我們也建議您參閱我們的最佳做法,找出最佳的資料夾權限設定。
如要管理整個機構資源的資料夾,您要有資料夾 管理員角色。這個角色授予的權限可讓使用者建立、編輯、刪除、移動及變更資料夾的 IAM 權限,也能在資料夾之間移動專案。
一開始,只有機構管理員可以為機構資源指派資料夾管理員角色。之後,獲得此角色的帳戶也能將此角色授予其他帳戶。
如要設定資料夾權限,請按照下列步驟操作:
主控台
- 在 Google Cloud 控制台中,開啟「Manage resources」(管理資源) 頁面。
- 如果資訊面板未開啟,請按一下「顯示資訊面板」。
- 在「資源」表格中,展開包含資料夾的機構。
- 從機構底下的資源清單中,選取要管理的資料夾。
- 在資訊面板中,按一下「新增主體」。
- 在「Add principals」(新增主體) 欄位中,輸入要授予權限的電子郵件地址。
- 在「Select a role」(請選擇角色) 選單中,選取「Resource Manager」(資源管理員) 類別,然後選取要授予的角色,例如「Folder Admin」(資料夾管理員)。
- 按一下「儲存」授予新角色。
gcloud
如要使用 Google Cloud CLI 將資料夾管理員角色授予主體,請執行下列指令:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member=user:USER_ID \
--role=roles/resourcemanager.folderAdmin
API
要求 JSON:
request_json= '{ policy: { version: "1", bindings: [ { role: "roles/folderAdmin",
members: [ "user:admin@myorganization.com", ] }, { role: "roles/folderCreator",
members: [ "user:admin@myorganization.com", ] } , { role: "roles/folderMover",
members: [ "user:admin@myorganization.com", ] } , ] } }'
curl 要求:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/ORGANIZATION_NAME:setIamPolicy
將 ORGANIZATION_NAME
替換為要設定允許政策的機構名稱,例如 organizations/123
。
建立資料夾
您必須在父項層級擁有資料夾管理員或資料夾建立者角色,才能建立資料夾。舉例來說,如要在機構層級建立資料夾,您必須在機構層級具有上述任一角色。
在建立資料夾的過程中,您必須指定資料夾名稱。資料夾名稱必須符合以下要求:
- 名稱可以包含字母、數字、空格、連字號和底線。
- 資料夾顯示名稱的開頭和結尾必須是字母或數字。
- 名稱長度必須介於 3 至 30 個字元之間。
- 名稱不得與同一父項下的其他資料夾相同。
如要建立資料夾,請按照以下步驟進行:
控制台
您可以在 UI 中,使用「Manage Projects and Folders」區段來建立資料夾。
前往 Google Cloud 控制台的「管理資源」頁面:
確認頁面頂端的機構下拉式清單中已選取機構資源名稱。
按一下「建立資料夾」,然後選取下列其中一個選項:
- 標準資料夾:標準資料夾資源。
- 符合法規的資料夾:Assured Workloads 資料夾,可為 Google Cloud 資源提供額外的法規、區域或主權控管機制。選取這個選項後,系統會將您帶往 Assured Workloads,以便建立資料夾。
在「Folder name」(資料夾名稱) 方塊中輸入新的資料夾名稱。
在「Destination」(目的地) 下方,按一下「Browse」(瀏覽),然後選取要在哪個機構資源或資料夾下建立新資料夾。
- 點選「建立」。
gcloud
您可以使用 Google Cloud CLI,透過程式建立資料夾。
如要使用 gcloud
指令列工具在機構資源下建立資料夾,請執行以下指令。
gcloud resource-manager folders create \
--display-name=[DISPLAY_NAME] \
--organization=[ORGANIZATION_ID]
若要在其他資料夾下建立資料夾:
gcloud resource-manager folders create \
--display-name=[DISPLAY_NAME] \
--folder=[FOLDER_ID]
其中:
[DISPLAY_NAME]
為資料夾的顯示名稱。同一父項下的資料夾不能使用相同的顯示名稱。顯示名稱的開頭和結尾必須是字母或數字。顯示名稱可包含字母、數字、空格、連字號和底線,且長度不可超過 30 個字元。- 如果父項為機構資源,則
[ORGANIZATION_ID]
是父項機構資源 ID。 - 如果父項為資料夾,則
[FOLDER_ID]
是父項資料夾 ID。
API
您可以透過 API 要求來建立資料夾。
JSON 要求:
request_json= '{
display_name: DISPLAY_NAME,
parent: ORGANIZATION_NAME
}'
「建立資料夾」curl 要求:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders
其中:
[DISPLAY_NAME]
是新資料夾的顯示名稱,例如「My Awesome Folder」。[ORGANIZATION_NAME]
是您要在其中建立資料夾的機構資源名稱,例如organizations/123
。
「建立資料夾」回應:
{
"name": "operations/fc.123456789",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "[DISPLAY_NAME]",
"operationType": "CREATE"
}
}
「取得作業」curl 要求:
curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789
「取得作業」回應:
{
"name": "operations/fc.123456789",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "[DISPLAY_NAME]",
"operationType": "CREATE"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
"name": "folders/12345",
"parent": "organizations/123",
"displayName": "[DISPLAY_NAME]",
"lifecycleState": "ACTIVE",
"createTime": "2017-07-19T23:29:26.018Z",
"updateTime": "2017-07-19T23:29:26.046Z"
}
}
在建立資料夾時新增標記
標記可為資源建立註解。建立資料夾時,你可以新增標籤。如要這麼做,您必須授予「代碼使用者」角色。如要進一步瞭解這個角色包含的權限,請參閱「管理資源上的標記」。您只能透過下列其中一種方式,為代碼鍵/值組合新增命名空間:
gcloud
如要在建立資料夾時新增標記,請執行下列指令:
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--organization=ORGANIZATION_ID
--tags=KEY_VALUE_PAIRS
更改下列內容:
DISPLAY_NAME
為資料夾的顯示名稱。ORGANIZATION_ID
是父項機構資源的唯一識別碼。KEY_VALUE_PAIRS
是以逗號分隔的鍵/值組合清單,可指派給資源。以半形逗號分隔的鍵/值組合範例如下:123/environment=production, 456/create=testresource
。
API
下列程式碼片段是 JSON 要求,可建立資料夾並在其中新增標記。
POST https://cloudresourcemanager.googleapis.com/v3/projects/
Authorization: *************
Content-Type: application/json
{
"display_name": "our-folder-456",
"parent": "organizations/123",
"tags": {
"key": "123/environment"
"value": "production"
},
"tags": {
"key": "123/costCenter"
"value": "marketing"
}
}
設定資料夾的存取權
若要設定資料夾的存取權,您必須在父項層級擁有資料夾 IAM 管理員或資料夾管理員角色。
控制台
在 Google Cloud 控制台中,開啟「Manage Resources」(管理資源) 頁面。
按一下左上角的「Organization」下拉式選單,然後選取您的機構資源。
找出要變更權限的專案,然後選取專案旁的核取方塊。
在右側「Info panel」(資訊面板) 的「Permissions」(權限) 下方,輸入要新增的成員的電子郵件地址。
在「Select a role」(選擇角色) 下拉式選單中,選取要授予這些成員的角色。
按一下「Add」(新增)。畫面上隨即顯示通知,確認成員的新角色已新增或更新。
gcloud
您可以使用 Google Cloud CLI 或 API,透過程式設定資料夾的存取權。
gcloud resource-manager folders \
add-iam-policy-binding [FOLDER_ID] \
--member=user:email1@example.com \
--role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
add-iam-policy-binding [FOLDER_ID] \
--member=user:email1@example.com \
--role=roles/resourcemanager.folderViewer
您也可以使用以下程式碼:
gcloud resource-manager folders \
set-iam-policy [FOLDER_ID] [POLICY_FILE]
其中:
[FOLDER_ID]
是新資料夾的 ID。[POLICY_FILE]
是資料夾的政策檔案路徑。
API
setIamPolicy
方法會在資料夾上設定存取控管政策,並取代任何現有的政策。resource
欄位應為資料夾的資源名稱,例如 folders/1234
。
request_json= '{
policy: {
version: "1",
bindings: [
{
role: "roles/resourcemanager.folderEditor",
members: [
"user:email1@example.com",
"user:email2@example.com",
]
}
]
}
}'
curl 要求:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]:setIamPolicy
其中:
[FOLDER_NAME]
是要設定 IAM 政策的資料夾名稱,例如 folders/123。
在資料夾中建立專案
如要在資料夾中建立專案,您必須具有資料夾的「專案建立者」角色 (roles/resourcemanager.projectCreator
)。這個角色可以從父項資料夾沿用。
主控台
- 在 Google Cloud 控制台中,開啟「管理資源」頁面。
- 前往「管理資源」頁面。
- 在頁面左上角的「機構」下拉式選單中,選取您的機構資源。
- 按一下 [Create Project] (建立專案)。
- 輸入專案名稱。
在 [目的地] 方塊中,按一下 [瀏覽],選取要在其中建立專案的資料夾。
按一下 [建立]。
gcloud
gcloud projects create PROJECT_ID --folder FOLDER_ID
更改下列內容:
PROJECT_ID
是要建立的專案 ID 的 ID。FOLDER_ID
是要在其中建立專案的資料夾 ID。
API
要求 JSON:
request_json= '{
name: DISPLAY_NAME, projectId: PROJECT_ID, parent: {id: PARENT_ID, type: PARENT_TYPE}
}'
curl 要求:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/projects
更改下列內容:
PROJECT_ID
是要建立的專案的專屬 ID。例如:my-awesome-proj-123
。DISPLAY_NAME
是正在建立的專案的顯示名稱。PARENT_ID
是正在建立的父項專屬 ID。例如:123
。PARENT_TYPE
是父項的類型,例如folder
或organization
。
請勿在資料夾名稱或其他資源名稱中加入機密資訊。任何對資料夾或相關資源的參照都會公開資料夾名稱和資源名稱。
將專案移入資料夾
將專案移入或移出資料夾之前,請務必仔細思考此舉會對政策產生哪些影響。您在「專案」層級定義的允許政策會隨著專案轉移,但從父項資源繼承的政策則不會。
遷移專案時,直接附加的任何 Identity and Access Management 政策或機構政策都會隨之遷移。不過,資源階層中的專案也會受到從父項資源繼承的政策影響。如果專案繼承的身分與存取權管理角色可授權使用者使用特定服務,除非目的地也繼承了該權限,否則使用者無法在目的地存取該服務。
舉例來說,假設服務帳戶在資料夾 A 中,已繫結至使用者,並具有 Storage 物件建立者角色。服務帳戶有權將資料上傳至資料夾 A 中任何專案的 Cloud Storage。如果您將其中一個專案移至沒有相同沿用權限的資料夾 B,該專案的服務帳戶將會失去上傳資料的能力,導致服務中斷。
如果您是在來源資料夾及目的地資料夾中定義機構政策,也需考慮同樣的事項。和 IAM 政策相似,機構政策也來自於繼承。因此,您必須確保來源資料夾和目的地資料夾有相同的機構政策。
如要進一步瞭解機構政策,請參閱機構政策服務簡介。
如要移動專案,您需要對來源資料夾和目的地資料夾都具有「專案移動者」IAM 角色 (roles/resourcemanager.projectMover
)。如果資源不在資料夾中,您就需要在機構資源擁有此角色。
這些角色會授予下列必要權限:
- 專案的
resourcemanager.projects.update
權限 - 如果資源位於資料夾中:在來源資料夾和目的地資料夾上按一下
resourcemanager.projects.move
- 如果資源不在資料夾中:機構資源上的
resourcemanager.projects.move
您也可以透過自訂角色或其他預先定義的角色取得這些權限。
控制台
如要移動專案,請按照下列步驟操作:
前往 Google Cloud 控制台的「管理資源」頁面。
在頁面左上角的「機構」下拉式選單中,選取您的機構。
在資源清單中,按一下專案列以選取專案。請注意,您「不可以」點選專案名稱,這麼做會前往專案的 IAM 頁面。
按一下資料列中的選項選單 (垂直的刪節號圖示),再按一下 [移動]。
按一下 [瀏覽],選取要移入專案的資料夾。
按一下 [移動]。
gcloud
如要移動專案,請執行
gcloud beta projects move
指令:
gcloud beta projects move PROJECT_ID \ --DESTINATION_TYPE DESTINATION_ID
其中:
PROJECT_ID 是要移動的專案 ID 或編號。
DESTINATION_TYPE 是
organization
或folder
。DESTINATION_ID 是要將專案移至的機構資源或資料夾的 ID。您只能指定一個目標。
API
您可以使用 v3 projects.move
方法遷移專案。
要求:
POST https://cloudresourcemanager.googleapis.com/v3/{name=PROJECT_NAME}:move { "destinationParent": DESTINATION_PARENT }
其中:
PROJECT_NAME
是要更新的專案名稱。例如:projects/415104041262
DESTINATION_PARENT
是要將專案移至的新上層機構資源或資料夾。例如:organizations/12345678901
如果成功,要求會傳回 Operation,可用於追蹤專案遷移作業。
將資料夾移入其他資料夾
如要將資料夾移入其他資料夾,您在來源資料夾及目的地資料夾都必須具備 resourcemanager.folders.move 權限。
主控台
將資料夾移至主控台其他資料夾的程序與移動專案相似。
- 在 Google Cloud 控制台中,開啟「管理資源」頁面。
- 在頁面左上角的「機構」下拉式選單中,選取您的機構資源。
- 在專案和資料夾清單中,按一下資料夾資料列以選取資料夾。
- 按一下資料列中的選項選單 (垂直的刪節號圖示),再按一下「移動」。
- 按一下 [瀏覽],選取資料夾要移入的資料夾。
- 按一下 [移動]。
gcloud
如要移動機構資源下的資料夾,請在 Google Cloud CLI 中執行以下指令:
gcloud resource-manager folders move [FOLDER_ID] \
--organization=[PARENT_ID]
如何移動其他資料夾下的資料夾:
gcloud resource-manager folders move [FOLDER_ID] \
--folder=[PARENT_ID]
更改下列內容:
[FOLDER_ID]
是要移動的資料夾 ID。[PARENT_ID]
是父項機構資源或資料夾的機構資源 ID 或資料夾 ID。
API
要求 JSON:
request_json= '{
destinationParent: "folders/[DESTINATION_FOLDER_ID]"
}'
「移動資料夾」curl 要求:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token} \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders/[DISPLAY_NAME]:move
更改下列內容:
[DESTINATION_FOLDER_ID]
是其他資料夾要移入的資料夾的 ID,例如98765
。[DISPLAY_NAME]
是要移動的資料夾的顯示名稱,例如「我的百寶箱」。
「移動資料夾」回應:
{
"name": "operations/fm.1234567890",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "[DISPLAY_NAME]",
"operationType": "MOVE"
}
}
「取得作業」curl 要求:
curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fm.1234567890
「取得作業」回應:
{
"name": "operations/fm.1234567890",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "[DISPLAY_NAME]",
"operationType": "MOVE"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
"name": "folders/12345",
"parent": "folders/98765",
"displayName": "[DISPLAY_NAME]",
"lifecycleState": "ACTIVE",
"createTime": "2017-07-19T23:29:26.018Z",
"updateTime": "2017-07-20T00:54:44.295Z"
}
}
查看或列出資料夾和專案
如要查看或列出資料夾,您必須擁有機構檢視者和資料夾檢視者角色。
如何查看或列出資料夾和專案:
主控台
在 Google Cloud 控制台中,開啟「管理資源」頁面。
在頁面頂端的專案選擇工具中,選取您的機構資源。您必須先建立資料夾,資料夾才會顯示在清單中。
在樹狀圖中選取任意資料列,以執行資料夾或專案特定的作業。
在搜尋列中輸入專案或資料夾名稱/ID,在清單中篩選出結果。
gcloud
如要取得單一資料夾的詳細資料,請使用 resource-manager folders describe
指令。
gcloud resource-manager folders describe FOLDER_ID
將 FOLDER_ID
替換為要查看的資料夾 ID。
如要列出機構資源的子資料夾,請使用 resource-manager folders list
指令。
gcloud resource-manager folders list \
--organization ORGANIZATION_ID
將 ORGANIZATION_ID
替換為要查看子資料夾清單的機構資源 ID。
如要列出資料夾資源的子資料夾,請使用 resource-manager folders list
指令。
gcloud resource-manager folders list \
--folder FOLDER_ID
將 FOLDER_ID
替換為要查看子資料夾清單的資料夾資源 ID。
如要列出機構、資料夾資源或資料夾下的專案,請使用 projects list
指令搭配 filter
引數。
gcloud projects list \
--filter=" parent.id: 'RESOURCE_ID' "
將 RESOURCE_ID
替換為要查看子專案清單的機構或資料夾資源 ID。
API
取得資料夾的 curl 要求:
curl -X GET -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]
將 FOLDER_NAME
替換為資料夾名稱,例如 folders/123
。
列出資料夾的 curl 要求:
curl -X GET -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/folders?parent=[PARENT_NAME]
將 PARENT_NAME
替換為您要在其中建立資料夾的父項資源名稱,例如 organizations/123
或 folders/123
。
使用 Google Cloud CLI
gcloud resource-manager folders
指令群組中提供使用 gcloud
指令列工具與 Folders API 互動的命令。
建立
如要建立新資料夾,請使用 gcloud resource-manager folders create
,搭配設定資料夾名稱的標記,以及您要建立的機構資源/資料夾的 ID。
gcloud resource-manager folders create \
--display-name="Super Fantastic Folder" \
--organization=2518
Created Folder 245321.
查看
如要查看資料夾,請使用 gcloud resource-manager folders describe
搭配您要查看的資料夾的 ID。
gcloud resource-manager folders describe 245321
name: folders/245321
parent: organizations/2518
display_name: Super Fantastic Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <timestamp info …>
清單
如要列出資料夾下的資料夾,請使用 gcloud resource-manager
folders list
,並使用 --folder
標記來傳遞資料夾 ID。您也可以透過 --organization
標記,列出機構資源下的頂層資料夾。
gcloud resource-manager folders list --folder 245321
<table output showing the folders underneath the folder with the specified ID>
gcloud resource-manager folders list --organization 2518
<table output showing folders in this Organization but not in any folder>
如要在清單中加入要求刪除的資料夾,請新增 --show-deleted 標記
gcloud beta resource-manager folders list --folder 245321 --show-deleted
<table output showing all the folders including the delete requested ones underneath the folder with the specified ID>
您可以使用 gcloud projects list
指令列出專案,並在 --filter
標記中傳遞父項資料夾或機構資源 ID。
gcloud projects list --filter=" parent.id: '245321' "
<table output showing the projects underneath the resource with the specified ID>
如要進一步瞭解權限和篩選器如何與清單指令互動,請參閱「列出階層中的所有資源」。
搜尋
如要搜尋符合指定查詢的資料夾,請使用 gcloud alpha resource-manager
folders search
,並在 --query
旗標中傳遞條件。搜尋範圍是使用者具備檢視權限的所有資料夾。
gcloud alpha resource-manager folders search --query="name:vij*"
<table output showing the folders with names starting from vij eg. vijeta, vijay-folder>
gcloud alpha resource-manager folders search --query="state:DELETE_REQUESTED"
<table output showing folders for which delete has been requested>
使用者可使用 gcloud folders search
指令,查看具備檢視權限的所有資料夾。
gcloud folders search
<table output showing all viewable folders>
更新
您可以使用 gcloud resource-manager folders update
指令來更新資料夾。目前只能更新資料夾的 display_name
欄位。
gcloud resource-manager folders update \
--display-name="Mega Incredible Folder" 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>
刪除
您可以從指令列刪除及取消刪除資料夾。使用者必須擁有「資料夾管理員」或「資料夾編輯者」角色,才能刪除資料夾。您只能刪除空白的資料夾。
gcloud resource-manager folders delete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: DELETE_REQUESTED
create_time: <timestamp info …>
update_time: <recent timestamp info …>
gcloud resource-manager folders undelete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>
移動專案
您可以使用現有的 gcloud projects create
和 gcloud projects move
指令,在資料夾中建立專案,以及將專案移入資料夾。此外,您也可以使用 gcloud resource-manager folders move.
gcloud projects create --folder=245321 fancy-folder-project
project_id: fancy-folder-project
project_number: 905283
parent:
type: "folder"
id: 245321
other fields …
gcloud projects move --folder=245321 soon-to-be-fancy-project
project_id: soon-to-be-fancy-project
project_number: 428714
parent:
type: "folder"
id: 245321
other fields …
長期執行的作業
有些資料夾作業,例如建立資料夾,可能需要較久時間。為了讓您更容易地進行多工作業,某些資料夾指令可透過非同步的方式執行。這些指令接受 --async
標記來啟用非同步行為,讓指令立即傳回長期執行的作業,而不是等待作業完成。您可以使用 gcloud beta resource-manager operations describe
指令來輪詢這項作業。目前只有 folders create
和 folders move
指令允許非同步使用。
gcloud resource-manager folders create \
--display-name="Awe-Inspiring Async Folder" \
--organization=2518 \
--async
name: operations/fc.8572
metadata:
operation_type: CREATE
display_name: Awe-Inspiring Async Folder
destination_parent: organizations/2518
done: false
[wait for some time …]
gcloud beta resource-manager operations describe fc.8572
name: operations/fc.8572
metadata:
operation_type: CREATE
display_name: Awe-Inspiring Async Folder
destination_parent: organizations/2518
done: true
response:
name: folders/6428
parent: organizations/2518
display_name: Awe-Inspiring Async Folder
lifecycle_state: ACTIVE
create_time: <recent timestamp info …>
update_time: <recent timestamp info …>