首页 > 解决方案 > 如何使用 aws cdk 为 cloudwatch 事件规则添加输入转换到目标?

问题描述

创建云监视事件规则后,我尝试向其添加目标,但无法添加输入转换。以前,添加目标具有允许输入转换的道具,但现在不再允许。

codeBuildRule.addTarget(new SnsTopic(props.topic));

aws cdk 页面提供了这个解决方案,但我不完全理解它所说的

您可以使用 eventRule.addTarget(target[, input]) 添加其他目标,以及可选的输入转换器。例如,我们可以添加一个 SNS 主题目标,它为提交格式化人类可读的消息。

标签: aws-cdk

解决方案


您应该指定message道具并使用RuleTargetInput 静态方法。其中一些方法可以使用返回的字符串EventField.fromPath()

// From a path
codeBuildRule.addTarget(new SnsTopic(props.topic, {
  message: events.RuleTargetInput.fromEventPath('$.detail')
}));

// Custom object
codeBuildRule.addTarget(new SnsTopic(props.topic, {
  message: RuleTargetInput.fromObject({
    foo: EventField.fromPath('$.detail.bar')
  })
}));

推荐阅读