本頁面說明如何設定及查看 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。 |