使用CreateRule在指定的事件总线下创建规则。规则需要指定事件过滤器(FilterPattern),规则会根据FilterPattern匹配事件,规则同样要制定投递目标。

URI

/openapi/createRule

使用限制

单个事件总线(EventBus)下最多创建50条事件规则。

请求参数

名称 类型 是否必选 示例值 描述
EventBusName String default 事件总线(EventBus)名称。详情请参见使用限制
RuleName String myRule1 事件规则名称。详情请参见使用限制
Description String 针对OSS的过滤规则 规则说明。
Status String ENABLE 规则的状态。取值说明如下:
  • ENABLE:规则已启用。规则默认状态。
  • DISABLE:规则已禁用。
FilterPattern String {\"source\": [{\"prefix\": \"acs.\"}],\"type\": [{\"prefix\":\"oss:ObjectReplication\"}],\"subject\":[{\"prefix\":\"acs:oss:cn-hangzhou:137010418192****:my-movie-bucket/\", \"suffix\":\".txt\"}]} 事件模式,JSON格式。
  • stringEqual模式
  • stringExpression模式

    每个field最多5个expression(map结构)。

Targets List<Target>
"Targets": [
      { "Id": "1", 
        "Type": "acs.fc.function", 
        "Endpoint": "acs:fc:cn-hangzhou:137010418192****:services/myapp/functions/logfunction", 
        "PushSelector": "DATA_OF_EVENT", 
        "PushRetryStrategy": "BACKOFF_RETRY"}
  ]
规则过滤到事件时,事件被投递的目标。 详情请参见使用限制
表 1. Targets数据结构列表
字段名 字段类型 是否必选 示例值 描述
Id String 1 自定义TargetId。
Type String acs.fc.function 目标Target类型,请参见产品功能
Endpoint String acs:fc:cn-hangzhou:137010418192****:services/myapp/functions/logfunction 投递端点链接。
PushSelector String DATA_OF_EVENT 投递事件时的字段选择器。取值说明如下:
  • MATCHED_EVENT:投递完整事件。
  • DATA_OF_EVENT:投递事件业务数据。
PushRetryStrategy String BACKOFF_RETRY 推送重试策略。取值说明如下:
  • BACKOFF_RETRY:退避重试策略。重试3次,每次重试的间隔时间是10秒到 20秒之间的随机值。
  • EXPONENTIAL_DECAY_RETRY:指数衰减重试。重试176次,每次重试的间隔时间指数递增至512秒,总计重试时间为1天;每次重试的具体间隔为:1,2,4,8,16,32,64,128,256,512,512 ... 512 秒(共167个512)。

返回参数

名称 类型 是否必选 示例值 描述
RuleARN String acs:eventbridge:cn-hangzhou:201293:eventbus/default/rule/myRule1 事件规则的ARN,用于授权。

示例

请求示例

POST /openapi/createRule HTTP/1.1
Host: 123456789098****.eventbridge.cn-hangzhou.aliyuncs.com
Date: Sat, 18 Apr 2020 05:30:41 GMT
x-eventbridge-version: 2020-04-01
Authorization: EVENTBRIDGE vZ3VL0SuJdHiEmvU:Jo2PbT******azYAYoYslKLvWzg=
Content-Type: text/xml;charset=UTF-8
Content-Length: 26

{
  "EventBusName": "default",
  "RuleName": "myRule1",
  "Description": "针对OSS的过滤规则",
  "Status": "ENABLE",
  "FilterPattern": "{\"source\": [{\"prefix\": \"acs.\"}],\"type\": [{\"prefix\":\"oss:ObjectReplication\"}],\"subject\":[{\"prefix\":\"acs:oss:cn-hangzhou:137010418192****:my-movie-bucket/\", \"suffix\":\".txt\"}]}",
  "Targets": [
      { "Id": "1", 
        "Type": "acs.fc.function", 
        "Endpoint": "acs:fc:cn-hangzhou:137010418192****:services/myapp/functions/logfunction", 
        "PushSelector": "DATA_OF_EVENT", 
        "PushRetryStrategy": "BACKOFF_RETRY"}
  ]
}

返回示例

HTTP/1.1 200 OK
Server: AliyunEventBridge
Connection: keep-alive
Content-Type: application/json;charset=utf-8
Content-Length: 79
x-eventbridge-request-id: 5E9A9081333245F1D800002F
Date: Sat, 18 Apr 2020 05:30:41 GMT

{
    "RuleARN": "acs:eventbridge:cn-hangzhou:201293:eventbus/default/rule/myRule1"
}