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

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

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

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

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

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

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

## 中文简介

AWS:IoT 的 CDK 构建库

## 安装

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

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

## README

# AWS IOT 构造库

* * *

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

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

* * *

AWS IOT Core允许您连接数十亿个IOT设备以及数以万亿计的路由 向AWS服务发送信息而不管理基础设施.

## `TopicRule`

创建一个主题规则,使您的设备能够与 AWS 服务交互. 您可以以下列动作创建主题规则:

```ts
const func = new lambda.Function(this, 'MyFunction', {
  runtime: lambda.Runtime.NODEJS_LATEST,
  handler: 'index.handler',
  code: lambda.Code.fromInline(`
    exports.handler = (event) => {
      console.log("It is test for lambda action of AWS IoT Rule.", event);
    };`
  ),
});

new iot.TopicRule(this, 'TopicRule', {
  topicRuleName: 'MyTopicRule', // optional
  description: 'invokes the lambda function', // optional
  sql: iot.IotSql.fromStringAsVer20160323("SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'"),
  actions: [new actions.LambdaFunctionAction(func)],
});
```

或者,你可以在构建后添加一个动作 `TopicRule` 实例如下:

```ts
declare const func: lambda.Function;

const topicRule = new iot.TopicRule(this, 'TopicRule', {
  sql: iot.IotSql.fromStringAsVer20160323("SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'"),
});
topicRule.addAction(new actions.LambdaFunctionAction(func));
```

您也可以提供 `errorAction` 如下, 如果规则的行为无法执行,则IOT规则将触发:

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

const logGroup = new logs.LogGroup(this, 'MyLogGroup');

new iot.TopicRule(this, 'TopicRule', {
  sql: iot.IotSql.fromStringAsVer20160323("SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'"),
  errorAction: new actions.CloudWatchLogsAction(logGroup),
});
```

如果你想让主题规则禁用, 请添加属性 `enabled: false` 现改为:

```ts
new iot.TopicRule(this, 'TopicRule', {
  sql: iot.IotSql.fromStringAsVer20160323("SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'"),
  enabled: false,
});
```

另见 [@aws-cdk/aws-iot-actions-alpha (英语)](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-iot-actions-alpha-readme.html) 用于其他行动.

## 日志

AWS IOT提供 [日志特性](https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html) 允许您监视和记录 AWS IOT 活动.

您可以使用以下代码启用 IOT 日志 :

```ts
new iot.Logging(this, 'Logging', {
  logLevel: iot.LogLevel.INFO,
});
```

**说明**: 所有日志已转发至 `AWSIotLogsV2` 云表的日志组.

## 审计

一个 [AWS IOT 设备维护者审计外观](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit.html) 与账户和装置有关的设置和政策已经到位,以确保安全措施. 审计可以帮助你发现任何偏离安全最佳做法或准入政策的情况.

### 账户审计配置

信息技术审计包括: [各种审计检查](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit-checks.html),并且需要配置设置以允许这些检查.

您可以启用以下代码的账户审计配置 :

```ts
// Audit notification are sent to the SNS topic
declare const targetTopic: sns.ITopic;

new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {
  targetTopic,
});
```

默认情况下,所有审计检查都是启用的,但也有可能只允许特定的审计检查.

```ts
new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {
  checkConfiguration: {
    // enabled
    authenticatedCognitoRoleOverlyPermissiveCheck: true,
    // enabled by default
    caCertificateExpiringCheck: undefined,
    // disabled
    caCertificateKeyQualityCheck: false,
    conflictingClientIdsCheck: false,
    deviceCertificateAgeCheck: false,
    deviceCertificateExpiringCheck: false,
    deviceCertificateKeyQualityCheck: false,
    deviceCertificateSharedCheck: false,
    intermediateCaRevokedForActiveDeviceCertificatesCheck: false,
    ioTPolicyPotentialMisConfigurationCheck: false,
    iotPolicyOverlyPermissiveCheck: false,
    iotRoleAliasAllowsAccessToUnusedServicesCheck: false,
    iotRoleAliasOverlyPermissiveCheck: false,
    loggingDisabledCheck: false,
    revokedCaCertificateStillActiveCheck: false,
    revokedDeviceCertificateStillActiveCheck: false,
    unauthenticatedCognitoRoleOverlyPermissiveCheck: false,
  },
});
```

要配置 [设备证书年龄检查](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-certificate-age-check.html),您可以指定检查的持续时间 :

```ts
import { Duration } from 'aws-cdk-lib';

new iot.AccountAuditConfiguration(this, 'AuditConfiguration', {
  checkConfiguration: {
    deviceCertificateAgeCheck: true,
    // The default value is 365 days
    // Valid values range from 30 days (minimum) to 3650 days (10 years, maximum)
    deviceCertificateAgeCheckDuration: Duration.days(365),
  },
});
```

### 排定的审计

您可以创建 [预定审计](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/AuditCommands.html#device-defender-AuditCommandsManageSchedules) 在指定的时间间隔内运行。 必须通过创建来启用您的账户检查 `AccountAuditConfiguration`。 。 。 .

```ts
declare const config: iot.AccountAuditConfiguration;

// Daily audit
const dailyAudit = new iot.ScheduledAudit(this, 'DailyAudit', {
  accountAuditConfiguration: config,
  frequency: iot.Frequency.DAILY,
  auditChecks: [
    iot.AuditCheck.AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK,
  ],
})

// Weekly audit
const weeklyAudit = new iot.ScheduledAudit(this, 'WeeklyAudit', {
  accountAuditConfiguration: config,
  frequency: iot.Frequency.WEEKLY,
  dayOfWeek: iot.DayOfWeek.SUNDAY,
  auditChecks: [
    iot.AuditCheck.CA_CERTIFICATE_EXPIRING_CHECK,
  ],
});

// Monthly audit
const monthlyAudit = new iot.ScheduledAudit(this, 'MonthlyAudit', {
  accountAuditConfiguration: config,
  frequency: iot.Frequency.MONTHLY,
  dayOfMonth: iot.DayOfMonth.of(1),
  auditChecks: [
    iot.AuditCheck.CA_CERTIFICATE_KEY_QUALITY_CHECK,
  ],
});
```

## 常见问题

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

AWS:IoT 的 CDK 构建库

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

在项目目录运行 npm install @aws-cdk/aws-iot-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-iot-alpha 支持 TypeScript 吗？

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

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

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

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

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

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

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

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

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

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

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

