

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用任务报告监控您的数据传输
<a name="task-reports"></a>

*任务报告*可提供详细信息，说明在任务执行期间， Amazon DataSync 尝试传输、跳过、验证和删除的内容。有关更多信息，请参阅 [如何 DataSync 传输文件、对象和目录](how-datasync-transfer-works.md#transferring-files)。

任务报告以 JSON 格式生成。您可以自定义报告的详细程度：
+ [仅摘要任务报告](#task-report-types-summary)可为您提供有关任务执行的必要详细信息，例如传输了多少文件以及是否 DataSync 可以验证这些文件的数据完整性。
+ [标准任务报告](#task-report-types-standard)包括摘要和详细报告，其中列出了 DataSync尝试传输、跳过、验证和删除的每个文件、对象或文件夹。使用标准任务报告，您还可以指定[报告级别](#task-report-level)，以仅显示任务执行的错误，或其成功和错误。

## 使用案例
<a name="task-reports-use-cases"></a>

下面是任务报告可以帮助您对数据传输进行监控和审计的一些情境：
+ 迁移数百万个文件时，请快速识别传输 DataSync 有问题的文件。
+ 验证文件的 chain-of-custody进程。

## 仅摘要任务报告
<a name="task-report-types-summary"></a>

仅包含任务执行摘要的报告包括以下详细信息：
+  Amazon Web Services 账户 运行任务执行的
+ 源和目标位置
+ 跳过、传输、验证和删除的文件、对象和文件夹总数
+ 传输的总字节（逻辑字节和物理字节）
+ 任务执行是否完成、取消或遇到错误
+ 开始和结束时间（包括传输的总时间）
+ 任务的设置（例如带宽限制、数据完整性验证和其他 DataSync 传输选项）

## 标准任务报告
<a name="task-report-types-standard"></a>

标准任务报告包括任务执行[摘要](#task-report-types-summary)，以及有关 DataSync 尝试传输、跳过、验证和删除的内容的详细报告。

**Topics**
+ [报告级别](#task-report-level)
+ [传输报告](#task-report-types-transferred)
+ [跳过报告](#task-report-types-skipped)
+ [验证报告](#task-report-types-verified)
+ [删除报告](#task-report-types-deleted)

### 报告级别
<a name="task-report-level"></a>

使用标准任务报告，您可以选择以下报告级别之一：
+ 仅错误
+ 成功与错误（本质上是任务执行过程中所发生一切情况的列表）

例如，您可能想查看哪些文件在传输过程中成功 DataSync 跳过，哪些文件没有成功跳过。成功 DataSync 跳过的文件可能是您故意 DataSync 要排除的文件，因为它们已经存在于您的目标位置。但是，例如，跳过的错误可能表明该用户 DataSync 没有读取文件的正确权限。

### 传输报告
<a name="task-report-types-transferred"></a>

任务执行期间 DataSync 尝试传输的文件、对象和目录的列表。传输报告包括以下详细信息：
+ 传输数据的路径
+ 传输数据的内容（内容、元数据或两者兼而有之）
+ 元数据，包括数据类型、内容大小（仅限对象和文件）等
+ 项目被转移的时间
+ 对象版本（当目标是启用了版本控制的 Amazon S3 存储桶时）
+ 目标中的某些内容是否被覆盖
+ 项目是否传输成功

**注意**  
在 S3 存储桶之间移动数据时，您在[源位置](create-s3-location.md)中指定的前缀可能会显示在您的报告（或 Amazon CloudWatch 日志中）中，即使该前缀不作为目标位置中的对象存在。（在 DataSync 控制台中，您可能还会注意到此前缀显示为已跳过或已验证的数据。）

### 跳过报告
<a name="task-report-types-skipped"></a>

在您的源位置 DataSync 找到但未尝试传输的文件、对象和目录的列表。 DataSync 跳过数据的原因可能取决于多种因素，例如如何配置任务和存储系统权限。下面是一些示例：
+ 一个文件存在于源位置和目标位置。自上次执行任务以来，源位置的文件未被修改。由于您[只传输已更改的数据，](configure-metadata.md#task-option-transfer-mode)因此下次运行任务时 DataSync 不会传输该文件。
+ 两个位置都存在的某个对象在源位置发生变化。运行任务时，会 DataSync 跳过目标中的此对象，因为您的任务不会[覆盖目标中的数据](configure-metadata.md#task-option-file-object-handling)。
+ DataSync 跳过源代码中使用[存档存储类](create-s3-location.md#using-storage-classes)且未恢复的对象。您必须恢复已存档的对象 DataSync 才能读取它。
+ DataSync 跳过源位置中的文件、对象或目录，因为它无法读取它。如果发生这种情况但不是预料之中的，请检查存储空间的访问权限，并确保该权限 DataSync 可以读取跳过的内容。

跳过报告包括以下详细信息：
+ 已跳过数据的路径
+ 跳过某件项目的时间
+ 被跳过的原因
+ 项目是否成功跳过

**注意**  
如果跳过报告包含成功和错误，您将任务配置为[只传输已更改的数据](configure-metadata.md)，并且源数据已存在于目标位置，那么跳过报告可能会很大。

### 验证报告
<a name="task-report-types-verified"></a>

在任务执行期间 DataSync 试图验证完整性的文件、对象和目录的列表。已验证数据的报告包括以下详细信息：
+ 已验证数据的路径
+ 项目得到验证的时间
+ 验证错误的原因（如果有）
+ 源校验和目标 SHA256 校验和（仅限文件）
+ 项目是否成功验证

请注意有关验证报告的以下注意事项：
+ 当您将任务配置为[仅验证传输的数据](configure-data-verification-options.md)时，在某些情况下 DataSync 不验证目录或无法传输的文件或对象。无论哪种情况，都 DataSync 不会在此报告中包含未经验证的数据。
+ 如果使用[增强模式](choosing-task-mode.md)，则在传输大型对象时，验证花费的时间可能会比平时更长。

### 删除报告
<a name="task-report-types-deleted"></a>

任务执行期间删除的文件、目录和对象的列表。 DataSync 仅当[您将任务配置为](configure-metadata.md)删除目标位置中不在源中的数据时，才会生成此报告。已删除数据的报告包括以下详细信息：
+ 已删除数据的路径
+ 项目是否成功删除
+ 删除项目的时间

## 示例任务报告
<a name="task-report-example"></a>

任务报告的详细程度由您决定。下面是一些采用以下配置的传输数据报告示例：
+ **报告类型**：标准
+ **报告级别**：成功和错误

**注意**  
报告使用 ISO-8601 标准作为时间戳格式。时间采用 UTC 格式，以纳秒为单位。这种行为不同于其他一些任务报告指标的测量方式。例如，[任务执行细节](https://docs.amazonaws.cn/datasync/latest/userguide/API_TaskExecutionResultDetail.html)（例如 `TransferDuration` 和 `VerifyDuration` ）以毫秒为单位进行测量。

增强模式任务报告使用的架构与基本模式任务报告略有不同。根据所用[任务模式](choosing-task-mode.md)，以下示例有助于您了解相应报告将呈现哪些内容。

**具有成功状态的传输数据报告示例**  
以下报告显示名为 `object1.txt` 的对象的传输取得成功。  

```
{
    "TaskExecutionId": "exec-abcdefgh12345678",
    "Transferred": [{
        "RelativePath": "object1.txt",
        "SourceMetadata": {
            "Type": "Object",
            "ContentSize": 6,
            "LastModified": "2024-10-04T14:40:55Z",
            "SystemMetadata": {
                "ContentType": "binary/octet-stream",
                "ETag": "\"9b2d7e1f8054c3a2041905d0378e6f14\"",
                "ServerSideEncryption": "AES256"
            },
            "UserMetadata": {},
            "Tags": []
        },
        "Overwrite": "False",
        "DstS3VersionId": "jtqRtX3jN4J2G8k0sFSGYK1f35KqpAVP",
        "TransferTimestamp": "2024-10-04T14:48:39.748862183Z",
        "TransferType": "CONTENT_AND_METADATA",
        "TransferStatus": "SUCCESS"
    }]
}
```

```
{
    "TaskExecutionId": "exec-abcdefgh12345678",
    "Transferred": [{
        "RelativePath": "/object1.txt",
        "SrcMetadata": {
            "Type": "Regular",
            "ContentSize": 6,
            "Mtime": "2022-01-07T16:59:26.136114671Z",
            "Atime": "2022-01-07T16:59:26.136114671Z",
            "Uid": 0,
            "Gid": 0,
            "Mode": "0644"
        },
        "Overwrite": "False",
        "DstS3VersionId": "jtqRtX3jN4J2G8k0sFSGYK1f35KqpAVP",
        "TransferTimestamp": "2022-01-07T16:59:45.747270957Z",
        "TransferType": "CONTENT_AND_METADATA",
        "TransferStatus": "SUCCESS"
    }]
}
```

**具有错误状态的传输数据报告示例**  
以下报告提供了何时 DataSync 无法传输名为的对象的示例`object1.txt`。  
此报告显示`object1.txt`由于 Amazon KMS 权限问题而 DataSync 无法访问名为的对象。（如果您遇到此类错误，请参阅 [使用服务器端加密访问 S3 存储桶](create-s3-location.md#create-s3-location-encryption)。）  

```
{
    "TaskExecutionId": "exec-abcdefgh12345678",
    "Transferred": [{
        "RelativePath": "object1.txt",
        "SourceMetadata": {
            "Type": "Object",
            "ContentSize": 6,
            "LastModified": "2022-10-07T20:48:32Z",
            "SystemMetadata": {
                "ContentType": "binary/octet-stream",
                "ETag": "\"3a7c0b2f1d9e5c4a6f8b2e0d1c9f7a3b2\"",
                "ServerSideEncryption": "AES256"
            },
            "UserMetadata": {},
            "Tags": []
        },
        "Overwrite": "False",
        "TransferTimestamp": "2022-10-09T16:05:11.134040717Z",
        "TransferType": "CONTENT_AND_METADATA",
        "TransferStatus": "FAILED",
        "ErrorCode": "AccessDenied",
        "ErrorDetail": "User: arn:aws:sts::111222333444:assumed-role/AWSDataSyncS3Bucket/AwsSync-loc-0b3017fc4ba4a2d8d is not authorized to perform: kms:GenerateDataKey on resource: arn:aws:kms:us-east-1:111222333444:key/1111aaaa-22bb-33cc-44d-5555eeee6666 because no identity-based policy allows the kms:GenerateDataKey action"
    }]
}
```
此报告显示，由于 S3 存储桶权限问题，名为 `object1.txt` 的对象未传输。（如果您遇到此类错误，请参阅 [提供 DataSync 对 S3 存储桶的访问权限](create-s3-location.md#create-s3-location-access)。）  

```
{
    "TaskExecutionId": "exec-abcdefgh12345678",
    "Transferred": [{
        "RelativePath": "/object1.txt",
        "SrcMetadata": {
            "Type": "Regular",
            "ContentSize": 6,
            "Mtime": "2022-01-07T16:59:26.136114671Z",
            "Atime": "2022-01-07T16:59:26.136114671Z",
            "Uid": 0,
            "Gid": 0,
            "Mode": "0644"
        },
        "Overwrite": "False",
        "DstS3VersionId": "jtqRtX3jN4J2G8k0sFSGYK1f35KqpAVP",
        "TransferTimestamp": "2022-01-07T16:59:45.747270957Z",
        "TransferType": "CONTENT_AND_METADATA",
        "TransferStatus": "FAILED",
        "FailureReason": "S3 Get Object Failed",
        "FailureCode": 40974
    }]
}
```

## 限制
<a name="task-report-limitations"></a>
+ 单个任务报告大小不能超过 5 MB。如果您要复制大量文件，您的任务报告可能会被拆分为多个报告。
+ 在某些情况下，创建任务报告会影响数据传输的性能。例如，当网络连接延迟较高、传输的文件较小，或只复制元数据更改时，您可能会注意到这种情况。