查看、更新及刪除資料夾

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Cloud Resource Manager API,查看資料夾詳細資料、更新顯示名稱、移動資料夾,以及刪除不需要的資料夾。管理資料夾可讓您整理資源,並隨著專案和團隊的發展,維護 Google Cloud 資源階層。

列出資料夾及查看資料夾詳細資料

如要列出資料夾或查看特定資料夾的中繼資料 (例如顯示名稱、上層 ID 和生命週期狀態),您必須具備資料夾檢視者角色 (roles/resourcemanager.folderViewer) 或組織檢視者角色 (roles/resourcemanager.organizationViewer)。

控制台

  1. 在 Google Cloud 控制台中,開啟「Manage resources」(管理資源) 頁面。

    開啟「管理資源」頁面

  2. 資源清單會以表格形式顯示階層。選取組織資源。

  3. 按一下組織名稱旁的箭頭,展開樹狀檢視畫面,查看子資料夾。

  4. 如要執行移動、刪除或查看設定等動作,請按一下該特定資源列尾端的 「Actions」(動作)。

  5. 使用資源清單頂端的「Filter」(篩選器) 列,依名稱、ID 或標籤搜尋資源。

使用專案挑選器

專案挑選器位於導覽列,不屬於 Resource Manager 主頁面介面。您可以使用這個指令,將現行全域環境切換至特定專案或資料夾。

  1. 按一下專案挑選器。在顯示的對話方塊中,從下拉式選單選取貴組織,篩選結果。

  2. 瀏覽階層結構,或搜尋要切換的專案或資料夾。在這個挑選器中點選資源,會變更全域背景資訊,進而影響其他服務頁面 (例如 Compute Engine 或 Cloud Storage) 顯示的資源。

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。

REST

取得資料夾的 curl 要求:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v3/FOLDER_ID

將 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。

頁面。

更新資料夾

如要更新資料夾的顯示名稱,您必須具備資料夾的資料夾編輯者角色 (roles/resourcemanager.folderEditor) 或資料夾管理員角色 (roles/resourcemanager.folderAdmin)。

控制台

  1. 在 Google Cloud 控制台中,開啟「Manage resources」(管理資源) 頁面。

    開啟「管理資源」頁面

  2. 按一下組織名稱旁的箭頭,展開樹狀檢視畫面,查看子資料夾。

  3. 在要更新的資料夾列中,按一下列尾的 「Actions」(動作) 選單,然後按一下「Settings」(設定)。

  4. 輸入新的資料夾名稱,然後按一下「儲存」。

gcloud

如要更新資料夾的顯示名稱,請按照下列步驟操作:

gcloud resource-manager folders update FOLDER_ID --display-name="NEW_DISPLAY_NAME"

更改下列內容:

  • FOLDER_ID:要更新的資料夾 ID。
  • NEW_DISPLAY_NAME:資料夾的新顯示名稱。

REST

使用任何要求資料之前,請先修改下列項目的值:

  • FOLDER_ID: Google Cloud 資料夾 ID
  • NEW_DISPLAY_NAME:資料夾的新顯示名稱

HTTP 方法和網址:

PATCH https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID?updateMask=displayName

JSON 要求內文:

{
  "displayName": "NEW_DISPLAY_NAME"
}

如要傳送要求,請選擇以下其中一個選項:

curl

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID?updateMask=displayName"

PowerShell

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID?updateMask=displayName" | Select-Object -Expand Content

您應該會收到如下的 JSON 回覆:

{
  "name": "operations/fc.1234567890abcdef",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperationMetadata",
    "displayName": "NEW_DISPLAY_NAME",
    "operationType": "UPDATE",
    "resourceName": "folders/FOLDER_ID"
  },
  "done": false
}

將資料夾移至其他資料夾

如要將資料夾移至其他資料夾,您必須具備來源和目的地資料夾的 resourcemanager.folders.move 權限。

控制台

將資料夾移至主控台其他資料夾的程序與移動專案相似。

  1. 在 Google Cloud 控制台中,開啟「管理資源」頁面。

    開啟 Google Cloud 控制台

  2. 從頁面左上方的「Organization」(組織) 下拉式選單中,選取組織資源。
  3. 在專案和資料夾清單中,按一下資料夾所在的列,選取資料夾。
  4. 按一下資料列中的選項選單 (垂直刪節號),然後點選「Move」(移動)。
  5. 按一下 [瀏覽],選取資料夾要移入的資料夾。
  6. 按一下 [移動]。

gcloud

如要移動組織資源下的資料夾,請在 Google Cloud CLI 中執行下列指令:

gcloud resource-manager folders move FOLDER_ID \
    --organization=PARENT_ID

更改下列內容:

  • FOLDER_ID:要移動的資料夾 ID。
  • PARENT_ID:上層組織資源的 ID。

如何移動其他資料夾下的資料夾:

gcloud resource-manager folders move FOLDER_ID \
    --folder=PARENT_ID

更改下列內容:

  • FOLDER_ID:要移動的資料夾 ID。
  • PARENT_ID:上層組織資源或資料夾的 ID。

REST

要求 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"
  }
}

刪除資料夾

如要刪除資料夾,您必須具備該資料夾的「資料夾編輯者」角色 (roles/resourcemanager.folderEditor) 或「資料夾管理員」角色 (roles/resourcemanager.folderAdmin)。

控制台

  1. 在 Google Cloud 控制台中,開啟「Manage resources」(管理資源) 頁面。

    開啟「管理資源」頁面

    前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。

  2. 按一下組織名稱旁的箭頭,展開樹狀檢視畫面,查看子資料夾。

  3. 在要刪除的資料夾列中,按一下該列結尾的 「Actions」(動作) 選單,然後點選「Delete」(刪除)。

  4. 在確認對話方塊中,輸入資料夾 ID 或名稱進行確認,然後按一下「刪除」。

gcloud

如要刪除資料夾,請執行下列指令:

gcloud resource-manager folders delete FOLDER_ID

更改下列內容:

  • FOLDER_ID:要刪除的資料夾 ID。

REST

使用任何要求資料之前,請先修改下列項目的值:

  • FOLDER_ID: Google Cloud 資料夾 ID

HTTP 方法和網址:

DELETE https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID

如要傳送要求,請選擇以下其中一個選項:

curl

執行下列指令:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID"

PowerShell

執行下列指令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID" | Select-Object -Expand Content

您應該會收到如下的 JSON 回覆:

{
  "name": "operations/fc.1234567890abcdef",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperationMetadata",
    "operationType": "DELETE",
    "resourceName": "folders/FOLDER_ID"
  },
  "done": false
}

其他資訊

刪除資料夾後,資料夾會進入虛刪除狀態,保留 30 天後才會永久刪除 (即硬刪除)。

虛刪除狀態:在 30 天保留期間,資料夾會標示為待刪除,且不再有效。您無法在虛刪除的資料夾中建立新專案或子資料夾。

永久刪除狀態:30 天後, Google Cloud 會永久移除資料夾及其中繼資料。這個動作無法復原。

取消刪除:如果不小心刪除資料夾,可以在 30 天內使用 gcloud resource-manager folders undelete 指令或 API 還原。

必要條件和限制

  • 資料夾必須為空白:您無法刪除仍含有使用中專案或子資料夾的資料夾。請先移動或刪除所有子資源。
  • 必要權限:如要刪除或取消刪除資料夾,您必須具備資料夾編輯者 (roles/resourcemanager.folderEditor) 或資料夾管理員 (roles/resourcemanager.folderAdmin) 角色。

如要搜尋符合指定查詢的資料夾,請使用 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>

後續步驟