我正在使用AWS Clouwatch事件规则调用一个基于Cron调度的python lambda函数,该函数运行良好。现在,我可以使用AWS Cloudformation将参数从cloudwatch偶数规则传递到这个lambda函数中吗?请你带路好吗?请参见以下我的cfn模板:
Step1 : parameter.Schedule=cron(0 21 ? * * *)
Step 2: "Schedule": {
"Description": "Schedule for the Lambda function (cron or rate)",
"Type": "String"
},
Step 3: "funcInvokeRule": {
"Type": "AWS::Events::Rule",
"Properties": {
"ScheduleExpression": {"Ref": "Schedule"},
"Targets": [{
"Id": "funcScheduler",
"Arn": {"Fn::GetAtt": ["Function","Arn"]}
}]
}
},
遵循AWS文档,您的云形成资源可以简单到:
Resources:
EventRule:
Type: AWS::Events::Rule
Properties:
Name: {EVENTNAME}
Description: "ScheduledRule"
ScheduleExpression: cron(0 21 ? * * *)
State: "ENABLED"
RoleArn: {ROLE}
将Name和RoleArn替换为您自己的值。
注意:名称不是必需的参数,但有助于识别您的资源。但是,根据文档,如果替换cloudformation模板中的资源,则需要指定一个新名称。
如果您还打算使用serverless为您的lambda使用云形成,那么我个人会通过权限将规则附加到lambda,这样您就可以在规则上附加多达5个触发器,而无需每次都修改规则目标。
Lambda:
Type: AWS::Serverless::Function
Properties:
FunctionName:{LAMBDANAME}
Description: {Description}
Role: {Role}
Handler: {FileName}.lambda_handler
Runtime: {x}
CodeUri: {ObjectPath}
MemorySize: {x}
Timeout: {x}
Lambdatrigger:
Type: AWS::Lambda::Permission
Properties:
FunctionName: !Ref Lambda
Action: lambda:InvokeFunction
Principal: events.amazonaws.com
SourceArn: !Ref EventRule
AWS::Events::Rule的属性类型具有输入参数:
传递给目标的有效JSON文本。如果使用此属性,则不会将事件文本本身中的任何内容传递给目标。
还有一个InputTransex,您可以使用它来转换现有输入,例如,向其添加额外的值。
使您能够根据某些事件数据向目标提供自定义输入的设置。您可以从事件中提取一个或多个键值对,然后使用该数据向目标发送自定义输入。
我的问题是: 在Drools规则中,有没有一种方法可以拦截“成功”事件?为了更好地解释。。。有一种方法可以在规则的所有条件都为真时调用侦听器? 注意:我不想设置一个全局对象(在会话上)来管理规则的“然后”子句中的这个条件。 我正在寻找一个已经在Drools上实现的解决方案 规则示例
我创建了具有以下事件模式的CloudWatch规则: 其思想是,每当集群的状态发生变化时,它都会调用lambda函数。 现在的问题是,当它调用lambda函数时,会出现以下错误: 带代码: 那么,我应该使用哪个类来解析CloudWatch规则事件? 谢谢你。
我有一个附加在CloudWatch事件上的lambda,一旦事件触发,lambda将通过以下代码删除规则: 提前感谢!
我正在创建一个Cloudwatch事件规则,如果步骤函数进入故障或超时状态,它应该会触发lambda。云观察事件规则将参数传递给lambda,这将发送一封自定义的SNS电子邮件。我正在尝试将输入参数的值从我在云形成模板中设置的参数传递到Cloudwatch事件规则中。我无法让Cloudform将参数值提取出来,将它们放入Cloudwatch事件规则输入参数中。CF接受我在JSON中给出的文字值并将
我正在尝试设置Cloudwatch事件规则来通知任何AWS IAM操作,例如DeleteUser或CreateUser。但是当我尝试创建事件模式时,我在服务名称列表中找不到IAM,即使当我在AWS留档中搜索时,我找不到Cloudwatch事件规则不支持IAM的提及。所以我尝试创建一个自定义事件,但我没有收到来自SNS(我的目标)的任何电子邮件,是的,我确保Cloudwatch具有调用SNS的权限,
我已经使用配置了一个CloudWatch规则以在给定时间运行,但Lambda只是有时被调用。我已经确保Lambda执行角色具有适当的权限,有时CloudWatch规则会正确运行,调用我的Lambda函数。 例如,我以编程方式创建了一个规则,启用了它,并使用Python中的boto3客户端添加了一个目标,然后当角色执行时,它会执行,并在CloudWatch度量中显示“调用错误”。我采用了同样的规则,