控制台配置EventBridge后能否导出YAML?及YAML配置双定时任务传JSON至Lambda
问题解答
1. 从AWS控制台获取EventBridge规则的YAML配置代码
- 进入AWS EventBridge控制台,导航到规则页面,找到你已创建的目标规则
- 点击规则名称进入详情页,右上角点击操作,选择导出为CloudFormation模板
- 在弹出的导出窗口中,选择YAML格式,点击下载模板即可获取对应的配置代码
- 注意:导出的模板会包含规则本身及关联的基础配置,若规则依赖其他资源(如Lambda函数),模板中会通过
Ref或资源ARN引用,你可以根据实际需求调整这些引用内容
2. 编写CloudFormation YAML模板实现双定时规则传不同静态JSON到Lambda
以下是完整的模板示例,包含两个EventBridge定时规则、对应的Lambda权限配置(假设你已有目标Lambda函数,若需要在模板中创建Lambda可自行添加相关资源):
AWSTemplateFormatVersion: '2010-09-09' Description: CloudFormation模板创建两个EventBridge定时规则,向Lambda传递不同静态JSON Resources: # 第一个EventBridge定时规则:每天凌晨1点触发,传递JSON1 EventRuleDaily1AM: Type: AWS::Events::Rule Properties: ScheduleExpression: cron(0 1 * * ? *) State: ENABLED Targets: - Arn: !Sub 'arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:YourLambdaFunctionName' Id: 'TargetLambda1' Input: '{"task": "daily-backup", "priority": "high"}' # 第二个EventBridge定时规则:每周日凌晨2点触发,传递JSON2 EventRuleWeeklySunday2AM: Type: AWS::Events::Rule Properties: ScheduleExpression: cron(0 2 ? * SUN *) State: ENABLED Targets: - Arn: !Sub 'arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:YourLambdaFunctionName' Id: 'TargetLambda2' Input: '{"task": "weekly-cleanup", "priority": "medium"}' # 授权EventBridge调用第一个规则对应的Lambda LambdaPermissionForRule1: Type: AWS::Lambda::Permission Properties: FunctionName: !Sub 'arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:YourLambdaFunctionName' Action: lambda:InvokeFunction Principal: events.amazonaws.com SourceArn: !GetAtt EventRuleDaily1AM.Arn # 授权EventBridge调用第二个规则对应的Lambda LambdaPermissionForRule2: Type: AWS::Lambda::Permission Properties: FunctionName: !Sub 'arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:YourLambdaFunctionName' Action: lambda:InvokeFunction Principal: events.amazonaws.com SourceArn: !GetAtt EventRuleWeeklySunday2AM.Arn
模板说明:
- 替换
YourLambdaFunctionName为你的实际Lambda函数名称 ScheduleExpression使用cron表达式定义触发时间,可根据需求修改Input字段为静态JSON字符串,注意用单引号包裹,内部保持合法JSON格式- 每个EventBridge规则需要对应的
AWS::Lambda::Permission资源,允许EventBridge服务调用Lambda函数
内容的提问来源于stack exchange,提问作者Pedro Henrique
相关产品推荐
相关产品推荐

