如果您要添加输入转换器以使用aws_cdk.aws_events.RuleTargetInputProperties类,则需要通过以下示例代码执行此操作:
import * as cdk from 'aws-cdk-lib';
import * as events from 'aws-cdk-lib/aws-events';
import * as targets from 'aws-cdk-lib/aws-events-targets';
import * as iam from 'aws-cdk-lib/aws-iam';
export class MyStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const rule = new events.Rule(this, 'MyRule', {
schedule: events.Schedule.rate(cdk.Duration.minutes(5)),
});
const inputTransformer = {
inputPathsMap: {
"state.$": "$.detail.state",
"account": "$.account",
"region": "$.region"
},
inputTemplate: '{"state": ,"account": "","region": ""}'
};
const lambda = new lambda.Function(this, 'MyLambda', {
runtime: lambda.Runtime.NODEJS_12_X,
code: lambda.Code.fromAsset('lambda'),
handler: 'index.handler',
initialPolicy: [
new iam.PolicyStatement({
effect: iam.Effect.ALLOW,
actions: ['logs:CreateLogGroup', 'logs:CreateLogStream', 'logs:PutLogEvents'],
resources: ['arn:aws:logs:*:*:*']
})
]
});
rule.addTarget(new targets.LambdaFunction(lambda, {
event: events.RuleTargetInput.fromObject(inputTransformer)
}));
}
}