创建 DataSync 任务报告 - Amazon DataSync
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建 DataSync 任务报告

Amazon DataSync 任务报告只能是任务执行的摘要,也可以是关于 DataSync 尝试传输、跳过、验证和删除的内容的一组详细报告。

先决条件

在能够创建任务报告之前,您必须先执行以下操作。

为您的任务报告创建 S3 存储桶

如果您还没有 S3 存储桶,请创建一个 DataSync 可以在其中上传任务报告的 S3 存储桶。报告存储在 S3 Standard 存储类中。

我们建议在存储桶执行以下操作:

  • 如果您计划将数据传输到 S3 存储桶,当您禁用保留已删除文件选项时,不要使用相同的存储桶上传任务报告。否则,每次执行任务时 DataSync 都会删除之前的所有任务报告,因为这些报告不存在于您的来源位置。

  • 为避免复杂的访问权限设置,请确保您的任务报告存储桶 Amazon Web Services 账户 与您的 DataSync 转移任务位于同一区域中。

允许将任务报告上传 DataSync 到您的 S3 存储桶

您必须配置允许将任务报告上传 DataSync 到您的 S3 存储桶的 Amazon Identity and Access Management (IAM) 角色。

在 DataSync 控制台中,您可以创建一个 IAM 角色,该角色在大多数情况下会自动包含将任务报告上传到存储桶的权限。请记住,从最低权限的角度来看,这个自动生成的角色可能无法满足您的需求。如果您的存储桶使用客户托管 Amazon Key Management Service (Amazon KMS) 密钥 (SSE-KMS) 加密,则此角色也无法使用。在上述情况下,您可以手动创建角色,前提是该角色至少要完成以下操作:

  • 防止角色受信任实体中跨服务的代理混淆问题

    以下完整示例显示了如何使用aws:SourceArn和全aws:SourceAccount局条件上下文键来防止混淆副手问题 DataSync。

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "StringLike": { "aws:SourceArn": "arn:aws:datasync:us-east-2:123456789012:*" } } } ] }
  • 允许将任务报告上传 DataSync 到您的 S3 存储桶。

    以下示例通过仅包含存储桶中特定前缀 (reports/) 的 s3:PutObject 操作来实现此目的。

    JSON
    { "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::your-task-reports-bucket/reports/*" }] }
  • 如果您的 S3 存储桶使用客户托管的 SSE-KMS 密钥进行加密,则该密钥的策略必须包含 DataSync 用于访问该存储桶的 IAM 角色。

    有关更多信息,请参阅 使用服务器端加密访问 S3 存储桶

创建仅限摘要的任务报告

只有在创建任务、开始任务或更新 DataSync任务时,您才能配置包含摘要的任务报告。

以下步骤说明如何在创建任务时配置仅摘要任务报告。

  1. 打开 Amazon DataSync 控制台,网址为https://console.aws.amazon.com/datasync/

  2. 在左侧导航窗格中,展开数据传输,然后选择任务,然后选择创建任务

  3. 配置您任务的源位置和目标位置。

    有关更多信息,请参阅 我可以在哪里通过 Amazon DataSync传输数据?

  4. 向下滚动到任务报告部分。对于报告类型,选择仅摘要

  5. 对于用于报告的 S3 存储桶,请选择 DataSync 要在其中上传任务报告的 S3 存储桶。

    提示

    如果您计划将数据传输到 S3 存储桶,当您禁用保留已删除文件选项时,不要使用相同的存储桶上传任务报告。否则,每次执行任务时 DataSync 都会删除之前的所有任务报告,因为这些报告不存在于您的来源位置。

  6. “文件夹” 中,输入将报告 DataSync 上传到 S3 存储桶时用于任务报告的前缀(例如,reports/)。

    确保前缀末尾包含适当的分隔符。分隔符通常使用正斜杠 (/)。有关更多信息,请参阅Amazon S3 用户指南中的使用前缀组织对象

  7. 对于 IAM 角色,执行以下操作之一:

    • 选择 “自动生成” 可 DataSync自动创建具有访问 S3 存储桶所需权限的 IAM 角色。

      如果 DataSync 之前为此 S3 存储桶创建了 IAM 角色,则默认情况下会选择该角色。

    • 选择您创建的自定义 IAM 角色。

      在某些情况下,您可能需要自己创建角色。有关更多信息,请参阅 允许将任务报告上传 DataSync 到您的 S3 存储桶

      重要

      如果您的 S3 存储桶使用客户托管的 SSE-KMS 密钥进行加密,则该密钥的策略必须包含 DataSync 用于访问该存储桶的 IAM 角色。

      有关更多信息,请参阅 使用服务器端加密访问 S3 存储桶

  8. 完成任务的创建,然后启动任务以开始传输数据。

传输完成后,您可以查看任务报告

  1. 复制以下 create-task Amazon Command Line Interface (Amazon CLI) 命令:

    aws datasync create-task \ --source-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh \ --destination-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-abcdefgh12345678 \ --task-report-config '{ "Destination":{ "S3":{ "Subdirectory":"reports/", "S3BucketArn":"arn:aws:s3:::your-task-reports-bucket", "BucketAccessRoleArn":"arn:aws:iam::123456789012:role/bucket-iam-role" } }, "OutputType":"SUMMARY_ONLY" }'
  2. 对于 --source-location-arn参数,指定传输中源位置的 Amazon 资源名称(ARN)。us-east-1替换为相应的 Amazon Web Services 账户 编号 Amazon Web Services 区域,123456789012替换为相应的来源位置 ID,然后12345678abcdefgh替换为相应的来源位置 ID。

  3. 对于 --destination-location-arn 参数,请指定传输中目标位置的 ARN。us-east-1替换为相应的数字 Amazon Web Services 区域,123456789012替换为相应的 Amazon Web Services 账户 数字,然后abcdefgh12345678替换为相应的目标位置 ID。

  4. 对于 --task-report-config 参数,请执行以下操作:

    • Subdirectoryreports/ 替换为您的 S3 存储桶中您 DataSync 要上传任务报告的前缀。

      确保前缀末尾包含适当的分隔符。分隔符通常使用正斜杠 (/)。有关更多信息,请参阅Amazon S3 用户指南中的使用前缀组织对象

    • S3BucketArn — 指定您想要用于上传任务报告的 S3 存储桶的 ARN。

      提示

      如果您计划将数据传输到 S3 存储桶,当您禁用保留已删除文件选项时,不要使用相同的存储桶上传任务报告。否则,每次执行任务时 DataSync 都会删除之前的所有任务报告,因为这些报告不存在于您的来源位置。

    • BucketAccessRoleArn— 指定允许将任务报告上传 DataSync 到您的 S3 存储桶的 IAM 角色。

      有关更多信息,请参阅 允许将任务报告上传 DataSync 到您的 S3 存储桶

      重要

      如果您的 S3 存储桶使用客户托管的 SSE-KMS 密钥进行加密,则该密钥的策略必须包含 DataSync 用于访问该存储桶的 IAM 角色。

      有关更多信息,请参阅 使用服务器端加密访问 S3 存储桶

    • OutputType — 指定 SUMMARY_ONLY

      有关更多信息,请参阅 仅摘要任务报告

  5. 运行 create-task 命令来创建您的任务。

    您会收到如下所示的响应,其中显示了您创建的任务的 ARN。您需要此 ARN 才能运行 start-task-execution 命令。

    { "TaskArn": "arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh" }
  6. 复制以下 start-task-execution 命令。

    aws datasync-task-report start-task-execution \ --task-arn arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh
  7. 对于 --task-arn 参数,请指定您正在启动的任务的 ARN。使用您在运行 create-task 命令时收到的 ARN。

  8. 运行 start-task-execution 命令。

传输完成后,您可以查看任务报告

创建标准任务报告

您可以在创建任务、启动任务或更新 DataSync 任务时配置标准任务报告

以下步骤说明在创建任务时如何配置标准任务报告。

  1. 打开 Amazon DataSync 控制台,网址为https://console.aws.amazon.com/datasync/

  2. 在左侧导航窗格中,展开数据传输,然后选择任务,然后选择创建任务

  3. 配置您任务的源位置和目标位置。

    有关更多信息,请参阅 我可以在哪里通过 Amazon DataSync传输数据?

  4. 向下滚动到任务报告部分。对于报告类型,选择标准报告

  5. 对于报告级别,请选择下列选项之一:

    • 仅限错误-您的任务报告仅包含 DataSync 尝试传输、跳过、验证和删除的内容的问题。

    • 成功和错误-您的任务报告包括 DataSync 成功传输、跳过、验证和删除的内容以及未成功传输的内容。

    • 自定义:允许您选择仅查看错误或仅查看任务报告特定方面的成功和错误。

      例如,您可以为已传输的文件列表选择成功和错误,但为报告的其余部分选择仅错误

  6. 如果您要传输到使用对象版本控制的 S3 存储桶,并且希望您的报告中包含每个已传输对象的新版本,请选中包含 Amazon S3 对象版本。

  7. 对于用于报告的 S3 存储桶,请选择 DataSync 要在其中上传任务报告的 S3 存储桶。

    提示

    如果您计划将数据传输到 S3 存储桶,当您禁用保留已删除文件选项时,不要使用相同的存储桶上传任务报告。否则,每次执行任务时 DataSync 都会删除之前的所有任务报告,因为这些报告不存在于您的来源位置。

  8. “文件夹” 中,输入将报告 DataSync 上传到 S3 存储桶时用于任务报告的前缀(例如,reports/)。确保前缀末尾包含适当的分隔符。分隔符通常使用正斜杠 (/)。有关更多信息,请参阅Amazon S3 用户指南中的使用前缀组织对象

  9. 对于 IAM 角色,执行以下操作之一:

    • 选择 “自动生成” 可 DataSync自动创建具有访问 S3 存储桶所需权限的 IAM 角色。

      如果 DataSync 之前为此 S3 存储桶创建了 IAM 角色,则默认情况下会选择该角色。

    • 选择您创建的自定义 IAM 角色。

      在某些情况下,您可能需要自己创建角色。有关更多信息,请参阅 允许将任务报告上传 DataSync 到您的 S3 存储桶

      重要

      如果您的 S3 存储桶使用客户托管的 SSE-KMS 密钥进行加密,则该密钥的策略必须包含 DataSync 用于访问该存储桶的 IAM 角色。

      有关更多信息,请参阅 使用服务器端加密访问 S3 存储桶

  10. 完成任务的创建并启动任务以开始传输数据。

传输完成后,您可以查看任务报告

  1. 复制以下 create-task 命令:

    aws datasync create-task \ --source-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh \ --destination-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-abcdefgh12345678 \ --task-report-config '{ "Destination":{ "S3":{ "Subdirectory":"reports/", "S3BucketArn":"arn:aws:s3:::your-task-reports-bucket", "BucketAccessRoleArn":"arn:aws:iam::123456789012:role/bucket-iam-role" } }, "OutputType":"STANDARD", "ReportLevel":"level-of-detail", "ObjectVersionIds":"include-or-not" }'
  2. 对于(--source-location-arn 参数),指定传输中源位置的 ARN。us-east-1替换为相应的 Amazon Web Services 账户 编号 Amazon Web Services 区域,123456789012替换为相应的来源位置 ID,然后12345678abcdefgh替换为相应的来源位置 ID。

  3. 对于 --destination-location-arn 参数,请指定传输中目标位置的 ARN。us-east-1替换为相应的数字 Amazon Web Services 区域,123456789012替换为相应的 Amazon Web Services 账户 数字,然后abcdefgh12345678替换为相应的目标位置 ID。

  4. 对于 --task-report-config 参数,请执行以下操作:

    • Subdirectoryreports/ 替换为您的 S3 存储桶中您 DataSync 要上传任务报告的前缀。确保前缀末尾包含适当的分隔符。分隔符通常使用正斜杠 (/)。有关更多信息,请参阅Amazon S3 用户指南中的使用前缀组织对象

    • S3BucketArn — 指定您想要用于上传任务报告的 S3 存储桶的 ARN。

      提示

      如果您计划将数据传输到 S3 存储桶,当您禁用保留已删除文件选项时,不要使用相同的存储桶上传任务报告。否则,每次执行任务时 DataSync 都会删除之前的所有任务报告,因为这些报告不存在于您的来源位置。

    • BucketAccessRoleArn— 指定允许将任务报告上传 DataSync 到您的 S3 存储桶的 IAM 角色。

      有关更多信息,请参阅 允许将任务报告上传 DataSync 到您的 S3 存储桶

      重要

      如果您的 S3 存储桶使用客户托管的 SSE-KMS 密钥进行加密,则该密钥的策略必须包含 DataSync 用于访问该存储桶的 IAM 角色。

      有关更多信息,请参阅 使用服务器端加密访问 S3 存储桶

    • OutputType:指定 STANDARD 报告。

      有关详细信息,请参阅标准任务报告任务报告类型。

    • (可选)ReportLevel:指定您想要在您的报告中包含 ERRORS_ONLY(默认)还是 SUCCESSES_AND_ERRORS

    • (可选)ObjectVersionIds: 如果您要传输到使用对象版本控制的 S3 存储桶,且您不希望再报告中包含每个已传输对象的新版本,请指定 NONE

      默认情况下,此选项设置为 INCLUDE

    • (可选)Overrides:自定义您的报告的特定 ReportLevel 方面。

      例如,您可能想查看SUCCESSES_AND_ERRORS目标位置中 DataSync删除的内容的列表,但您想要ERRORS_ONLY查看其他所有内容。在此示例中,您可以在 --task-report-config 参数中添加以下 Overrides 选项:

      "Overrides":{ "Deleted":{ "ReportLevel":"SUCCESSES_AND_ERRORS" } }

      如果您不使用 Overrides,则整个报告将使用您指定的 ReportLevel

  5. 运行 create-task 命令来创建您的任务。

    您会收到如下所示的响应,其中显示了您创建的任务的 ARN。您需要此 ARN 才能运行 start-task-execution 命令。

    { "TaskArn": "arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh" }
  6. 复制以下 start-task-execution 命令。

    aws datasync-task-report start-task-execution \ --task-arn arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh
  7. 对于 --task-arn 参数,请指定您正在运行的任务的 ARN。使用您在运行 create-task 命令时收到的 ARN。

  8. 运行 start-task-execution 命令。

传输完成后,您可以查看任务报告