排解 Storage Intelligence 問題

本文說明如何排解 Storage Intelligence儲存空間分析 庫存報表儲存空間分析 資料集儲存空間批次作業的常見問題。

Storage Intelligence 設定錯誤

下列各節說明為資源設定或管理 Storage Intelligence 時,可能會遇到的錯誤。

400:bucket 名稱無效

問題:要求會傳回 400 Bad Request,並顯示訊息 The specified bucket is not valid.

解決方法:要求無效。請確認要求符合下列規定:

  • 使用 locations/global。Storage Intelligence 不支援其他位置。
  • 確認 bucket_id_regexes 中的 bucket 名稱或規則運算式有效。

以下是有效要求的範例:

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "edition_config": "STANDARD",
      "filter": {
        "included_cloud_storage_buckets": {
          "bucket_id_regexes": [
            "my-bucket-name",
            "prod-data-.*"
          ]
        }
      }
    }' \
    "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/intelligenceConfig?updateMask=edition_config,filter"

400:引數無效 - 更新遮罩為空白

問題:傳送設定或更新要求時,要求會傳回 400 Bad Request,並顯示 Empty UPDATE_MASK in the request. 訊息。

解決方法:在要求中提供非空白的 UPDATE_MASKUPDATE_MASK 指定 IntelligenceConfig 資源中要更新的 FieldMask 欄位 (例如 updateMask=edition_configupdateMask=edition_config,filter),並以逗號分隔的清單表示。

400:更新遮罩路徑無效

問題:更新設定時,要求會傳回 400 Bad Request,並顯示訊息 Invalid UPDATE_MASK paths.

解決方案:確認 UPDATE_MASK 中的每個欄位名稱都與 IntelligenceConfig 資源中的有效欄位相符。

400:無法編輯欄位

問題:更新設定時,要求會傳回 400 Bad Request,並顯示訊息 Invalid UPDATE_MASK: UPDATE_TIME field is not editable.

解決方法:從 UPDATE_MASK 移除無法編輯的系統欄位 (例如 UPDATE_TIME)。僅指定 IntelligenceConfig 中定義的可變動欄位。

400:無效值

問題:要求會傳回 400 Bad Request,並顯示訊息 Invalid value at storage_intelligence.edition_config.

解決方法:將 edition_config 設為支援的值:INHERITSTANDARDDISABLED

400:非空白篩選器

問題:要求會傳回 400 Bad Request,並顯示訊息 Non-empty filter cannot be specified for INHERIT or DISABLED edition configuration.

解決方法:從要求中移除bucket 篩選器。如果 edition_config 設為 INHERITDISABLED,則不支援 bucket 篩選器。

400:篩選器中的位置或值區值為空白

問題:要求會傳回 400 Bad Request,並顯示訊息 Empty location or bucket values in filter.

解決方案:確認 locationbucket值區篩選器中都不是空字串。

儲存空間分析常見問題

本節說明如何解決目錄報表資料集的常見問題。

每天產生多份資產盤點清單報告

問題:庫存報表設定每天會產生多個報表檔案。

解決方案:如果 bucket 包含超過 1,000,000 個物件,Cloud Storage 會將庫存報表分片,每 1,000,000 個物件產生一個分片。舉例來說,如果 bucket 包含 3,500,000 個物件,就會產生四個報表分片和一個列出每個分片的資訊清單檔案

目的地值區中未顯示庫存報表

問題:庫存報表未顯示在目的地 bucket 中。

解決方法:如果報表未傳送至目的地值區,請確認下列事項:

  • 確認設定的開始日期已過。詳情請參閱「建立商品目錄報表設定」。

  • 查看商品目錄報表記錄,找出失敗的報表及其根本原因。如要查看庫存報表記錄,請完成下列步驟:

    1. 前往 Cloud de Confiance 控制台的「Cloud Storage bucket」頁面。

      前往「Buckets」(值區) 頁面

    2. 在 bucket 清單中,點選包含商品型錄報表設定的來源 bucket 名稱。

    3. 在「Bucket details」(值區詳細資料) 頁面上,按一下「Inventory reports」(清單報表) 分頁標籤。

    4. 在資產盤點清單報告設定清單中,按一下產生要檢查報告的資產盤點清單報告設定 UUID。

    5. 檢查「目錄報表記錄」部分是否有失敗情形。將指標懸停在「說明」圖示 () 上,即可查看失敗原因的詳細資料。

  • 請確認專案層級服務代理已獲授權,可讀取及寫入資產清單報表所需的 IAM 角色。詳情請參閱「將必要角色授予服務代理」。

廣告空間報表延遲

問題:庫存報表產生作業延遲。

解決方法:報表產生時間不一。最多延遲 24 小時是正常現象。

資料集未填入資料

問題:儲存空間分析 資料集資料表仍為空白。

解決方法:在連結的 BigQuery 資料集中,檢查error_attributes_view錯誤代碼。詳情請參閱「排解資料集錯誤」。

查詢資料集時,「ref」欄中的空值

問題:在 BigQuery 中查詢儲存空間分析資料集時,ref 欄會傳回 null

解決方法:如果物件結尾為 /,資料集中的 ref 欄會是空值。

如果您在 BigQuery 中查詢 Storage Insights 資料集時,ref 欄傳回空值,請確認您已授予必要的連線權限和角色,包括存取 Cloud Storage 資源的權限,如「使用 BigQuery 分析物件資料和中繼資料」一文所述。

Storage 批次作業工作驗證錯誤

本節說明向 storagebatchoperations.googleapis.com 提交批次作業工作要求時發生的驗證錯誤。

400:工作 ID 或資源名稱無效

問題:工作建立要求會傳回 400 Bad Request (INVALID_ARGUMENT) 回應,原因為 JOB_ID_INVALIDRESOURCE_NAME_TOO_LONG

解決方案:確認工作 ID 包含 1 到 63 個小寫英數字元或連字號 ([a-z0-9]([-a-z0-9]*[a-z0-9])?),且完整資源路徑未超過 1,024 個位元組。詳情請參閱工作名稱

400:轉換參數衝突或缺漏

問題:工作建立要求會傳回 400 Bad Request (INVALID_ARGUMENT) 回應,並顯示 TRANSFORMATION_NOT_SPECIFIEDREWRITE_OBJECT_MISSING_PARAMETERSPUT_OBJECT_HOLD_MISSING_PARAMETERSPUT_METADATA_MISSING_PARAMETERS 原因。

解決方法:指定一個轉換類型,並提供所有必要參數。如要設定物件保留功能,請確認值區已啟用物件鎖定,且時間戳記採用 RFC 3339 UTC 格式。如要進一步瞭解各項轉換的參數需求,請參閱「工作類型」。

400:物件前置字串重疊或重複

問題:工作建立要求會傳回 400 Bad Request (INVALID_ARGUMENT) 回應,原因為 OBJECT_PREFIX_OVERLAPDUPLICATE_OBJECT_PREFIX

解決方法:移除重複的前置字串,並確保清單中沒有任何前置字串是其他項目的前置字串。included_object_prefixes詳情請參閱「物件前置字元」。

400:資訊清單檔案格式和存取問題

問題:工作建立要求會傳回 400 Bad Request (INVALID_ARGUMENT) 回應,並顯示 MANIFEST_LOCATION_REQUIREDMANIFEST_LOCATION_INVALID 原因,或工作無法讀取資訊清單。

解決方法:確認資訊清單 URI 是有效的 CSV 路徑 (gs://<bucket_name>/<path>/<object_name>.csv),且儲存空間批次作業服務代理程式在資訊清單值區中具有 roles/storage.objectViewer 角色。如要進一步瞭解 CSV 格式和架構規定,請參閱「資訊清單」。

400:儲存空間分析資料集探索錯誤

問題:使用儲存空間分析資料集探索物件時,系統會傳回 400 Bad Request (INVALID_ARGUMENTFAILED_PRECONDITION) 回應,並顯示 BUCKET_DISCOVERY_SNAPSHOT_TOO_OLDTARGET_LOCATIONS_REQUIRED_FOR_SNAPSHOT_TIMEBUCKET_DISCOVERY_TOO_MANY_BUCKETS 原因。

解決方法:確認 snapshot_time 位於過去 48 小時內,為值區指定 target_locations,並確保探索查詢比對的值區不超過 1,000 個。詳情請參閱「使用儲存空間分析資料集建立資訊清單」。

400:在已啟用自動調整級別功能的 bucket 上,儲存空間級別轉換失敗

問題:工作建立要求會傳回 400 Bad Request (FAILED_PRECONDITION) 回應,並附上原因 AUTOCLASS_STORAGE_CLASS_TRANSFORMATION_UNSUPPORTED

解決方案:如果 bucket 啟用自動調整級別功能,就無法執行儲存空間級別轉換。請指定沒有自動調整級別功能的值區,或移除儲存空間級別轉換。詳情請參閱「Autoclass 限制」。

400:無法更新統一值區層級存取權值區的物件 ACL

問題:工作建立要求會傳回 400 Bad Request (FAILED_PRECONDITION) 回應,並附上原因 UBLA_OBJECT_ACL_UPDATE_UNSUPPORTED

解決方法:如果值區已啟用統一值區層級存取權,您就無法更新物件 ACL。請改用 bucket 或專案層級的 IAM 角色管理存取權。詳情請參閱「統一 bucket 層級存取權」。

Storage 批次作業執行階段和執行問題

本節說明非同步執行批次作業工作時發生的問題。

403:執行期間發生權限錯誤

問題:批次工作在執行期間失敗,並顯示 403 Forbidden (PERMISSION_DENIED)。

解決方法:為 Storage 批次作業服務代理程式 (service-PROJECT_NUMBER@gcp-sa-storagebatchoperations.s3ns-system.iam.gserviceaccount.com) 授予轉換類型所需的 IAM 角色。詳情請參閱「授予服務代理權限」。

物件重寫期間發生 CMEK 加密錯誤

問題:由於 Cloud KMS 金鑰狀態或權限錯誤,物件重寫作業失敗並顯示 400 Bad Request403 Forbidden

解決方案:確認 Cloud KMS 金鑰為 Enabled,且與目標 bucket 位於相同區域,並確認服務代理具備 roles/cloudkms.cryptoKeyEncrypterDecrypter 角色。詳情請參閱「工作類型:重寫物件」。

error_summaries 中的失敗次數偏高

問題:批次工作完成時,counters.failed_object_count 為非零值,且 error_summaries 中有錯誤代碼 (例如 404 NOT_FOUND412 FAILED_PRECONDITION403 PERMISSION_DENIED)。

解決方法:使用 gcloud storage batch-operations jobs describe 搭配 --location 旗標 (例如 gcloud storage batch-operations jobs describe JOB_ID --location=LOCATION) 執行,即可查看匯總的錯誤細目,並在 Cloud Logging 中查看每個物件的錯誤記錄。詳情請參閱「取得工作詳細資料」。

快照已超過兩天,因此 Storage 批次作業工作失敗

問題:建立以 CEL 篩選器為基礎的儲存空間批次作業工作時,工作建立作業會失敗。錯誤訊息指出快照時間已超過兩天。

解決方法:為避免對過時的物件狀態執行動作,儲存空間批次作業會自動停止建立工作。如果所選快照的建立時間超過兩天,就會發生這項錯誤。如要解決這個問題,請選取下列其中一種做法:

  • 使用資訊清單檔案:在 BigQuery 中手動查詢資料集。將結果匯出至 CSV 資訊清單檔案,然後將該檔案上傳至 Cloud Storage bucket。接著,您可以使用資訊清單方法建立批次作業,避免受到兩天限制。
  • 檢查資料集設定:確認資料集設定已啟用,且未設為暫停狀態。確認資料集快照已順利執行。如要瞭解如何驗證設定,請參閱「查看資料集設定」。
  • 使用目標位置和快照時間覆寫:指定 --target-snapshot-time 旗標,以 RFC 3339 格式明確選取快照,藉此略過兩天過時失敗。指定 --target-locations 標記,將作業限制在快照所在位置。您可以使用這些覆寫設定,解決導致自動全域快照無法更新的同步延遲問題。因此,您可以手動指定較新的區域快照。如需指令語法,請參閱「使用進階篩選器建立工作」。

新訂閱的專案無法執行以 CEL 篩選器為基礎的 Storage 批次作業工作

問題:在剛訂閱的專案上執行以 CEL 篩選器為準的儲存空間批次作業工作時,系統找不到有效快照,因此作業會失敗。

解決方案:啟用 Storage Intelligence 訂閱方案後,您必須等待 24 小時,才能執行以 CEL 篩選器為準的儲存空間批次作業工作。這段延遲時間可讓系統執行初始中繼資料快照,並建立起始快照時間。

以 CEL 篩選器為基礎的儲存空間批次作業工作失敗,並顯示權限錯誤或擲回執行階段錯誤

問題:以 CEL 篩選器為基礎的儲存空間批次作業工作在執行期間失敗,或傳回執行階段權限錯誤。

解決方案:儲存空間批次作業會使用您的使用者憑證處理物件。如果沒有目標值區和物件的必要 IAM 讀取者或寫入者權限,工作就會失敗。如果 CEL 篩選器選取你無權存取的資源,就會發生這個問題。確認您的帳戶具備儲存空間管理員 (roles/storage.admin)、儲存空間物件管理員 (roles/storage.objectAdmin) 或等同的角色,可存取作業範圍內的所有 bucket 和物件。如需授予角色的操作說明,請參閱「使用 IAM 權限」。

監控與記錄分析

如要進一步瞭解如何在 Cloud Logging 中檢查每個物件的執行失敗情形和錯誤酬載,請參閱「查看儲存空間批次作業記錄」。

後續步驟