# @cdklabs/cdk-construct-connect-datalake 中文文档

规范地址：https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/

版本：0\.0\.33
npm 元数据更新时间：2026-11-02T19:32:54.601Z
中文译文更新时间：2026-11-09T18:04:23.324Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cdklabs/cdk-construct-connect-datalake
原文对照：https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/?lang=original
项目主页：https://github.com/cdklabs/cdk-construct-connect-datalake#readme
源码仓库：https://github.com/cdklabs/cdk-construct-connect-datalake

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：128 MB，9639 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 18\.12\.0
- 运行依赖：9 个
- peer 依赖：constructs ^10\.5\.1，aws-cdk-lib ^2\.240\.0
- 首次发布：2026-03-02T16:35:24.303Z
- 最新版本发布：2026-11-02T19:32:54.097Z
- 近 30 天下载量：2016（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：34（近 12 个月 34 个）

## 中文简介

亚马逊连接数据湖构建库

## 安装

```sh
npm install @cdklabs/cdk-construct-connect-datalake
```

也可以使用：`pnpm add @cdklabs/cdk-construct-connect-datalake`、`yarn add @cdklabs/cdk-construct-connect-datalake`、`bun add @cdklabs/cdk-construct-connect-datalake`

## README

# 亚马逊连接数据湖 CDK 构造

一个 [AWS 云发展工具包(CDK)](https://aws.amazon.com/cdk/) 能够进入 [亚马逊连接分析数据湖](https://docs.aws.amazon.com/connect/latest/adminguide/data-lake.html)。这个解决方案使完整的连接数据湖设置过程自动化,从而不再需要 手动配置或自定义 [云阵](https://aws.amazon.com/cloudformation/) 模板.

该建筑使用Lambda支持的自定义资源来管理部署过程. 它处理连接 [连接](https://aws.amazon.com/connect/) 数据集,接收 [内存](https://aws.amazon.com/ram/) 资源份额,给予 [湖泊形成](https://aws.amazon.com/lake-formation/) 权限,并在 a 中创建资源链接表 中央集权 [粘贴](https://aws.amazon.com/glue/) 数据库——支持同账户和交叉账户配置.

## 使用量

### 先决条件

-   [亚马逊连接实例](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-instances.html)
-   [AWS CDK v2 (英语)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)
-   用于交叉账户设置:目标账户中的IAM角色. 见 [交叉账户设置](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/CROSS_ACCOUNT_SETUP.md) 文档

### 安装

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

类型脚本/ Java 脚本

```bash
npm install @cdklabs/cdk-construct-connect-datalake
```
蟒

```bash
pip install cdklabs.cdk-construct-connect-datalake
```
爪哇语

在您的 `pom.xml`数字 :

```xml
<dependency>
  <groupId>io.github.cdklabs</groupId>
  <artifactId>cdk-construct-connect-datalake</artifactId>
  <version>VERSION</version>
</dependency>
```
. NET 网络

```bash
dotnet add package Cdklabs.CdkConstructConnectDatalake
```
走开

```bash
go get github.com/cdklabs/cdk-construct-connect-datalake-go/cdkconstructconnectdatalake
```

### 基本用途

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

```typescript
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',
  ],
});
```

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

示例

```typescript
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资源的目标角色.

```typescript
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",
});
```

### 多个实例

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

```typescript
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` (单位:千美元)[字符串](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/API.md#@cdklabs/cdk-construct-connect-datalake.DataLakeAccess.property.instanceId): 亚马逊连接实例 ID
-   `datasetIds` (单位:千美元)[矩阵 < string > 数据类型](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/API.md#@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps.property.datasetIds): 数据集ID组为关联组. 使用 `DataType` 尚未在 enum 中的数据集的 enum 值或字符串字元.
-   `targetAccountId?` (单位:千美元)[字符串](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/API.md#@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps.property.targetAccountId): 目标AWS账户ID接收资源(可选)
-   `targetAccountRoleArn?` (单位:千美元)[字符串](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/API.md#@cdklabs/cdk-construct-connect-datalake.DataLakeAccessProps.property.targetAccountRoleArn):IAM角色ARN在跨账户角色假设目标账户中的角色ARN(可选)

### 数据类型 Enum

关于所支持的数据集类型,请参见 [API 文档](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/API.md#@cdklabs/cdk-construct-connect-datalake.DataType)。 。 。 .

## 创建资源

此构造创建了以下 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](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/resources/workflow.png)

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问题.

## 支助

关于议题和问题清单:

-   参考关于分析数据湖的文件 [亚马逊连接管理员指南](https://docs.aws.amazon.com/connect/latest/adminguide/data-lake.html)
-   检查 [API 文档](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/API.md)
-   报告错误通过 [GitHub 问题](https://github.com/cdklabs/cdk-construct-connect-datalake/issues)

## 捐款

我们欢迎捐款! 请看我们的 [贡献指南](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/CONTRIBUTING.md) 详细情况.

## 许可证

本项目根据以下规定获得许可证: [Apache-2.0 许可证](https://npmcn.com/package/%40cdklabs/cdk-construct-connect-datalake/LICENSE)。 。 。 .

## 常见问题

### @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 和提交记录判断。

