Aws lambda 如何创建EventBridge(CloudWatch事件)规则并使用CDK将其作为触发器添加到Lambda函数中?
我正在尝试创建一个EventBridge(CloudWatch事件)规则,并将该规则作为触发器添加到现有的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
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
是一个外部资源