@cdklabs/cdk-construct-connect-datalake

中文文档
0.0.33发布于 2026/11/03Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 2016

亚马逊连接数据湖构建库

中文使用文档
文档目录17 节
  1. 使用量
  2. 先决条件
  3. 安装
  4. 基本用途
  5. 交叉账户配置
  6. 多个实例
  7. API 参考
  8. 数据湖访问
  9. 数据类型 Enum
  10. 创建资源
  11. 基础设施构成部分
  12. 部署
  13. 限制
  14. 解决问题
  15. 支助
  16. 捐款
  17. 许可证

亚马逊连接数据湖 CDK 构造

一个 AWS 云发展工具包(CDK) 能够进入 亚马逊连接分析数据湖。这个解决方案使完整的连接数据湖设置过程自动化,从而不再需要 手动配置或自定义 云阵 模板.

该建筑使用Lambda支持的自定义资源来管理部署过程. 它处理连接 连接 数据集,接收 内存 资源份额,给予 湖泊形成 权限,并在 a 中创建资源链接表 中央集权 粘贴 数据库——支持同账户和交叉账户配置.

使用量

先决条件

安装

在您的 CDK 项目目录中安装构建库 :

类型脚本/ Java 脚本
npm install @cdklabs/cdk-construct-connect-datalake
蟒
pip install cdklabs.cdk-construct-connect-datalake
爪哇语

在您的 pom.xml数字 :

<dependency>
  <groupId>io.github.cdklabs</groupId>
  <artifactId>cdk-construct-connect-datalake</artifactId>
  <version>VERSION</version>
</dependency>
. NET 网络
dotnet add package Cdklabs.CdkConstructConnectDatalake
走开
go get github.com/cdklabs/cdk-construct-connect-datalake-go/cdkconstructconnectdatalake

基本用途

将 DataLakeAccess 架构添加到部署在同一 AWS 账户和区域的 CDK 堆栈中, 作为您的 Amazon Connect 实例 .

import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';

new DataLakeAccess(this, 'DataLakeAccess', {
  instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', // Your Connect instance ID
  datasetIds: [
    DataType.CONTACT_RECORD,
    'contact_statistic_record',
  ],
});

重要: 当在同一堆栈中与连接实例一起部署时, 在构造中添加依赖性 :

示例
import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';
import { CfnInstance } from 'aws-cdk-lib/aws-connect';

const connectInstance = new CfnInstance(this, 'ConnectInstance', {
  identityManagementType: 'CONNECT_MANAGED',
  instanceAlias: 'my-instance',
  attributes: {
    inboundCalls: true,
    outboundCalls: true,
  },
});

const dataLake = new DataLakeAccess(this, 'DataLakeAccess', {
  instanceId: connectInstance.attrId,
  datasetIds: [DataType.CONTACT_RECORD],
});

// Ensure data lake resources are deleted before the Connect instance
dataLake.node.addDependency(connectInstance);

交叉账户配置

通过指定来配置在不同的 AWS 账户中创建数据湖资源的构造 targetAccountId 财务报告和审定财务报表 targetAccountRoleArn该构建承担了接受RAM资源份额并在该账户中创建Glue资源的目标角色.

import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';

new DataLakeAccess(this, 'DataLakeAccess', {
  instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  datasetIds: [
    DataType.CONTACT_RECORD,
    'contact_statistic_record',
  ],

  // Target account where the resources are created
  targetAccountId: '123456789012', 
  
  // IAM role in the target account for cross-account role assumption
  targetAccountRoleArn: "arn:aws:iam::123456789012:role/RoleName",
});

多个实例

为多个连接实例启用数据湖访问, 为每个实例创建一个单独的构建 。 应增加两者之间的依赖性,以确保连续部署,防止冲突同时开展行动.

import { DataLakeAccess, DataType } from '@cdklabs/cdk-construct-connect-datalake';

// First Connect instance data lake setup
const dataLake1 = new DataLakeAccess(this, 'DataLakeAccess1', {
  instanceId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  datasetIds: [
    DataType.CONTACT_RECORD,
    DataType.AGENT_STATISTIC_RECORD,
  ],
});

// Second Connect instance data lake setup 
const dataLake2 = new DataLakeAccess(this, 'DataLakeAccess2', {
  instanceId: 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy',
  datasetIds: [
    DataType.CONTACT_RECORD,
    DataType.CONTACT_FLOW_EVENTS,
  ],
});

// Create dependency to ensure sequential deployment
dataLake2.node.addDependency(dataLake1);

API 参考

数据湖访问

亚马逊连接数据湖集成的主要构建类.

属性 :

  • instanceId (单位:千美元)字符串: 亚马逊连接实例 ID
  • datasetIds (单位:千美元)矩阵 < string > 数据类型: 数据集ID组为关联组. 使用 DataType 尚未在 enum 中的数据集的 enum 值或字符串字元.
  • targetAccountId? (单位:千美元)字符串: 目标AWS账户ID接收资源(可选)
  • targetAccountRoleArn? (单位:千美元)字符串:IAM角色ARN在跨账户角色假设目标账户中的角色ARN(可选)

数据类型 Enum

关于所支持的数据集类型,请参见 API 文档。 。 。 .

创建资源

此构造创建了以下 AWS 资源 :

基础设施构成部分

  • 云格式自定义资源提供者: 管理自定义资源生命周期的框架

  • Lambda 函数: 自定义管理数据湖设置的资源处理器

  • IAM 作用: 具有连接、RAM、Glue和Lake Formation操作权限的执行角色

    显示 IAM 权限
    • connect:BatchAssociateAnalyticsDataSet
    • connect:AssociateAnalyticsDataSet
    • connect:BatchDisassociateAnalyticsDataSet
    • connect:DisassociateAnalyticsDataSet
    • connect:ListAnalyticsDataAssociations
    • connect:ListAnalyticsDataLakeDataSets
    • connect:ListInstances
    • ds:DescribeDirectories
    • ram:AcceptResourceShareInvitation
    • ram:GetResourceShareInvitations
    • ram:GetResourceShares
    • glue:CreateDatabase
    • glue:CreateTable
    • glue:DeleteDatabase
    • glue:DeleteTable
    • glue:GetDatabase
    • glue:GetTables
    • lakeformation:GetDataLakeSettings
    • lakeformation:PutDataLakeSettings
    • cloudformation:DescribeStacks
    • sts:AssumeRole (仅用于交叉账户设置)

部署

该建筑在部署期间采取下列步骤:

Deployment Workflow

  1. 数据集协会: 与目标账户连接到 Amazon 实例的指定数据集
  2. 数据库创建: 创建 connect_datalake_database 粘贴数据库
  3. 湖形成设置: 配置 Lambda 执行角色(或承担交叉账户角色) 作为数据湖管理员
  4. 资源共享接受: 接受RAM资源共享邀请. 多个数据集协会经常合并为单一的RAM资源共享
  5. 表格创建: 为每个数据集创建资源链接表, 允许通过 Amazon Athena 查询

当部署到与 Connect 实例相同的账户时, 该账户中的所有步骤都会执行 。 对于交叉账户配置,步骤2-5在目标账户中执行.

限制

  • 表格命名: 此构造创建的资源链接表格使用格式命名 {datasetId}_{dataCatalogId}
  • 地区支助:该构造必须部署在与亚马逊连接实例相同的AWS区域并进行核算. 就交叉账户配置而言,在同一区域内的目标账户中创造资源
  • 共享数据库编号: connect_datalake_database 在账户中这一结构的所有部署中共享胶片数据库

解决问题

部署期间部分失败

  • 如果在创建或更新操作过程中一些工作流程步骤失败,堆栈部署仍将显示为成功. CloudFormation 堆栈输出中可以找到这些部分失败的错误细节 .

内存资源共享已过期

  • 新数据集协会的资源共享可以被整合到现有的AWS RAM共享中,即使到期. 删除 引用目标账户、确认相关资源被删除、然后使用 原始构造定义.

由于本金无效, 无法更新 Lake Forming 权限

  • 已删除但未从 " 成立湖 " 校长中去掉的IAM角色将被视为无效。 删除 主要导致形成湖出现错误并重新部署构造.

连接实例被删除后无法删除资源

  • 此类构造在删除实例前必须被删除, 因为当前正在删除此实例后的清理 不支持 。 如果需要清除这些资源的援助,可以提出GitHub问题.

支助

关于议题和问题清单:

捐款

我们欢迎捐款! 请看我们的 贡献指南 详细情况.

许可证

本项目根据以下规定获得许可证: Apache-2.0 许可证。 。 。 .

版本与发布记录

@cdklabs/cdk-construct-connect-datalake 共发布 34 个版本,首次发布于 2026/03/03;过去 12 个月发布了 34 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.33latest2026/11/036 天前
0.0.322026/10/2713 天前
0.0.312026/10/2020 天前
0.0.302026/10/1327 天前
0.0.292026/10/061 个月前
0.0.282026/09/291 个月前

关于 @cdklabs/cdk-construct-connect-datalake 的常见问题

@cdklabs/cdk-construct-connect-datalake 是什么?

亚马逊连接数据湖构建库

如何安装 @cdklabs/cdk-construct-connect-datalake?

在项目目录运行 npm install @cdklabs/cdk-construct-connect-datalake,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:constructs(^10.5.1)、aws-cdk-lib(^2.240.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cdklabs/cdk-construct-connect-datalake 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cdklabs/cdk-construct-connect-datalake 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@cdklabs/cdk-construct-connect-datalake 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 18.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cdklabs/cdk-construct-connect-datalake 可以商用吗?

@cdklabs/cdk-construct-connect-datalake 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cdklabs/cdk-construct-connect-datalake 的下载量有多少?

根据 npm 官方下载统计,@cdklabs/cdk-construct-connect-datalake 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,016 次,日均约 67 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cdklabs/cdk-construct-connect-datalake 还在维护吗?

最新版本 0.0.33 发布于 2026/11/03(6 天前);至今共发布 34 个版本,其中过去 12 个月发布了 34 个;首次发布于 2026/03/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。