设置批量导出所有统一的客户配置文件数据 - Amazon Connect

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

设置批量导出所有统一的客户配置文件数据

注意

要完成本主题中的步骤,您需要具备开发人员技能,并具备使用 AWS KMS Amazon S3 的经验。

当 Amazon Connect Customer Profiles 创建统一的客户配置文件时,它会通过合并来自第一方和第三方的数据,增强、完善和改进原始数据和信息,使其成为更准确的配置文件。Customer Profiles 还通过添加新数据来提高数据集的质量。您可以将改进后的数据集用于其他使用场景,例如制定更明智、更有针对性的营销、销售和客户服务策略。例如,您可能希望利用统一的客户配置文件来:

  • 审查您在整个域中拥有的客户数据。

  • 例如,对销售和营销报告执行内部分析。

  • 将数据导出到您自己的工具或第三方产品中,以个性化广告和目标客户。

要将统一客户配置文件数据用于其他使用场景,您可以将其批量导出到 Amazon S3。本主题将介绍如何操作。

步骤 1:设置 KMS 密钥和 S3 存储桶

要启用域的批量导出,您需要设置以下资源:

接下来将解释这些步骤。

创建新的 KMS 密钥或重复使用现有的 KMS 密钥

要设置用于批量导出的 KMS 密钥,您必须创建或重复使用现有 KMS 密钥,该密钥与您计划配置为批量导出目标的 Amazon S3 存储桶位于同一 AWS 区域。您必须允许 Amazon Connect AppIntegrations 服务对密钥执行 KMS 操作。

将以下语句添加到密钥政策中。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Enable AppIntegrations access to KMS key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ], "Service": [ "app-integrations.amazonaws.com" ] }, "Action": [ "kms:Encrypt*", "kms:Describe*", "kms:Decrypt*", "kms:GenerateDataKey*" ], "Resource": "*" } ] }

设置 S3 目标存储桶

您必须在与 KMS 密钥相同的 AWS 区域中配置新的或现有存储桶,并在 S3 存储桶上配置资源策略。

配置存储桶时,确保选择 SSE-KMS 加密,并使用与上一步骤相同的 KMS 密钥。此外,请勿在 S3 存储桶 ACLs 上启用。

以下是一个资源策略的示例。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow AppIntegrations to write data to destination bucket", "Effect": "Allow", "Principal": { "Service": [ "app-integrations.amazonaws.com" ] }, "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::{{amzn-s3-demo-bucket1}}", "arn:aws:s3:::{{amzn-s3-demo-bucket2}}/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "{{AwsAccountId}}" }, "ArnEquals": { "aws:SourceArn": "arn:aws:*-*:{{Region}}:{{AwsAccountId}}:data-integration/*" } } } ] }

步骤 2:创建批量导出作业

要创建批量导出任务,您需要调用以下 Amazon Connect AppIntegrations APIs:

  1. CreateDataIntegration:此 API 创建了与数据源(例如,客户档案)的集成。

  2. CreateDataIntegrationAssociation:此 API 使用数据源将数据写入目标(例如 S3 存储桶)。

以下是有关如何调用它们的更多信息 APIs。

创建数据集成

数据集成代表您的数据的数据来源。您可以调用 CreateDataIntegrationAPI 或运行 create-data-integrationCLI 命令来创建数据集成。您必须提供 Customer Profiles 对象类型和 Customer Profiles

如果您要导出多个对象类型,则需要为每个类型创建一个单独的数据集成。例如,如果您要同时导出两个 _profile 对象和 _asset 对象,则需要创建两个单独的数据集成。

注意

导出时可能不包括在最近 30 分钟内摄取的任何数据。

以下代码示例显示了如何运行 create-data-integrationCLI 命令。

aws appintegrations create-data-integration \ --region "us-west-2" \ --name "bulk-export-job-01" \ --description "Data integration for _profile objects" \ --kms-key "arn:aws:kms:us-west-2:123456789012:key/123456789012-1234-1234-123456789012" \ --source-uri "AmazonConnect://AppIntegrations" \ --object-configuration '{"CustomerProfiles":{"domainName":["my-domain-pdx"],"objectType":["_profile"]}}'

以下代码示例显示了如何调用 CreateDataIntegrationAPI。

{ "Description": "Data integration for _profile objects", "KmsKey": "arn:aws:kms:us-west-2:123456789012:key/123456789012-1234-1234-123456789012", "Name": "unique-data-integration-name-01", "SourceURI": "AmazonConnect://AppIntegrations", "ObjectConfiguration": { "CustomerProfiles": { "domainName": [ "my-domain-pdx" ], "objectType": [ "_profile" ] } } }

创建数据集成关联

数据集成关联表示您要导出数据的目的地,以及选择要导出的数据的时间范围。您可以调用 CreateDataIntegrationAssociationAPI 或运行 create-data-integration-associationCLI 命令来创建数据集成。您可以使用 StartTimeEndTime 属性配置时间范围。此时间范围与 Customer Profiles 中对象的最后更新时间一致。

您指定的目标 S3 存储桶可以只是存储桶的名称,也可以包括您要导出数据的其他文件夹或 S3 前缀。

注意

有关合并批量导出作业的配额,请参阅 Amazon Connect 客户档案服务配额。批量导出作业完成或失败后,不再计入合并配额。

以下代码示例显示了如何运行 create-data-integration-associationCLI 命令。

aws appintegrations create-data-integration-association \ --region "us-west-2" \ --data-integration-identifier "unique-data-integration-name-01" \ --destination-uri "s3://amzn-s3-demo-bucket1" \ --execution-configuration '{"ExecutionMode": "ON_DEMAND", "OnDemandConfiguration": {"StartTime":"1715278292014", "EndTime":"1715364692014"}}'

以下代码示例显示了如何调用 CreateDataIntegrationAssociationAPI。

{ "DataIntegrationIdentifier": "arn:aws:app-integrations:us-west-2:123456789012:data-integration/123456789012-1234-1234-123456789012", "DestinationURI": "s3://amzn-s3-demo-bucket1", "ExecutionConfiguration": { "ExecutionMode": "ON_DEMAND", "OnDemandConfiguration": { "StartTime": "1713565000004", "EndTime": "1713565000005" } } }

步骤 3:检查批量导出作业的状态

要查看批量导出任务的状态,您可以调用 ListDataIntegrationAssociationsAPI 或运行 list-data-integration-associationsCLI 命令。

以下代码示例显示了如何运行 list-data-integration-associationsCLI 命令。

aws appintegrations list-data-integration-associations \ --region "us-west-2" \ --data-integration-identifier "unique-data-integration-name-01"

第 4 步:在 S3 中查看导出的数据

当数据集成关联处于 IN_PROGRESS 状态时,您将开始看到数据被复制到您的 S3 存储桶。

导出的数据使用以下路径结构写入:

  • {BucketNameAndFolderName}

    • {AwsAccountId}

      • {DomainName}

        • {RequestTimestamp}

          • {lStartTime}-{EndTime}

            • {ObjectTypeName}

              • <filename: uuid>

以下是一个路径示例:

amzn-s3-demo-bucket1/123456789012/my-domain-pdx/20240607T175023/20240101T235959-20240430T235959/_profile/123456789012-1234-1234-123456789012

更新批量导出作业

作业完成后,您可以使用不同的数据摄取开始时间和数据摄取结束时间更新数据集成关联。这样就创建了一个新的批量导出作业。如果您过去执行过批量导出,并且只想导出上次导出后更新的数据,则可能需要这样做。例如,如果您上一次批量导出作业是在三个月前,则可以将数据集成关联更新为 3 个月前到今天的时间范围。

您可以调用 UpdateDataIntegrationAssociationAPI 或运行 update-data-integration-associationCLI 命令来更新导出作业。

以下代码示例显示了如何运行 update-data-integration-associationCLI 命令。

aws appintegrations update-data-integration-association \ --region "us-west-2" \ --data-integration-identifier "unique-data-integration-name-01" \ --data-integration-association-identifier "arn:aws:app-integrations:us-west-2:123456789012:data-integration-association/123456789012-1234-1234-123456789012/123456789012-1234-1234-123456789012" \ --execution-configuration '{"ExecutionMode": "ON_DEMAND", "OnDemandConfiguration": {"StartTime":"1715278292014", "EndTime":"1715364692014"}}'

删除或取消批量导出任务:不支持

您无法删除或取消批量导出。导出作业完成后,将不再计入导出配额。