Aws lambda 如何创建EventBridge(CloudWatch事件)规则并使用CDK将其作为触发器添加到Lambda函数中?

Aws lambda 如何创建EventBridge(CloudWatch事件)规则并使用CDK将其作为触发器添加到Lambda函数中?,aws-lambda,aws-cdk,aws-event-bridge,Aws Lambda,Aws Cdk,Aws Event Bridge,我正在尝试创建一个EventBridge(CloudWatch事件)规则,并将该规则作为触发器添加到现有的Lambda函数中 const notificationFunction = lambda.Function.fromFunctionArn(this, 'DevopsNotificationLambda', _props.notificationLambdaArn ); const rule = new Rule(this, `${stack

我正在尝试创建一个EventBridge(CloudWatch事件)规则,并将该规则作为触发器添加到现有的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?

来自《CDK开发人员指南》

尽管可以在任何地方使用导入的资源,但不能修改导入的资源。例如,在导入的s3.Bucket上调用addToResourcePolicy(Python:add_to_resource_policy)不起任何作用

无法从CDK堆栈向
notificationFunction
添加触发器,因为
notificationFunction
是一个外部资源