中的职位 AWS Data Exchange - AWS Data Exchange 用户指南

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

中的职位 AWS Data Exchange

AWS Data Exchange 作业是异步导入或导出操作。

作为提供商,您可以创建和管理要发布到产品的数据集。您可以将您的资产或修订版下载(导出)或复制到亚马逊简单存储服务 (Amazon S3) 或已签名。URL此外,提供商可以从 Amazon API Gateway 导入资产API或从 Amazon Redshift 数据集中导入资产。

作为订阅者,您可以查看和访问您通过订阅享有权限的数据集。您可以使用这些API操作将授权的数据集下载(导出)或复制到 Amazon S3,以用于各种 AWS 分析和机器学习服务。

要创建或复制资源或通过作业复制修订版本,可以使用 AWS Management Console、 AWS Command Line Interface (AWS CLI)、您自己的REST应用程序或其中一个 AWS SDKs。

作业将在创建 90 天后被删除。

作业属性

作业具有以下属性:

  • 作业 ID – 创建作业时生成的 ID,用于唯一标识该作业。

  • 作业类型 – 支持以下作业类型:

    • 从 Amazon S3 导入

    • 导入 AWS Lake Formation 数据权限(预览版)

    • 从已签名导入 URL

    • 从亚马逊API网关导入 API

    • 从 Amazon Red AWS Data Exchange shift 的数据共享中导入

    • 导入 Amazon S3 数据访问权限

    • 导出到 Amazon S3

    • 导出到已签名 URL

  • Amazon 资源名称 (ARN)- AWS 资源的唯一标识符。

  • 作业状态 – 作业状态为 WAITINGIN_PROGRESSCOMPLETEDCANCELLEDERRORTIMED_OUT。创建作业后,在启动之前,该作业会一直处于 WAITING 状态。

  • 作业详细信息 – 作业要执行的操作的详细信息,例如导出目标详细信息或导入来源详细信息。

例 作业资源
{ "Arn": "arn:aws:dataexchange:us-east-1:123456789012:jobs/6cEXAMPLE818f7c7a23b3d0EXAMPLE1c", "Id": "6cEXAMPLE818f7c7a23b3d0EXAMPLE1c", "State": "COMPLETED", "Type": "IMPORT_ASSETS_FROM_S3", "CreatedAt": "2019-10-11T14:12:24.640Z", "UpdatedAt": "2019-10-11T14:13:00.804Z", "Details": { "ImportAssetsFromS3": { "AssetSources": [ { "Bucket": "amzn-s3-demo-bucket", "Key": "MyKey" } ], "DataSetId": "14EXAMPLE4460dc9b005a0dEXAMPLE2f", "RevisionId": "e5EXAMPLE224f879066f999EXAMPLE42" } } }

AWS 区域 和工作

如果您在 Amazon S3 存储桶中导入或导出与数据集所在区域不同 AWS 区域 的 Amazon S3 存储桶,则根据 Amazon S3 数据传输定价政策,您需要支付数据传输费用。 AWS 账户

如果您将资产导出到签名的URL, AWS 账户 则根据亚马逊 S3 的定价政策,您需要支付从 Amazon S 3 到互联网的数据传输费用。

当您对 fo AWS Data Exchange r Files 数据集的订阅结束后,您仍可以访问已导出的任何文件。查看您的数据订阅协议,以验证该协议是否要求您在结束订阅时删除导出的数据。

导入资产

您可以通过以下方式将资产导入修订:

从 S3 存储桶导入资产

将资产从 Amazon S3 导入到时 AWS Data Exchange,您使用的 AWS Identity and Access Management (IAM) 权限必须包括写入 AWS Data Exchange 服务 S3 存储桶和从存储资产的 S3 存储桶中读取数据的功能。无论所有权如何,您都可以从您有权访问的任何 S3 存储桶中导入。有关更多信息,请参阅 Amazon S3 权限

在单个作业中,您最多可以导入 100 个资产。

从 S3 存储桶导入资产 (AWS SDKs)

从 Amazon S3 存储桶导入资产 (AWS SDKs)
  1. 创建类型为 IMPORT_ASSETS_FROM_S3CreateJob 请求。

  2. 在该请求中包含以下内容:

    • AssetSources

      • Bucket

      • Key

    • DataSetID

    • RevisionID

  3. 使用需要步骤 1 中返回的 JobIdStartJob 操作启动 CreateJob 请求。

  4. (可选)在创建资产后,更新其名称属性。

从 S3 存储桶导入资产(控制台)

要从 S3 存储桶导入资产(控制台),请按以下步骤操作:
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧的导航窗格中,为发布数据选择拥有的数据集

  3. 拥有的数据集中,选择包含您要更新的修订的数据集。

  4. 修订选项卡中,选择创建修订,以打开创建修订页面。

    1. 对于修订设置,为您的修订提供介绍修订目的的可选注释。

    2. 对于添加标签 - 可选,添加与该资源关联的标签。

    3. 选择创建

      您的新修订即会创建。

  5. 对于作业部分,选择从 Amazon S3 导入

  6. 按照从 Amazon S3 导入窗口中的提示进行操作,然后选择导入资产

    此时,将您的资产导入数据集的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

从已签名文件导入资产 URL

您可以使用已签名导URLs入未存储在 Amazon S3 中的资产。

从已签名的 URL (AWS SDKs) 中导入资产

从已签名的 URL (AWS SDKs) 中导入资产
  1. 创建类型为 IMPORT_ASSET_FROM_SIGNED_URLCreateJob 请求。

  2. 在该请求中包含以下内容:

    • AssetName

    • DataSetID

    • Md5Hash

    • RevisionID

  3. 使用需要步骤 1 中返回的 JobIdStartJob 操作启动 CreateJob 请求。

  4. (可选)在创建资产后,更新其名称属性。

  5. 响应详细信息包括可用于导入文件的 SignedUrl

注意

签名文件在创建后一分钟URL过期。

从已签名URL(控制台)导入资产

从已签名URL(控制台)导入资产
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧的导航窗格中,为发布数据选择拥有的数据集

  3. 拥有的数据集中,选择包含您要更新的资产的数据集。

  4. 修订选项卡中,选择创建修订,以打开创建修订页面。

    1. 对于修订设置,为您的修订提供介绍修订目的的可选注释。

    2. 对于添加标签 - 可选,添加与该资源关联的标签。

    3. 选择创建

      您的新修订即会创建。

  5. 对于作业部分,选择上传

  6. 按照上传窗口中的提示进行操作,然后选择打开

    此时,将您的资产导入数据集的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

从 Amazon API Gateway 导入资产 API

AWS Data Exchange 订阅者可以使用其IAM凭 AWS SDKs据并APIs从数据提供商处拨打电话。 AWS Data Exchange APIs通过处理身份验证和订阅权利来管理对的访问权限。

从 Amazon API Gateway 导入API资产 API (AWS SDKs)

注意

目前,以下各项不支持该SendApiAsset操作SDKs:

  • AWS SDK for .NET

  • AWS SDK for C++

  • AWS SDK for Java 2.x

从 Amazon API Gateway 导入资产 API (AWS SDKs)
  1. 创建类型为 IMPORT_ASSET_FROM_API_GATEWAY_APICreateJob 请求。

  2. 在该请求中包含以下内容:

    • ApiID

    • DataSetID

    • ProtocolType

    • RevisionID

    • Stage

  3. 使用需要步骤 1 中返回的 JobIdStartJob 操作启动 CreateJob 请求。

  4. (可选)轮询 GetJob 操作,以等待作业完成。

  5. (可选)在创建资产后,更新其名称属性。

从 Amazon API GatewayAPI(控制台)导入API资产

从 Amazon API GatewayAPI(控制台)导入资产
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧的导航窗格中,为发布数据选择拥有的数据集

  3. 拥有的数据集中,选择包含您要更新的资产的数据集。

  4. 修订选项卡中,选择创建修订,以打开创建修订页面。

    1. 对于修订设置,为您的修订提供介绍修订目的的可选注释。

    2. 对于添加标签 - 可选,添加与该资源关联的标签。

    3. 选择创建

      您的新修订即会创建。

  5. 在 “API资产” 部分,选择 “添加API阶段”。

  6. 添加API舞台页面上,从您的账户 AWS 账户 或其他账户中选择 Amazon API Gateway API舞台名称

  7. API对于订阅者的文档

    1. API名称更新为订阅者可以理解的简洁明了的名称。

    2. 通过在字段中输入规范,记录 Open API 3.0 规范,选择从中导入规范。 JSON文件,或者通过选择 “从 Amazon API Gateway 导入” 来导入规范。

  8. 选择 “添加API舞台”。

    将您的API资产导入数据集的任务已启动。作业完成后,作业部分的状态字段将更新为已完成

从 AWS Data Exchange 数据共享中为亚马逊 Redshift 导入资产

当您使用适用于 Amazon Red AWS Data Exchange shift 的数据共享导入资产时,您可以在订阅后开始查询、分析和操作第三方 Amazon Redshift 表。

从 AWS Data Exchange 数据共享中为亚马逊 Redshift 导入资产 ()AWS SDKs

从 Amazon Red AWS Data Exchange shift 的数据共享中导入资产 ()AWS SDKs
  1. 创建类型为 IMPORT_ASSETS_FROM_REDSHIFT_DATA_SHARESCreateJob 请求。

  2. 在该请求中包含以下内容:

    • AssetSources

      • DataShareArn

    • DataSetID

    • RevisionID

  3. 使用需要步骤 1 中返回的 JobIdStartJob 操作启动 CreateJob 请求。

  4. (可选)轮询 GetJob 操作,以等待作业完成。

  5. (可选)在创建资产后,更新其名称属性。

从 Amazon Red AWS Data Exchange shift 的数据共享中导入资产(控制台)

从ADE数据共享中导入资产(适用于亚马逊 Redshift 控制台)
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧的导航窗格中,为发布数据选择拥有的数据集

  3. 拥有的数据集中,选择包含您要更新的资产的数据集。

  4. 修订选项卡中,选择创建修订,以打开创建修订页面。

    1. 对于修订设置,为您的修订提供介绍修订目的的可选注释。

    2. 对于添加标签 - 可选,添加与该资源关联的标签。

    3. 选择创建

      您的新修订即会创建。

  5. 对于适用于 Amazon Redshift 的AWS Data Exchange 数据共享部分,选择添加数据共享

  6. 在 “将 AWS Data Exchange 数据共享添加到修订版” 页面上,选择要添加的一个或多个数据共享。

  7. 选择添加数据共享

    此时,将您的资产导入数据集的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

从 AWS Lake Formation (预览)导入资源

从导入资源时 AWS Lake Formation AWS Data Exchange,您使用的IAM权限必须包括以下功能:

  • 写入、授予和撤销 Lake Formation 权限

  • 为表、数据库和目录创建资源共享

  • 更新、删除、关联和取消关联以 Lake Formation 开头的任何资源共享

有关必需权限和推荐IAM权限的更多信息,请参阅中的身份和访问管理 AWS Data Exchange

从 AWS Lake Formation (预览)导入资源 (AWSSDKs)

从 AWS Lake Formation (预览)(AWSSDKs) 导入资源
  1. 创建类型为 Import_Assets_From_Lake_Formation_Tag_PolicyCreateJob 请求。

  2. 在该请求中包含以下内容:

    • AssetSources

      • CatalogId

      • Database

        • Expression

          • TagKey

          • TagValues

        • Permissions

      • Table

        • Expression

          • TagKey

          • TagValues

        • Permissions

    • RoleArn

    • DataSetId

    • RevisionId

  3. 使用需要 JobIdStartJob 操作启动 CreateJob 请求。

  4. (可选)轮询 GetJob 操作,以等待作业完成。

  5. (可选)在创建资产后,更新其名称属性。

从 AWS Lake Formation (预览)(控制台)导入资源

从 AWS Lake Formation (预览)(控制台)导入资产
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧的导航窗格中,为发布数据选择拥有的数据集

  3. 拥有的数据集中,选择包含您要更新的修订的数据集。

  4. 修订选项卡中,选择创建修订,以打开创建修订页面。

    1. 对于修订设置,为您的修订提供介绍修订目的的可选注释。

    2. 对于添加标签 - 可选,添加与该资源关联的标签。

    3. 选择创建

      您的新修订即会创建。

  5. 对于 Lake Formation 数据权限部分,选择添加 LF 标签

  6. 选择您要添加的,然后选择添加 LF 标签

    1. (可选)选择预览资源,查看您正授予权限的关联数据目录资源。

  7. 服务访问权限中,选择要将 AWS Lake Formation 资源导入到的角色 AWS Data Exchange。

  8. 选择创建 Lake Formation 数据权限

    此时,将您的资产导入数据集的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

导出资产

提供商和订阅者都可以从已发布的产品订阅中导出资产。导出资产的方法有两种:

将资产导出到 S3 存储桶

将资产导出到 Amazon S3 时,您使用的IAM权限必须包括能够从 AWS Data Exchange 服务 S3 存储桶中读取和写入存储资产的 S3 存储桶。无论所有权如何,您都可以从您有权访问的任何 S3 存储桶中导出。有关更多信息,请参阅 Amazon S3 权限

AWS Data Exchange 在将数据集导出到 Amazon S3 时支持可配置的加密参数。在导出作业详细信息中,您可以指定要应用于已导出对象的 Amazon S3 服务器端加密配置。您可以选择将服务器端加密与 Amazon S3 托管密钥 (SSE-S3) 一起使用,也可以选择使用 AWS KMS keys 存储在 (-) 中的服务器端加密。 AWS Key Management Service SSE KMS有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的使用服务器端加密保护数据

重要

我们建议您在将数据导出到 Amazon S3 时,考虑使用 Amazon S3 安全特征。有关一般指南和最佳实践的信息,请参阅《Amazon Simple Storage Service 用户指南》中的 Amazon S3 的安全最佳实践

重要

如果提供商已将产品标记为包含受保护的健康信息 (PHI),则受1996年《健康保险便携性和问责法》(HIPAA) 的约束,则 AWS 账户 除非将该产品的数据集指定 AWS 账户 为HIPAA账户(定义见中的 AWS 商业伙伴附录 AWS Artifact),否则您不得将其导出到您的数据集中。

在单个作业中,您最多可以导出 100 个资产。

以下视频详细介绍了如何从 AWS Data Exchange中导出资产。

将资产导出到 S3 存储桶 (AWS SDKs)

将资产导出到 S3 存储桶 (AWS SDKs)
  1. 创建类型为 EXPORT_ASSETS_TO_S3CreateJob 请求。

  2. 在该请求中包含以下内容:

    • AssetDestinations

      • AssetID

      • Bucket

      • Key

    • DataSetID

    • Encryption

      • KmsKeyArn

      • Type

    • RevisionID

  3. 使用需要步骤 1 中返回的 JobIdStartJob 操作启动 CreateJob 请求。

  4. (可选)在创建资产后,更新其名称属性。

注意

有关将整个修订作为单个作业导出的信息,请参阅导出修订

以订阅者身份将资产导出到 S3 存储桶(控制台)

要以订阅者身份将资产导出到 S3 存储桶(控制台),请按以下步骤操作:
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧导航窗格中,为我的订阅选择授权数据

  3. 授权数据中,选择具有您要导出的修订的产品。

  4. 授权数据集中,选择该数据集。

  5. 修订选项卡上,选择该修订。

  6. 资产选项卡中,选中您要导出的资产旁边的复选框。

  7. 选择导出操作,然后选择将选定资产导出到 Amazon S3

  8. 按照导出到 Amazon S3 窗口中的提示进行操作,然后选择导出

    此时,导出您的资产的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

以提供商身份将资产导出到 S3 存储桶(控制台)

要以提供商身份将资产导出到 S3 存储桶(控制台),请按以下步骤操作:
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧的导航窗格中,为发布数据选择拥有的数据集

  3. 拥有的数据集中,选择包含您要导出的资产的数据集。

  4. 导航至产品选项卡,确保该数据集与已发布的产品相关联。

  5. 修订选项卡中,选择该修订。

  6. 导入的资产部分,选中该资产名称旁边的复选框。

  7. 选择导出操作,然后选择将选定资产导出到 Amazon S3

  8. 按照导出到 Amazon S3 窗口中的提示进行操作,然后选择导出

    此时,导出您的资产的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

将资源导出到已签名的 URL

您可以使用已签名导URLs出未存储在 Amazon S3 中的资产。

将资源导出到已签名的 URL (AWS SDKs)

您可以使用已签名URLs将资产导出到 S3 存储桶以外的目的地。

将资产导出到已签名的 URL (AWS SDKs)
  1. 创建类型为 EXPORT_ASSET_TO_SIGNED_URLCreateJob 请求。

  2. 在该请求中包含以下内容:

    • AssetID

    • DataSetID

    • RevisionID

  3. 使用需要步骤 1 中返回的 JobIdStartJob 操作启动 CreateJob 请求。

  4. (可选)在创建资产后,更新其名称属性。

  5. 响应详细信息包括可用于导入文件的 SignedUrl

注意

签名文件在创建后一分钟URL过期。

将资源导出到以订阅者URL身份签名的用户(控制台)

将资产导出到以订阅者URL身份签名的用户(控制台)
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧导航窗格中,为我的订阅选择授权数据

  3. 授权数据中,选择具有您要导出的修订的产品。

  4. 授权数据集中,选择该数据集。

  5. 修订选项卡上,选择该修订。

  6. 资产选项卡中,选中您要导出的资产旁边的复选框。

  7. 选择导出操作,然后选择下载选定资产

    此时,导出您的资产的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

将资源导出到以提供者URL身份签名的用户(控制台)

将资产导出到以提供者URL身份签名的用户(控制台)
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧的导航窗格中,为发布数据选择拥有的数据集

  3. 拥有的数据集中,选择具有您要导出的修订的产品。

  4. 导航至产品选项卡,确保该数据集与已发布的产品相关联。

  5. 修订选项卡上,选择该修订。

  6. 导入的资产部分,选中该资产名称旁边的复选框。

  7. 选择导出操作,然后选择下载选定资产

    此时,导出您的资产的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

导出修订

提供商和订阅者都可以将数据集的修订导出到他们有权访问的 S3 存储桶。

AWS Data Exchange 在将修订版导出到 Amazon S3 时,支持可配置的加密参数。在导出作业详细信息中,您可以指定要应用于已导出对象的 Amazon S3 服务器端加密配置。您可以选择对 Amazon S3 托管密钥 (SSE-S3) 使用服务器端加密,也可以选择使用存储在 (-) 中的KMS密钥的服务器端加密。 AWS Key Management Service SSE KMS有关更多信息,请参阅《Amazon Simple Storage Service 开发人员指南》中的使用服务器端加密保护数据

重要

如果提供商已将产品标记为包含受保护的健康信息 (PHI),则受1996年《健康保险便携性和问责法》(HIPAA) 的约束,则 AWS 账户 除非将该产品的数据集指定 AWS 账户 为HIPAA账户(定义见中的 AWS 商业伙伴附录 AWS Artifact),否则您不得将其导出到您的数据集中。

以下视频详细介绍了如何从 AWS Data Exchange 中导出资产(从 2:18 开始)。

将修订导出到 S3 存储桶 (AWS SDKs)

将修订导出到 S3 存储桶 (AWS SDKs)
  1. 创建类型为 EXPORT_REVISIONS_TO_S3CreateJob 请求。

  2. 在该请求中包含以下内容:

    • DataSetId

    • Encryption

      • KmsKeyArn

      • Type

    • RevisionDestinations

      • Bucket

      • KeyPattern

      • RevisionId

  3. 使用需要步骤 1 中返回的 JobIdStartJob 操作启动 CreateJob 请求。

  4. 新创建的资产与原始 S3 对象的键具有相同的名称属性。Amazon S3 对象键默认为 ${Asset.Name} 键模式。

    在创建资产后,您可以更新其名称属性。

    有关键模式的更多信息,请参阅导出修订时的键模式

注意

如果您使用DataSet.Name作为动态引用,则必须具有IAM权限dataexchange:GetDataSet。有关更多信息,请参阅 AWS Data Exchange API权限:操作和资源参考

以提供商身份将修订导出到 S3 存储桶(控制台)

要以提供商身份将修订导出到 S3 存储桶(控制台),请按以下步骤操作:
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧的导航窗格中,为发布数据选择拥有的数据集

  3. 拥有的数据集中,选择具有您要导出的修订的产品。

  4. 导航至产品选项卡,确保该数据集与已发布的产品相关联。

  5. 修订选项卡上,选择该修订。

  6. 导入的资产部分,选中该资产名称旁边的复选框。

  7. 选择导出操作,然后选择将选定资产导出到 Amazon S3

  8. 按照导出到 Amazon S3 窗口中的提示进行操作,然后选择导出

    此时,导出您的资产的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

以订阅者身份将修订导出到 S3 存储桶(控制台)

要以订阅者身份将修订导出到 S3 存储桶(控制台),请按以下步骤操作:
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧导航窗格中,为我的订阅选择授权数据

  3. 授权数据中,选择具有您要导出的修订的产品。

  4. 授权数据集中,选择该数据集。

  5. 修订选项卡上,选择该修订,然后选择导出到 Amazon S3

  6. 将修订导出到 Amazon S3 中,选择一个目标选项,即 Amazon S3 存储桶文件夹目标位置,配置加密选项,然后选择导出

    此时,导出您的修订的作业已启动。作业完成后,作业部分的状态字段将更新为已完成

以订阅者身份自动将修订导出到 S3 存储桶

当提供商发布新修订时,您可以选择自动将新修订导出到您的 Amazon S3 存储桶。您最多可以将新修订导出到五个 S3 存储桶。新修订将自动出现在您选择的 S3 存储桶中。

注意

要自动将修订版导出到您选择的 S3 存储桶,您的 S3 存储桶必须具有允许将数据导出 AWS Data Exchange 到其中的权限的存储桶策略。有关更多信息,请参阅 S3 存储桶策略权限的先决条件

S3 存储桶策略权限的先决条件

在自动将修订导出到 S3 存储桶之前,您必须禁用申请者付款,并且您的 S3 存储桶必须具有权限设置为允许将数据导出 AWS Data Exchange 到该存储桶的存储桶策略。以下过程介绍了如何使用这些权限编辑现有的 S3 存储桶策略或创建 S3 存储桶策略。

如果您的 S3 存储桶配置为SSE加KMS密,则配置自动导出任务的用户必须拥有KMS密钥的CreateGrant权限,才能将对象复制 AWS Data Exchange 到您的 S3 存储桶中。

重要

为了验证是否满足 S3 存储桶策略权限的先决条件,在自动导出过程中,具有 _ADX-TEST-ACCOUNTID# 命名格式的对象将被添加到该 S3 存储桶。

编辑现有的 S3 存储桶策略

如果您的 S3 存储桶有存储桶策略,请完成以下过程,以允许 AWS Data Exchange 向其导出数据。

要编辑现有的 S3 存储桶策略,请按以下步骤操作:
  1. 导航到您要导出修订的存储桶。

  2. 选择权限选项卡,然后在存储桶策略部分中选择编辑

  3. 复制以下语句,并将其粘贴在语句列表末尾。

    { "Effect": "Allow", "Principal": { "Service": "dataexchange.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::<BUCKET-NAME>/*", "Condition": { "StringEquals": { "aws:SourceAccount": "<AWS ID>" } } }
  4. <BUCKET-NAME>替换为您的 S3 存储桶的名称,然后<AWS ID>替换为您的 AWS ID。

  5. 选择 Save changes(保存更改)

  6. 如果您想添加更多存储桶作为自动导出作业的目标位置,请从步骤 1 开始重复该过程。

创建 S3 存储桶策略

如果您的 S3 存储桶没有存储桶策略,请完成以下过程以创建允许 AWS Data Exchange 向其导出数据的 S3 存储桶策略。

要创建 S3 存储桶策略,请按以下步骤操作:
  1. 导航到您要导出修订的存储桶。

  2. 选择权限选项卡,然后在存储桶策略部分中选择编辑

  3. 复制下方完整的存储桶策略,然后将其粘贴到存储桶策略编辑器中。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dataexchange.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::<BUCKET-NAME>/*", "Condition": { "StringEquals": { "aws:SourceAccount": "<AWS ID>" } } } ] }
  4. <BUCKET-NAME>替换为您的 S3 存储桶的名称,然后<AWS ID>替换为您的 AWS ID。

  5. 选择 Save changes(保存更改)

  6. 如果您想添加更多存储桶作为自动导出作业的目标位置,请从步骤 1 开始重复该过程。

以订阅者身份自动将修订导出到 S3 存储桶(控制台)

注意

要自动将修订版导出到您选择的 S3 存储桶,您的 S3 存储桶必须具有允许将数据导出 AWS Data Exchange 到其中的权限的存储桶策略。有关更多信息,请参阅 S3 存储桶策略权限的先决条件

要以订阅者身份自动将修订导出到 S3 存储桶(控制台),请按以下步骤操作:
  1. 打开您的 Web 浏览器,登录到 AWS Data Exchange 控制台

  2. 在左侧导航窗格中,为我的订阅选择授权数据

  3. 授权数据中,选择具有您要导出的修订的产品。

  4. 授权数据集中,选择该数据集。

  5. 修订选项卡的自动导出作业目标下,选择操作,然后选择添加自动导出作业目标

  6. 添加自动导出作业目标中,选择简单高级目标选项。

    1. 如果您选择简单选项,请从下拉列表和加密选项中选择 Amazon S3 存储桶文件夹目标,然后选择添加存储桶目标

    2. 如果您选择高级选项,请从下拉列表中选择 Amazon S3 存储桶文件夹目标,选择键命名模式并将其附加到路径中。

  7. 查看输出

  8. 设置加密选项,查看 Amazon S3 定价,然后选择添加存储桶目标

    Amazon S3 存储桶目标显示在自动导出作业目标下的修订选项卡上。

    此时,自动导出您的修订的作业已启动。

    为了验证是否满足 S3 存储桶策略权限的先决条件,具有 _ADX-TEST-ACCOUNTID# 命名格式的对象将被添加到该 S3 存储桶。

    作业完成后,作业部分的状态字段将更新为已完成

    要添加其他目标,请选择操作,然后选择添加自动导出作业目标

    要编辑目标,请选择您要编辑的目标,再选择操作,然后选择编辑目标配置

    要删除目标,请选择操作,然后选择删除自动导出作业目标

以订阅者的身份自动将修订导出到 S3 存储桶 (AWS SDKs)

注意

要自动将修订版导出到您选择的 S3 存储桶,您的 S3 存储桶必须具有允许将数据导出 AWS Data Exchange 到其中的权限的存储桶策略。有关更多信息,请参阅 S3 存储桶策略权限的先决条件

自动将修订导出到 S3 存储桶 (AWS SDKs)
  1. 创建 Create_Event_Action 请求。

  2. 在该请求中包含以下内容:

    • Action

      • ExportRevisionToS3

        • Encryption

          • KmsKeyArn

          • Type

      • RevisionDestination

        • Bucket

        • KeyPattern

    • Event

      • RevisionPublished

        • DataSetId

  3. 如有必要,请修改键模式。Amazon S3 对象键默认为 {Revision.CreatedAt}/{Asset.Name} 键模式。

    有关键模式的更多信息,请参阅导出修订时的键模式

    为了验证是否满足 S3 存储桶策略权限的先决条件,具有 _ADX-TEST-ACCOUNTID# 命名格式的对象将被添加到该 S3 存储桶。

导出修订时的键模式

导出修订时,每个资产都将成为 S3 存储桶中的一个对象。对象的名称取决于您提供的键模式。您可以使用表示资产属性的动态引用,为导出期间自动生成的名称创建一个模式。请使用下表所示的动态引用。

动态引用 描述
${Asset.Id} 资产的 ID。
${Asset.Name} 资产的名称。
${DataSet.Id} 正在导出的数据集的 ID。
${DataSet.Name} 正在导出的数据集的名称。
${Revision.CreatedAt} 修订版的创建UTC日期和时间,格式如下:YYYY-MM-DDTHH-: MM:。SSZ例如:2021-10-08T16:33:19.787Z
${Revision.CreatedAt.Day} 修订的创建日期。
${Revision.CreatedAt.Month} 修订的创建月份。
${Revision.CreatedAt.Year} 修订的创建年份。
${Revision.Id} 正在导出的修订的 ID。

您可以使用这些动态引用,为您的资产名称创建键模式。必须至少包括以下两个 Asset 动态引用之一:${Asset.Name}${Asset.Id}

例如,使用 ${Revision.Id}/${Asset.Name} 作为键模式会生成以修订 ID 和资产名称(用斜杠分隔)作为对象名称的 Amazon S3 对象。

如果您要导出 ID 为 testRevisionId 且存在名为 asset1asset2 的两个资产的修订,则这些资产将导出到 Amazon S3 中的以下位置:

  • <bucket>/testRevisionId/asset1

  • <bucket>/testRevisionId/asset2

注意

您生成的对象必须具有唯一的名称。如果它们与 S3 存储桶中的现有对象同名,则您的导出操作将覆盖现有对象。如果您要导出的修订的名称并非唯一(例如,两个资产拥有同一名称),则导出将失败。其中唯一的动态引用是 ${Asset.Id}