# @aws-cdk/aws-msk-alpha 中文文档

规范地址：https://npmcn.com/package/%40aws-cdk/aws-msk-alpha/

版本：2\.275\.0-alpha\.0
npm 元数据更新时间：2026-10-26T19:19:05.116Z
中文译文更新时间：2026-11-07T14:06:12.358Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40aws-cdk/aws-msk-alpha
原文对照：https://npmcn.com/package/%40aws-cdk/aws-msk-alpha/?lang=original
项目主页：https://github.com/aws/aws-cdk
源码仓库：https://github.com/aws/aws-cdk

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

- 包体积（解压后）：605 kB，19 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 20\.0\.0
- 运行依赖：0 个
- peer 依赖：constructs ^10\.5\.0，aws-cdk-lib ^2\.275\.0
- 首次发布：2021-10-13T18:38:36.189Z
- 最新版本发布：2026-10-26T19:19:03.968Z
- 近 30 天下载量：32390（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：380（近 12 个月 64 个）

## 中文简介

AWS: MSK 的 CDK 构造库

## 安装

```sh
npm install @aws-cdk/aws-msk-alpha
```

也可以使用：`pnpm add @aws-cdk/aws-msk-alpha`、`yarn add @aws-cdk/aws-msk-alpha`、`bun add @aws-cdk/aws-msk-alpha`

## README

# Amazon 管理 Apache Kafka 建构库

* * *

![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)

> 本单元中更高层次的构件的API是实验性的并正在积极开发中. 在今后任何版本中,它们都须作非背向相容的修改或去除。 这些是 不适用 [语义版本](https://semver.org/) 模型和断开的更改 在发行笔记中宣布. 这意味着虽然你可能使用它们,但可能需要更新 当更新到此软件包的更新版本时,您的源代码.

* * *

[亚马逊 MSK](https://aws.amazon.com/msk/) 是一种完全管理的服务,它使您可以轻松地构建和运行使用Apache Kafka处理流数据的程序.

以下例子创建了MSK Cluster.

```ts
declare const vpc: ec2.Vpc;
const cluster = new msk.Cluster(this, 'Cluster', {
  clusterName: 'myCluster',
  kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
  vpc,
});
```

## 允许连接

为了控制谁可以访问集群,请使用 `.connections` 属性。 关于MSK使用的端口列表,请参见: [MSK 文档](https://docs.aws.amazon.com/msk/latest/developerguide/client-access.html#port-info)。 。 。 .

```ts
declare const vpc: ec2.Vpc;
const cluster = new msk.Cluster(this, 'Cluster', {
  clusterName: 'myCluster',
  kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
  vpc,
});

cluster.connections.allowFrom(
  ec2.Peer.ipv4('1.2.3.4/8'),
  ec2.Port.tcp(2181),
);
cluster.connections.allowFrom(
  ec2.Peer.ipv4('1.2.3.4/8'),
  ec2.Port.tcp(9094),
);
```

## 集群终点

您可以使用以下属性来获取 Kafka 经纪人或 Zookeeper 节点的列表

```ts
declare const cluster: msk.Cluster;
new CfnOutput(this, 'BootstrapBrokers', { value: cluster.bootstrapBrokers });
new CfnOutput(this, 'BootstrapBrokersTls', { value: cluster.bootstrapBrokersTls });
new CfnOutput(this, 'BootstrapBrokersSaslScram', { value: cluster.bootstrapBrokersSaslScram });
new CfnOutput(this, 'BootstrapBrokerStringSaslIam', { value: cluster.bootstrapBrokersSaslIam });
new CfnOutput(this, 'ZookeeperConnection', { value: cluster.zookeeperConnectionString });
new CfnOutput(this, 'ZookeeperConnectionTls', { value: cluster.zookeeperConnectionStringTls });
```

## 导入已存在的集群

要将已有的 MSK 集群导入到您的 CDK 应用程序中, 请使用 `.fromClusterArn()` 方法.

```ts
const cluster = msk.Cluster.fromClusterArn(this, 'Cluster',
  'arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1',
);
```

## 客户端认证

[MSK 支持](https://docs.aws.amazon.com/msk/latest/developerguide/kafka_apis_iam.html) 以下认证机制.

### 电话

用 TLS 设置客户端认证 `certificateAuthorityArns` 以引用您的 ACM 私人 CA. [更多关于私人CA的信息.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)

```ts
import * as acmpca from 'aws-cdk-lib/aws-acmpca';

declare const vpc: ec2.Vpc;
const cluster = new msk.Cluster(this, 'Cluster', {
  clusterName: 'myCluster',
  kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
  vpc,
  encryptionInTransit: {
    clientBroker: msk.ClientBrokerEncryption.TLS,
  },
  clientAuthentication: msk.ClientAuthentication.tls({
    certificateAuthorities: [
      acmpca.CertificateAuthority.fromCertificateAuthorityArn(
        this,
        'CertificateAuthority',
        'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',
      ),
    ],
  }),
});
```

### SASL/SRAM 软件

启用客户端认证 [SASL/SRAM 软件](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html)数字 :

```ts
declare const vpc: ec2.Vpc;
const cluster = new msk.Cluster(this, 'cluster', {
  clusterName: 'myCluster',
  kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
  vpc,
  encryptionInTransit: {
    clientBroker: msk.ClientBrokerEncryption.TLS,
  },
  clientAuthentication: msk.ClientAuthentication.sasl({
    scram: true,
  }),
});
```

### 行政会议

启用客户端认证 [行政会议](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html)数字 :

```ts
declare const vpc: ec2.Vpc;
const cluster = new msk.Cluster(this, 'cluster', {
  clusterName: 'myCluster',
  kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
  vpc,
  encryptionInTransit: {
    clientBroker: msk.ClientBrokerEncryption.TLS,
  },
  clientAuthentication: msk.ClientAuthentication.sasl({
    iam: true,
  }),
});
```

### SASL/IAM + TLS

启用客户端认证 [行政会议](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html) 通过设置 TLS 并启用客户端认证 `certificateAuthorityArns` 以引用您的 ACM 私人 CA. [更多关于私人CA的信息.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)

```ts
import * as acmpca from 'aws-cdk-lib/aws-acmpca';

declare const vpc: ec2.Vpc;
const cluster = new msk.Cluster(this, 'Cluster', {
  clusterName: 'myCluster',
  kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
  vpc,
  encryptionInTransit: {
    clientBroker: msk.ClientBrokerEncryption.TLS,
  },
  clientAuthentication: msk.ClientAuthentication.saslTls({
    iam: true,
    certificateAuthorities: [
      acmpca.CertificateAuthority.fromCertificateAuthorityArn(
        this,
        'CertificateAuthority',
        'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',
      ),
    ],
  }),
});
```

## 日志

您可以将 Apache Kafka 代理日志发送给以下一个或多个目标类型: 亚马逊云表日志 亚马逊 S3 亚马逊数据 Firehose.

要配置要发送给 S3 桶的日志, 请在 `logging` 相会.

```ts
declare const vpc: ec2.Vpc;
declare const bucket: s3.IBucket;
const cluster = new msk.Cluster(this, 'cluster', {
  clusterName: 'myCluster',
  kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
  vpc,
  logging: {
    s3: {
      bucket,
    },
  },
});
```

S3 目的地配置后, AWS 会自动创建 S3 桶策略 允许服务将日志写入桶中。 这使得以后无法更新 那个桶政策。 要让 CDK 创建桶策略, 以便将来可以更新, 页:1 `@aws-cdk/aws-s3:createDefaultLoggingPolicy` [特性旗](https://docs.aws.amazon.com/cdk/v2/guide/featureflags.html) 可以使用。 这个可以设定 输入 `cdk.json` 文档.

```json
{
  "context": {
    "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true
  }
}
```

## 存储模式

您可以使用 `storageMode` 属性.

分层存储是亚马逊MSK的低成本存储级,其分级到几乎无限存储, 使建立流数据应用程序具有成本效益.

> 访问 [分级存储](https://docs.aws.amazon.com/msk/latest/developerguide/msk-tiered-storage.html) ,以查看兼容的卡夫卡版本列表,并了解更多细节.

```ts
declare const vpc: ec2.Vpc;
declare const bucket: s3.IBucket;

const cluster = new msk.Cluster(this, 'cluster', {
  clusterName: 'myCluster',
  kafkaVersion: msk.KafkaVersion.V4_1_X_KRAFT,
  vpc,
  storageMode: msk.StorageMode.TIERED,
});
```

## MSK快递经纪人

您可以通过设置 : `brokerType` 属性改为 `BrokerType.EXPRESS`. Express Brokers是开发,测试,工作量的低成本选择,不需要标准MSK集群的高可用性保证. 更多信息见 [亚马逊 MSK 特快经纪](https://docs.aws.amazon.com/msk/latest/developerguide/msk-broker-types-express.html)。 。 。 .

**说明:** 在使用Express经纪时,适用以下限制:

-   Apache Kafka版本必须是 3.6.x, 3.8.x, 3.9.x, 或 4.2.x
-   您必须指定 `instanceType`
-   VPC必须至少有3个子网(跨越3个AZ)
-   `ebsStorageInfo` 不支持
-   `storageMode` 不支持
-   `logging` 不支持
-   支持的经纪人大小 : `m7g.xlarge`, (中文(简体) ), `m7g.2xlarge`, (中文(简体) ), `m7g.4xlarge`, (中文(简体) ), `m7g.8xlarge`, (中文(简体) ), `m7g.12xlarge`, (中文(简体) ), `m7g.16xlarge`

```ts
declare const vpc: ec2.Vpc;

const expressCluster = new msk.Cluster(this, 'ExpressCluster', {
  clusterName: 'MyExpressCluster',
  kafkaVersion: msk.KafkaVersion.V3_8_X,
  vpc,
  brokerType: msk.BrokerType.EXPRESS,
  instanceType: ec2.InstanceType.of(
    ec2.InstanceClass.M7G,
    ec2.InstanceSize.XLARGE,
  ),
});
```

## 无 MSK 服务器

您也可以通过使用 MSK 无服务器 `ServerlessCluster` 课.

MSK Serverless是亚马逊MSK的一种集群类型,它使得您可以运行Apache Kafka而无需管理和规模化集群能力.

MSK Serverless要求所有集群的IAM访问控制.

关于更多的信息,见 [使用 MSK 无服务器集群](https://docs.aws.amazon.com/msk/latest/developerguide/serverless-getting-started.html)。 。 。 .

```ts
declare const vpc: ec2.Vpc;

const serverlessCluster = new msk.ServerlessCluster(this, 'ServerlessCluster', {
  clusterName: 'MyServerlessCluster',
  vpcConfigs: [
    { vpc },
  ],
});
```

## 常见问题

### @aws-cdk/aws-msk-alpha 是什么？

AWS: MSK 的 CDK 构造库

### 如何安装 @aws-cdk/aws-msk-alpha？

在项目目录运行 npm install @aws-cdk/aws-msk-alpha，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：constructs（^10\.5\.0）、aws-cdk-lib（^2\.275\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @aws-cdk/aws-msk-alpha 支持 TypeScript 吗？

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

### @aws-cdk/aws-msk-alpha 支持 ESM 还是 CommonJS？

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

### @aws-cdk/aws-msk-alpha 需要什么版本的 Node\.js？

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

### @aws-cdk/aws-msk-alpha 可以商用吗？

@aws-cdk/aws-msk-alpha 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @aws-cdk/aws-msk-alpha 的下载量有多少？

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

### @aws-cdk/aws-msk-alpha 还在维护吗？

最新版本 2\.275\.0-alpha\.0 发布于 2026/10/27（12 天前）；至今共发布 380 个版本，其中过去 12 个月发布了 64 个；首次发布于 2021/10/14。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

