我可以在CloudFormation模板中创建CloudWatch预定事件吗?

时间:2018-08-22 15:12:05

标签: amazon-web-services amazon-cloudformation amazon-cloudwatch

我知道我可以通过AWS控制台创建Scheduled Cloud Watch事件:

https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Scheduled-Rule.html

有没有办法在Cloud Formation模板中声明类似事件?

3 个答案:

答案 0 :(得分:2)

下面是在cloudwatch中创建计划事件的示例,它创建了一个规则,该规则每10分钟调用一次指定的Lambda函数。 PermissionForEventsToInvokeLambda资源授予EventBridge调用关联功能的权限。

"ScheduledRule": {
  "Type": "AWS::Events::Rule",
  "Properties": {
    "Description": "ScheduledRule",
    "ScheduleExpression": "rate(10 minutes)",
    "State": "ENABLED",
    "Targets": [{
      "Arn": { "Fn::GetAtt": ["LambdaFunction", "Arn"] },
      "Id": "TargetFunctionV1"
    }]
  }
},
"PermissionForEventsToInvokeLambda": {
  "Type": "AWS::Lambda::Permission",
  "Properties": {
    "FunctionName": { "Ref": "LambdaFunction" },
    "Action": "lambda:InvokeFunction",
    "Principal": "events.amazonaws.com",
    "SourceArn": { "Fn::GetAtt": ["ScheduledRule", "Arn"] }
  }
}

该示例从AWS官方文档中引用。

答案 1 :(得分:0)

是的,有可能。

AWS::Events::Rule资源创建一个规则,该规则匹配传入的Amazon CloudWatch事件(CloudWatch Events)事件并将其路由到一个或多个目标进行处理。

这是示例CloudFormation代码段:

Type: AWS::Events::Rule
Properties: 
  Description: String
  EventPattern: JSON object
  Name: String
  ScheduleExpression: String
  State: String
  Targets:
    - Target

如果您还有其他问题,这里是official documentation

答案 2 :(得分:0)

是的,有可能被@bhalothia分享。请找到一篇文章,让您深入了解它。

实际实施:

http://marcelog.github.io/articles/serverless_cloudwatch_event_cloudformation_template.html

详细文档:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html

希望对您有帮助。