# @aws-cdk/aws-scheduler-targets-alpha 中文文档

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

版本：2\.186\.0-alpha\.0
npm 元数据更新时间：2025-03-27T17:48:58.363Z
中文译文更新时间：2026-11-07T14:03:59.012Z
软件包许可：Apache-2\.0

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

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

弃用说明：This package has been stabilized and moved to aws-cdk-lib

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

- 包体积（解压后）：429 kB，44 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 14\.15\.0
- 运行依赖：0 个
- peer 依赖：constructs ^10\.0\.0，aws-cdk-lib ^2\.186\.0，@aws-cdk/aws-scheduler-alpha 2\.186\.0-alpha\.0
- 首次发布：2023-09-01T19:09:43.929Z
- 最新版本发布：2025-03-27T02:01:09.753Z
- 近 30 天下载量：35436（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：136（近 12 个月 0 个）

## 中文简介

此模块被贬值. 现在,所有建筑均可在aws-cdk-lib/aws-schedler-targets下使用.

## 安装

```sh
npm install @aws-cdk/aws-scheduler-targets-alpha
```

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

## README

# 亚马逊事件Bridge 调度器目标构建库

* * *

![Deprecated](https://img.shields.io/badge/deprecated-critical.svg?style=for-the-badge)

> 此API 可能会发出警告 。 后向兼容性没有保证 .

* * *

所有构造已移入 `aws-cdk-lib/aws-scheduler-targets`。 。 。 .

[亚马逊事件Bridge 调度器](https://aws.amazon.com/blogs/compute/introducing-amazon-eventbridge-scheduler/) 是一个来自亚马逊事件Bridge的特性 用于创建、运行和管理预定任务。 使用 EventBridge 调度器,您可以在不提供或管理基础基础设施的情况下,为各种AWS服务安排数百万个一次性或重复的任务.

此库包含 Amazon EventBridge 调度器的集成类 支持的AWS服务数量.

支持下列目标:

1.  `targets.LambdaInvoke`数字 : [启动 AWS Lambda 函数](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-invoke-a-lambda-function)
2.  `targets.StepFunctionsStartExecution`数字 : [启动 AWS 步函数](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-start-an-aws-step-function)
3.  `targets.CodeBuildStartBuild`数字 : [启动代码构建任务](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-start-a-codebuild-job)
4.  `targets.SqsSendMessage`数字 : [向 Amazon SQS 队列发送信件](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-send-a-message-to-an-sqs-queue)
5.  `targets.SnsPublish`数字 : [向 Amazon SNS 专题发布消息](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-publish-messages-to-an-amazon-sns-topic)
6.  `targets.EventBridgePutEvents`数字 : [将事件放在事件桥上](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-send-events-to-an-eventbridge-event-bus)
7.  `targets.InspectorStartAssessmentRun`数字 : [启动亚马逊检查员评估](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-start-an-amazon-inspector-assessment-run)
8.  `targets.KinesisStreamPutRecord`数字 : [给亚马逊 Kinesis 数据流记录](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-put-a-record-to-an-amazon-kinesis-data-stream)
9.  `targets.FirehosePutRecord`数字 : [给亚马逊数据放唱片](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-put-a-record-to-an-amazon-data-firehose)
10.  `targets.CodePipelineStartPipelineExecution`数字 : [启动代码Pipeline执行](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-start-a-codepipeline-execution)
11.  `targets.SageMakerStartPipelineExecution`数字 : [启动 SageMaker 管道执行](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-start-a-sagemaker-pipeline-execution)
12.  `targets.EcsRunTask`数字 : [开始一项新的ECS任务](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-schedule-an-ecs-task-run)
13.  `targets.Universal`数字 : [启动更宽的 AWS API](https://npmcn.com/package/%40aws-cdk/aws-scheduler-targets-alpha/#readme-invoke-a-wider-set-of-aws-api)

## 启动 Lambda 函数

使用 `LambdaInvoke` 目标以引用 lambda 函数.

下面的代码片段创建了以 Lambda 函数作为目标的事件规则 每隔一小时由 EventBridge 调度员用定制的有效载荷打电话 您可以选择附加 [死信队列](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html)。 。 。 .

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

const fn = new lambda.Function(this, 'MyFunc', {
    runtime: lambda.Runtime.NODEJS_LATEST,
    handler: 'index.handler',
    code: lambda.Code.fromInline(`exports.handler = handler.toString()`),
});

const dlq = new sqs.Queue(this, "DLQ", {
    queueName: 'MyDLQ',
});

const target = new targets.LambdaInvoke(fn, {
    deadLetterQueue: dlq,
    maxEventAge: Duration.minutes(1),
    retryAttempts: 3,
    input: ScheduleTargetInput.fromObject({
        'payload': 'useful'
    }),
});

const schedule = new Schedule(this, 'Schedule', {
    schedule: ScheduleExpression.rate(Duration.hours(1)),
    target
});
```

## 启动 AWS 步函数

使用 `StepFunctionsStartExecution` 目标在步进函数上启动新的执行.

下面的代码片段创建了以 Step 函数为目标的事件规则 每隔一小时由 EventBridge 调度员用定制的有效载荷打电话.

```ts
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';

const payload = {
  Name: "MyParameter",
  Value: '🌥️',
};

const putParameterStep = new tasks.CallAwsService(this, 'PutParameter', {
  service: 'ssm',
  action: 'putParameter',
  iamResources: ['*'],
  parameters: {
    "Name.$": '$.Name',
    "Value.$": '$.Value',
    Type: 'String',
    Overwrite: true,
  },
});

const stateMachine = new sfn.StateMachine(this, 'StateMachine', {
  definitionBody: sfn.DefinitionBody.fromChainable(putParameterStep)
});

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.hours(1)),
  target: new targets.StepFunctionsStartExecution(stateMachine, {
    input: ScheduleTargetInput.fromObject(payload),
  }),
});
```

## 启动代码构建任务

使用 `CodeBuildStartBuild` 目标是在代码构建项目上启动一个新的构建运行.

下面的代码片段创建了一个以代码构建项目为目标的事件规则,即 由事件Bridge调度员每小时打电话.

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

declare const project: codebuild.Project;

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.minutes(60)),
  target: new targets.CodeBuildStartBuild(project),
});
```

## 向 SQS 队列发送信件

使用 `SqsSendMessage` 目标向 SQS 队列发送消息.

下面的代码片段创建以 SQS 队列为目标的事件规则 每隔一小时由 EventBridge 调度员用定制的有效载荷打电话.

包含 `messageGroupId` 当目标为FIFO队列时使用。 如果您指定 a FIFO 队列作为目标,队列必须启用基于内容的分解.

```ts
const payload = 'test';
const messageGroupId = 'id';
const queue = new sqs.Queue(this, 'MyQueue', {
  fifo: true,
  contentBasedDeduplication: true,
});

const target = new targets.SqsSendMessage(queue, {
    input: ScheduleTargetInput.fromText(payload),
    messageGroupId,
});

new Schedule(this, 'Schedule', {
    schedule: ScheduleExpression.rate(Duration.minutes(1)),
    target
});
```

## 向 Amazon SNS 专题发布消息

使用 `SnsPublish` 目标向亚马逊 SNS 专题发布消息.

下面的代码片段创建了以亚马逊 SNS 为目标的事件规则. 它每小时由亚马逊事件Bridge调度器使用自定义的有效载荷命名.

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

const topic = new sns.Topic(this, 'Topic');

const payload = {
  message: 'Hello scheduler!',
};

const target = new targets.SnsPublish(topic, {
  input: ScheduleTargetInput.fromObject(payload),
});

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.hours(1)),
  target,
});
```

## 将事件发送到 EventBridge 事件总线

使用 `EventBridgePutEvents` 目标将事件发送到 EventBridge 事件总线.

下面的代码片段以 EventBridge 事件总线为目标创建事件规则 每小时由事件Bridge调度员用自定义事件有效载荷呼叫.

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

const eventBus = new events.EventBus(this, 'EventBus', {
  eventBusName: 'DomainEvents',
});

const eventEntry: targets.EventBridgePutEventsEntry = {
  eventBus,
  source: 'PetService',
  detail: ScheduleTargetInput.fromObject({ Name: 'Fluffy' }),
  detailType: '🐶',
};

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.hours(1)),
  target: new targets.EventBridgePutEvents(eventEntry),
});
```

## 启动亚马逊检查员评估

使用 `InspectorStartAssessmentRun` 目标开始对检查专员进行评估.

下面的代码片段创建了一个事件规则,其中有一个评估模板作为目标,即 由事件Bridge调度员每小时打电话.

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

declare const cfnAssessmentTemplate: inspector.CfnAssessmentTemplate;

const assessmentTemplate = inspector.AssessmentTemplate.fromCfnAssessmentTemplate(this, 'MyAssessmentTemplate', cfnAssessmentTemplate);

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.minutes(60)),
  target: new targets.InspectorStartAssessmentRun(assessmentTemplate),
});
```

## 给亚马逊 Kinesis 数据流记录

使用 `KinesisStreamPutRecord` 目标给亚马逊Kinesis数据流记录.

下面的代码片段创建以流为目标的事件规则 由事件Bridge调度员每小时打电话.

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

const stream = new kinesis.Stream(this, 'MyStream');

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.minutes(60)),
  target: new targets.KinesisStreamPutRecord(stream, {
    partitionKey: 'key',
  }),
});
```

## 给亚马逊数据放唱片

使用 `FirehosePutRecord` 目标给亚马逊数据Firehose传送流录制.

下面的代码片段创建了以传送流为目标的事件规则 每隔一小时由 EventBridge 调度员用定制的有效载荷打电话.

```ts
import * as firehose from 'aws-cdk-lib/aws-kinesisfirehose';
declare const deliveryStream: firehose.IDeliveryStream;

const payload = {
  Data: "record",
};

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.minutes(60)),
  target: new targets.FirehosePutRecord(deliveryStream, {
    input: ScheduleTargetInput.fromObject(payload),
  }),
});
```

## 启动代码Pipeline执行

使用 `CodePipelineStartPipelineExecution` 目标开始代码Pipeline管道的新执行.

下面的代码片段创建了一个事件规则,以代码Pipeline管道作为目标,即 由事件Bridge调度员每小时打电话.

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

declare const pipeline: codepipeline.Pipeline;

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.minutes(60)),
  target: new targets.CodePipelineStartPipelineExecution(pipeline),
});
```

## 启动 SageMaker 管道执行

使用 `SageMakerStartPipelineExecution` 目标为启动 SageMaker 管道的新执行.

下面的代码片段创建了以 SageMaker 管道为目标的事件规则,即 由事件Bridge调度员每小时打电话.

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

declare const pipeline: sagemaker.IPipeline;

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.minutes(60)),
  target: new targets.SageMakerStartPipelineExecution(pipeline, {
    pipelineParameterList: [{
      name: 'parameter-name',
      value: 'parameter-value',
    }],
  }),
});
```

## 安排一个ECS任务运行

使用 `EcsRunTask` 目标为为集群运行的ECS任务.

下面的代码片段创建了一个事件规则,以远门任务定义和集群作为目标,由 EventBridge 调度器每小时调用.

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

declare const cluster: ecs.ICluster;
declare const taskDefinition: ecs.FargateTaskDefinition;

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(cdk.Duration.minutes(60)),
  target: new targets.EcsRunFargateTask(cluster, {
    taskDefinition,
  }),
});
```

下面的代码片段创建了一个事件规则,以EC2任务定义并集群作为目标,由 EventBridge 调度器每小时调用.

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

declare const cluster: ecs.ICluster;
declare const taskDefinition: ecs.Ec2TaskDefinition;

new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(cdk.Duration.minutes(60)),
  target: new targets.EcsRunEc2Task(cluster, {
    taskDefinition,
  }),
});
```

## 启动更宽的 AWS API

使用 `Universal` 目标引用 AWS API。 见 [https://docs.aws.amazon.com/cheduler/latest/UserGuide/managing-targets-universal.html 互联网档案馆的存檔,存档日期2013-12-12](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html)

下面的代码片段以 AWS API 作为目标创建事件规则 每天午夜由事件Bridge调度员打电话来.

```ts
new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.cron({
    minute: '0',
    hour: '0',
  }),
  target: new targets.Universal({
    service: 'rds',
    action: 'stopDBCluster',
    input: ScheduleTargetInput.fromObject({
      DbClusterIdentifier: 'my-db',
    }),
  }),
});
```

这个 `service` 必须是小写和 `action` 一定是在骆驼场.

默认情况下,从API调用中提取出调度器的IAM政策. 政策中的行动是使用下列方法构建的: `service` 财务报告和审定财务报表 `action` 道具 (英语). 重新利用上述例子,将采取行动 `rds:stopDBCluster`。请注意,并非所有的IAM行动都遵循同样的模式。 在这种情况下,请使用 `policyStatements` 覆盖策略的道具 :

```ts
new Schedule(this, 'Schedule', {
  schedule: ScheduleExpression.rate(Duration.minutes(60)),
  target: new targets.Universal({
    service: 'sqs',
    action: 'sendMessage',
    policyStatements: [
      new iam.PolicyStatement({
        actions: ['sqs:SendMessage'],
        resources: ['arn:aws:sqs:us-east-1:123456789012:my_queue'],
      }),
      new iam.PolicyStatement({
        actions: ['kms:Decrypt', 'kms:GenerateDataKey*'],
        resources: ['arn:aws:kms:us-east-1:123456789012:key/0987dcba-09fe-87dc-65ba-ab0987654321'],
      }),
    ],
  }),
});
```

> 注:默认策略用途 `*` 在资源字段中,由于CDK没有自动发现所需资源许可的直线前进方式. 建议你们把实地缩小到具体的资源范围内,以便有更好的安全态势.

## 常见问题

### @aws-cdk/aws-scheduler-targets-alpha 是什么？

此模块被贬值\. 现在,所有建筑均可在aws-cdk-lib/aws-schedler-targets下使用\.注意：该包已被作者标记为弃用——This package has been stabilized and moved to aws-cdk-lib

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

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

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

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

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

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

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

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

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

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

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

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

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

最新版本 2\.186\.0-alpha\.0 发布于 2025/03/27（1\.6 年前）；至今共发布 136 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/09/02。作者已将其标记为弃用，新项目建议寻找替代方案。

