我正在尝试创建一个 EventBridge (CloudWatch Events) 规则并将该规则作为触发器添加到现有 Lambda 函数中。
const notificationFunction = lambda.Function.fromFunctionArn(this,
'DevopsNotificationLambda',
_props.notificationLambdaArn
);
const rule = new Rule(this, `${stackPrefix}-EventRule`, {
eventPattern: {
source: ['aws.codepipeline'],
detailType: ['CodePipeline Pipeline Execution State Change'],
detail: {pipeline: [pipeline.pipelineName]}
},
});
notificationFunction.addPermission(`${stackPrefix}-CloudWatchPermission`, {
principal: new ServicePrincipal('events.amazonaws.com'),
sourceArn: rule.ruleArn
});
rule.addTarget(new LambdaFunction(notificationFunction));
该代码正确地使用 Lambda 目标创建 EventBridge,但它不会将触发器添加到实际的 Lambda。我必须通过 AWS Web 控制台手动将 EventBridge 添加到 Lambda。
似乎将 Lambda 作为目标添加到事件规则是不够的。我应该如何将事件规则作为触发器添加到 Lambda?