本頁面說明如何設定及查看 Storage 移轉服務記錄的 Cloud Logging。
所有移轉作業都支援 Storage 移轉服務的 Cloud Logging。系統不會針對以代理程式為基礎的轉移作業記錄 FIND 作業。
檔案系統移轉作業還可以設定檔案系統移轉記錄。
事前準備
開始前,請確認您有權存取 Cloud Logging。建議您使用「記錄檢視者」(roles/logging.viewer)身分與存取權管理角色。如要進一步瞭解 Logging 存取權,請參閱「使用 IAM 控管存取權」。
以下說明如何驗證及授予 IAM 存取權:
可記錄的動作
系統可記錄下列動作:
- FIND:尋找要執行的工作,例如列出目錄中的檔案、bucket 中的物件,或 bucket 中的代管資料夾。不支援以服務專員為基礎的轉移作業。
- COPY:將檔案或物件複製到 Cloud Storage。
- DELETE:刪除來源或目的地中的檔案或物件。如果是兩個檔案系統之間的轉移作業,系統也會記錄從中介 Cloud Storage 值區刪除檔案的作業。
可記錄狀態
您可以為每項動作選擇記錄下列一或多個狀態:
- SUCCEEDED:動作已成功執行。
- FAILED:動作失敗。
- SKIPPED:僅適用於 COPY 動作,且僅支援以代理程式為基礎的轉移工作。必須使用- gcloud或 REST API 設定。這個狀態表示已略過複製作業。當檔案已在接收端中存在,且轉移工作已設為忽略現有檔案時,就會發生這種情況。
啟用記錄功能
如要啟用記錄功能,請指定要記錄的動作和狀態。
gcloud CLI
使用 gcloud transfer jobs create 建立轉移工作時,請使用下列標記啟用記錄:
gcloud transfer jobs create SOURCE DESTINATION \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed,skipped
您必須為每個標記指定至少一個值。
REST
如要建立記錄設定,請搭配使用 transferJobs.create 和 LoggingConfig:
{
  "name":"transferJobs/myFirstTransfer",
  "status": "ENABLED",
  "projectId": "test-id-001",
  "loggingConfig": {
     "logActions": ["FIND", "DELETE", "COPY"],
     "logActionStates": ["SUCCEEDED", "FAILED", "SKIPPED"], #SKIPPED is only supported for agent-based transfers
  },
  "transferSpec": {
      "awsS3DataSource": {
          "bucketName": "AWS_SOURCE_NAME",
          "awsAccessKey": {
              "accessKeyId": "AWS_ACCESS_KEY_ID",
              "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
          }
      },
      "gcsDataSink": {
           "bucketName": "destination_bucket",
           "path": "foo/bar/"
      },
   }
}
調整 loggingConfig,以便將特定 logActions 和 logActionStates 加入記錄。舉例來說,如要記錄複製和尋找動作失敗的情況,請提供下列 loggingConfig:
"loggingConfig": {
  "logActions": ["COPY", "FIND"],
  "logActionStates": ["FAILED"],
}
更新記錄設定
gcloud CLI
如要更新現有工作的記錄設定,請搭配 gcloud transfer jobs update 指令使用適當的標記:
gcloud transfer jobs update NAME \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed,skipped
如要停用這項工作的記錄功能,請指定 --clear-log-config:
gcloud transfer jobs update NAME --clear-log-config
REST
如要更新現有移轉工作的記錄設定,請使用 transferJobs.patch 搭配 LoggingConfig:
{
  "projectId": "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": ["FIND", "DELETE", "COPY"],
       "logActionStates": ["SUCCEEDED", "FAILED", "SKIPPED"], #SKIPPED is only supported for agent-based transfers
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}
updateTransferJobFieldMask 會指定在這個要求中要更新的欄位,且為必要欄位。
如要停用這項工作的記錄功能,請傳送 loggingConfig,其中 logActions 和 logActionStates 的清單為空白:
{
  "projectId": "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": [],
       "logActionStates": [],
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}
查看記錄
如要查看移轉記錄,請按照下列步驟操作:
Google Cloud 控制台
- 前往 Google Cloud 導覽選單 menu,然後依序選取「Logging」>「Logs Explorer」 :<br\></br\> 
- 選取 Google Cloud 專案。 
- 在「Upgrade」選單中,將「Legacy Logs Viewer」切換為「Logs Explorer」。 
- 如要篩選記錄檔,只顯示 Storage Transfer Service 項目,請在查詢欄位中輸入 - storage_transfer_job,然後按一下「Run query」。
- 在「查詢結果」窗格中,按一下「編輯時間」,變更要傳回結果的時間範圍。 
如要進一步瞭解如何使用記錄檔探索工具,請參閱「使用記錄檔探索工具」。
gcloud CLI
如要使用 gcloud CLI 搜尋 Storage 移轉服務記錄,請使用 gcloud logging read 指令。
指定篩選器,將結果限制在 Storage 移轉服務記錄。
gcloud logging read "resource.type=storage_transfer_job"
Cloud Logging API
使用 entries.list Cloud Logging API 方法。
如要篩選結果,只顯示 Storage 移轉服務相關的項目,請使用 filter 欄位。以下是 JSON 要求物件的範例。
{
"resourceNames":
  [
    "projects/my-project-name"
  ],
  "orderBy": "timestamp desc",
  "filter": "resource.type=\"storage_transfer_job\""
}
移轉記錄檔格式
以下說明 Storage 移轉服務記錄的欄位。
所有 Storage 移轉服務專屬欄位都包含在 jsonPayload 物件中。
 FIND 項動作
{
  "jsonPayload": {
    "@type": "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog",
    "action": "FIND",
    "completeTime": "2021-12-16T18:58:49.344509695Z",
    "destinationContainer": {
      "gcsBucket": {
        "bucket": "my-bucket-2",
      },
      "type": "GCS",
    },
    "operation": "transferOperations/transferJobs-7876027868280507149--3019866490856027148",
    "sourceContainer": {
      "gcsBucket": {
        "bucket": "my-bucket-1"
      },
      "type": "GCS"
    },
    "status": {
      "statusCode": "OK"
    }
  }
}
 COPY 和 DELETE 動作
{
  "jsonPayload": {
    "@type": "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog",
    "action": "COPY",
    "completeTime": "2021-12-16T18:59:00.510509049Z",
    "destinationObject": {
      "gcsObject": {
        "bucket": "my-bucket-2",
        "objectKey": "README.md"
      },
      "type": "GCS",
    },
    "operation": "transferOperations/transferJobs-7876027868280507149--3019866490856027148",
    "sourceObject": {
      "gcsObject": {
        "bucket": "my-bucket-1",
        "lastModifiedTime": "2021-12-07T16:41:09.456Z",
        "md5": "WgnCOIdfCXNTUDpQJSKb2w==",
        "objectKey": "README.md",
      },
      "type": "GCS",
    },
    "status": {
      "statusCode": "OK"
    }
  }
}
| 記錄欄位 | 說明 | 
|---|---|
|  | |
| @type | 值一律為 type.googleapis.com/google.storagetransfer.logging.TransferActivityLog。 | 
| action | 說明這項特定工作的動作。可以是下列其中一項: 
 | 
| findAction | 指定尋找動作的對象是物件還是受管理的資料夾。 | 
| completeTime | 作業完成時的 ISO 8601 時間戳記。 | 
| destinationContainer | 僅針對  這項轉移作業的目標容器。包含兩個子欄位: 
 | 
| destinationObject | 僅適用於  目的地物件的相關資訊。包含兩個子欄位: 
 例如: "destinationObject": { "type": "POSIX_FS", "posixFile": { "crc32c": "0", "path": "/tmp/data/filename.txt", "lastModifiedTime": "2022-09-22T04:33:45Z" } } | 
| operation | 完整的 transferOperations名稱。 | 
| sourceContainer | 僅針對  這項轉移作業的來源容器。包含兩個子欄位: 
 例如: "sourceContainer": { "gcsBucket": { "bucket": "my-bucket-1" } type: "GCS" } | 
| sourceObject | 僅適用於  來源物件的相關資訊。包含兩個子欄位: 
 例如: "sourceObject": { "gcsObject": { "bucket": "my-bucket-1" "lastModifiedTime": "2021-12-07T16:41:09.456Z" "md5": "WgnCOIdfCXNTUDpQJSKb2w==" "objectKey": "README.md" } type: "GCS" } | 
| status | 動作的狀態。如果  | 
此外,頂層 resource 欄位包含下列欄位。
"resource": {
  "labels": {
    "job_id": "transferJobs/7876027868280507149"
    "project_id": "my-project-id"
  }
  "type": "storage_transfer_job"
}
| 記錄欄位 | 說明 | 
|---|---|
| resource.labels.job_id | 此記錄所屬的 Storage 移轉服務工作名稱。 | 
| resource.labels.project_id | 這項轉移作業的 Google Cloud 專案 ID。 |