携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情
1.定义events client
1.1 首先导入boto3的包
import boto3
1.2 定义events client
import boto3
from botocore.config import Config #导入配置模块
# 在这里定义events的client,并且使用Config来设置区域
events = boto3.client('events',config=Config(region_name='us-east-1'))
2.对EventBridge Rules进行描述操作(列出)
2.1 请求语法
response = client.list_rules(
NamePrefix='string',
EventBusName='string',
NextToken='string',
Limit=123
)
2.2 列出所有规则
import boto3
from botocore.config import Config #导入配置模块
# 在这里定义events的client,并且使用Config来设置区域
events = boto3.client('events',config=Config(region_name='us-east-1'))
# 定义 list_events 来接收events client请求的返回数据
list_events = events.list_rules()
# 使用print进行打印
print(list_events)
2.3 列出指定Rule,以Rule Name作为参数
import boto3
from botocore.config import Config #导入配置模块
# 在这里定义events的client,并且使用Config来设置区域
events = boto3.client('events',config=Config(region_name='us-east-1'))
# 在下面的请求中,添加了一个 NamePrefix 的字符串 ,其中 'leifengRule' 就是某个 rule 的名字,那么这个请求只会返回该rule的相关信息,而不是打印所有
# 使用默认的 EventBusName = 'default'
list_events = events.list_rules(
NamePrefix='leifengRule'
EventBusName='default'
)
# 使用print进行打印
print(list_events)
3.EventBridge Rule的创建、删除、启用、关闭
3.1 创建rule
3.1.1 请求语法
response = client.put_rule(
Name='string',
ScheduleExpression='string',
EventPattern='string',
State='ENABLED'|'DISABLED',
Description='string',
RoleArn='string',
Tags=[
{
'Key': 'string',
'Value': 'string'
},
],
EventBusName='string'
)
3.1.2 创建rule
import boto3
from botocore.config import Config #导入配置模块
# 在这里定义events的client,并且使用Config来设置区域
events = boto3.client('events',config=Config(region_name='us-east-1'))
# 定义 rule_name,state,cron
rule_name = 'fengleiRule'
rule_stat = 'ENABLED' # 这里可以定义 ENABLED | DISABLED
rule_sche_cron = 'cron(59 23 * * ? *)' #定义 cron规则
create_rule = events.put_rule(
Name=rule_name,
ScheduleExpression=rule_sche_cron,
State=rule_stat,
EventBusName='default'
)
3.2 删除rule
3.1 请求语法
response = client.delete_rule(
Name='string',
EventBusName='string',
Force=True|False
)
3.2 删除rule
import boto3
from botocore.config import Config #导入配置模块
# 在这里定义events的client,并且使用Config来设置区域
events = boto3.client('events',config=Config(region_name='us-east-1'))
# 定义 rule_name
rule_name = 'fengleiRule'
delete_rule = events.delete_rule(
Name=rule_name,
EventBusName='default',
Force=True
)
3.3 开启关闭rule
3.3.1 请求语法
# 启用规则
response = client.enable_rule(
Name='string',
EventBusName='string'
)
# 关闭规则
response = client.disable_rule(
Name='string',
EventBusName='string'
)
3.3.2 启用/关闭 rule
# 启用rule
import boto3
from botocore.config import Config #导入配置模块
# 在这里定义events的client,并且使用Config来设置区域
events = boto3.client('events',config=Config(region_name='us-east-1'))
# 定义 rule_name
rule_name = 'fengleiRule'
enable_rule = events.enable_rule(
Name=rule_name,
EventBusName='default'
)
# 关闭rule
import boto3
from botocore.config import Config #导入配置模块
# 在这里定义events的client,并且使用Config来设置区域
events = boto3.client('events',config=Config(region_name='us-east-1'))
# 定义 rule_name
rule_name = 'fengleiRule'
enable_rule = events.disable_rule(
Name=rule_name,
EventBusName='default'
)
6.EventBridge Rule类示例
import boto3
from botocore.config import Config
from lambda_action import Lambda
class Event:
def __init__(self, region):
self.client = boto3.client('events',config=Config(region_name=region))
self.region = region
def list_events(self):
list_resp = self.client.list_rules()
event_rules = []
for i in range(len(list_resp['Rules'])):
event_rule_info = {}
event_rule_info['rule_name'] = list_resp['Rules'][i]['Name']
event_rule_info['rule_stat'] = list_resp['Rules'][i]['State']
event_rule_info['rule_cron'] = list_resp['Rules'][i]['ScheduleExpression']
event_rules.append(event_rule_info)
return {
'headers': {
"Content-Type": "application/json"
},
'statusCode': 200,
'body': event_rules
}
def remove_target(self):
remove_tg_resp = self.client.remove_targets(
Rule = self.rule_name,
EventBusName = 'default',
Ids=[
self.tg_id,
],
Force = True
)
def create_rule(self, rule_name, region, stat, cron, tg_id, tg_arn):
self.region = region
self.rule_name = rule_name
self.rule_stat = stat
self.tg_id = tg_id
self.tg_arn = tg_arn
self.cron = cron
fc = Lambda(region)
create_rule_resp = self.client.put_rule(
Name=self.rule_name,
ScheduleExpression=self.cron,
State=self.rule_stat,
EventBusName='default'
)
return create_rule_resp
def delete_rule(self, rule_name, tg_id):
self.rule_name = rule_name
self.tg_id = tg_id
Event.remove_target(self)
delete_rule_resp = self.client.delete_rule(
Name=self.rule_name,
EventBusName='default',
Force=True
)
return delete_rule_resp
def disable_rule(self, rule_name):
self.rule_name = rule_name
dis_rule_resp = self.client.disable_rule(
Name=self.rule_name,
EventBusName='default'
)
return dis_rule_resp
def enable_rule(self, rule_name):
self.rule_name = rule_name
en_rule_resp = self.client.enable_rule(
Name=self.rule_name,
EventBusName='default'
)
return en_rule_resp