创建事件订阅
功能介绍
创建事件订阅。
URI
POST /v1/{project_id}/subscriptions
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
租户资源空间ID |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
enterprise_project_id |
否 |
String |
创建订阅时所使用的企业项目id |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
订阅名称,租户下唯一,由字母、数字、点、下划线和中划线组成,必须字母或数字开头 |
description |
否 |
String |
订阅描述 |
channel_id |
是 |
String |
所属事件通道ID |
sources |
是 |
Array of SubscriptionSource objects |
订阅的事件源列表, 当前仅支持订阅一个事件源 |
targets |
是 |
Array of SubscriptionTarget objects |
事件目标列表,至少订阅一个事件目标 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
否 |
String |
订阅源ID,需保证全局唯一。指定ID的订阅源存在时则进行更新,否则进行创建;未指定时由系统自动生成。由小写字母、数字、中划线组成,必须字母或数字开头。 |
name |
是 |
String |
订阅的事件源名称 |
provider_type |
是 |
String |
订阅的事件源的提供方类型 |
detail |
否 |
Object |
订阅的事件源参数列表, 该字段序列化后总长度不超过1024字节 |
filter |
是 |
Object |
订阅事件源的匹配过滤规则, 该字段序列化后总长度不超过2048字节 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
否 |
String |
订阅目标ID,需保证全局唯一,由小写字母、数字、中划线组成,必须字母或数字开头。 更新订阅场景时,指定ID的订阅目标存在时则进行更新,否则进行创建; 创建订阅目标场景时,指定ID作为待创建的订阅目标对象ID,未指定时由系统自动生成。 更新订阅目标时,此字段忽略; |
name |
是 |
String |
订阅的事件目标名称 |
provider_type |
是 |
String |
订阅的事件目标的提供方类型 |
connection_id |
否 |
String |
订阅的事件目标使用的目标链接ID |
detail |
否 |
Object |
订阅的事件目标参数列表,该字段序列化后总长度不超过1024字节,函数(urn、invoke_type、agency_name)、函数流(workflow_id、agency_name)、webhook(url)订阅目标必填,其中函数、函数流委托名称必填 |
kafka_detail |
否 |
KafkaTargetDetail object |
订阅的kafka事件目标参数列表,该字段序列化后总长度不超过1024字节 |
smn_detail |
否 |
SmnTargetDetail object |
订阅的SMN事件目标参数列表,该字段序列化后总长度不超过1024字节 |
eg_detail |
否 |
EgTargetDetail object |
订阅的事件eg通道目标参数列表,该字段序列化后总长度不超过1024字节,eg通道目标必填 |
apigw_detail |
否 |
ApigwTargetDetail object |
订阅的事件APIGWurl目标参数列表,该字段序列化后总长度不超过1024字节,APIGW目标必填 |
retry_times |
否 |
Integer |
重试次数 |
transform |
是 |
TransForm object |
订阅的事件目标转换规则 |
dead_letter_queue |
否 |
DeadLetterQueue object |
订阅的死信参数列表 |
rocketmq_detail |
否 |
RocketmqTargetDetail object |
事件订阅中RocketMQ目标端的参数 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
否 |
String |
键值规则类型 |
value |
否 |
String |
键值规则,键值规则为VARIABLE,CONSTANT时必填 |
template |
否 |
String |
键值规则模板,键值规则为VARIABLE时必填 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
urn |
是 |
String |
主题urn |
agency_name |
是 |
String |
委托名称 |
subject_transform |
否 |
subject_transform object |
标题规则 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
是 |
String |
标题规则类型 |
value |
是 |
String |
标题规则 |
template |
否 |
String |
标题规则模板,键值规则为VARIABLE时必填 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
target_project_id |
是 |
String |
目标项目id |
target_channel_id |
是 |
String |
目标通道id |
target_region |
是 |
String |
目标region |
cross_region |
否 |
Boolean |
跨region开关 |
agency_name |
是 |
String |
委托名称 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
url |
是 |
String |
目标url |
invocation_http_parameters |
否 |
InvocationHttpParameters object |
调用Http的参数 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
header_parameters |
否 |
Array of HeaderParameter objects |
对象列表 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
is_value_secret |
否 |
Boolean |
是否加密 |
key |
否 |
String |
header的key值 |
value |
否 |
String |
header的value值 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
是 |
String |
队列类型 |
instance_id |
是 |
String |
实例id |
connection_id |
是 |
String |
目标连接id |
topic |
是 |
String |
主题 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
topic |
否 |
String |
topic名称 |
key_transform |
否 |
TransForm object |
转换规则 |
响应参数
状态码:200
参数 |
参数类型 |
描述 |
---|---|---|
X-Request-Id |
String |
This field is the request ID number for task tracking. Format is request_uuid-timestamp-hostname. |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
订阅ID |
name |
String |
订阅名称 |
description |
String |
订阅描述 |
type |
String |
类型 |
status |
String |
状态 |
channel_id |
String |
通道ID |
channel_name |
String |
通道名称 |
used |
Array of SubscriptionUsedInfo objects |
标签信息 |
sources |
Array of SubscriptionSourceInfo objects |
订阅源列表 |
targets |
Array of SubscriptionTargetInfo objects |
订阅目标列表 |
created_time |
String |
创建时间 |
updated_time |
String |
更新时间 |
参数 |
参数类型 |
描述 |
---|---|---|
resource_id |
String |
关联资源ID |
owner |
String |
管理租户账号 |
description |
String |
描述 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
订阅源ID |
name |
String |
订阅的事件源名称 |
provider_type |
String |
订阅的事件源的提供方类型 |
detail |
Object |
订阅的事件源参数列表 |
filter |
Object |
订阅事件源的匹配过滤规则 |
created_time |
String |
创建时间 |
updated_time |
String |
更新时间 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
订阅目标ID |
name |
String |
订阅的事件目标名称 |
provider_type |
String |
订阅的事件目标的提供方类型 |
connection_id |
String |
订阅的事件目标使用的目标链接ID |
detail |
Object |
订阅的事件目标参数列表 |
kafka_detail |
KafkaTargetDetail object |
订阅的kafka事件目标参数列表,该字段序列化后总长度不超过1024字节 |
smn_detail |
SmnTargetDetail object |
订阅的SMN事件目标参数列表,该字段序列化后总长度不超过1024字节 |
eg_detail |
EgTargetDetail object |
订阅的事件eg通道目标参数列表,该字段序列化后总长度不超过1024字节,eg通道目标必填 |
apigw_detail |
ApigwTargetDetail object |
订阅的事件APIGWurl目标参数列表,该字段序列化后总长度不超过1024字节,APIGW目标必填 |
retry_times |
Integer |
重试次数 |
transform |
TransForm object |
订阅的事件目标转换规则 |
dead_letter_queue |
DeadLetterQueue object |
订阅的死信参数列表 |
created_time |
String |
创建时间 |
updated_time |
String |
更新时间 |
rocketmq_detail |
RocketmqTargetDetail object |
事件订阅中RocketMQ目标端的参数 |
参数 |
参数类型 |
描述 |
---|---|---|
type |
String |
键值规则类型 |
value |
String |
键值规则,键值规则为VARIABLE,CONSTANT时必填 |
template |
String |
键值规则模板,键值规则为VARIABLE时必填 |
参数 |
参数类型 |
描述 |
---|---|---|
urn |
String |
主题urn |
agency_name |
String |
委托名称 |
subject_transform |
subject_transform object |
标题规则 |
参数 |
参数类型 |
描述 |
---|---|---|
type |
String |
标题规则类型 |
value |
String |
标题规则 |
template |
String |
标题规则模板,键值规则为VARIABLE时必填 |
参数 |
参数类型 |
描述 |
---|---|---|
target_project_id |
String |
目标项目id |
target_channel_id |
String |
目标通道id |
target_region |
String |
目标region |
cross_region |
Boolean |
跨region开关 |
agency_name |
String |
委托名称 |
参数 |
参数类型 |
描述 |
---|---|---|
url |
String |
目标url |
invocation_http_parameters |
InvocationHttpParameters object |
调用Http的参数 |
参数 |
参数类型 |
描述 |
---|---|---|
is_value_secret |
Boolean |
是否加密 |
key |
String |
header的key值 |
value |
String |
header的value值 |
请求示例
创建名为test-subscription的事件订阅
POST https://{endpoint}/v1/{project_id}/subscriptions { "name" : "test-subscription", "description" : "this is a test subscription", "channel_id" : "05649f9a-b324-4920-9c49-156d4cd2e546", "sources" : [ { "id" : "3a0eeff2-78a4-4122-dfge-7ty5e37f64er", "name" : "HC.OBS", "provider_type" : "OFFICIAL", "detail" : { "name" : "name" }, "filter" : { "data" : { "count" : [ { "op" : "NumberIn", "values" : [ 1, 2 ] } ] } } } ], "targets" : [ { "id" : "3a0eeff2-78a4-4122-dfge-7ty5e37f64er", "name" : "WEBHOOK", "provider_type" : "CUSTOM", "connection_id" : "456eekj3-778u-4tyu-dfrt-er55e37f667t", "detail" : { "url" : "http://10.213.96.90:8080/t/nodeapp/trigger-hello-nodejs", "agency_name" : "EG_TARGET_AGENCY", "urn" : "urn:fss:cn-north-7:bac852160cc743158936edaab6dda813:function:default:gxtestjava:latest", "invoke_type" : "ASYNC", "workflow_id" : "86afc904-0019-46c8-baed-0225967c1b98" }, "kafka_detail" : { "topic" : "8516d278-268a-4a8b-8766-9bf9b3302f43", "keyTransform" : { "type" : "NONE", "value" : "string", "template" : "string" } }, "smn_detail" : { "urn" : "urn:smn:cn-north-7:bac852160cc743158936edaab6dda813:122", "agency_name" : "EG_SMN_PUBLISHER_AGENCY", "subject_transform" : { "type" : "VARIABLE", "value" : "string", "template" : "string" } }, "eg_detail" : { "target_project_id" : "c5be311886934b7c8afb4f8970376130", "target_channel_id" : "10a79a30-bd4a-4955-a3ec-d62dc799347b", "target_region" : "cn-north-test", "cross_region" : false, "agency_name" : "EG_TARGET_AGENCY" }, "apigw_detail" : { "url" : "https://dms.cn-north-4.myhuaweicloud.com/testaaa", "invocation_http_parameters" : { "header_parameters" : [ { "is_value_secret" : false, "key" : "test-key", "value" : "test-value" } ] } }, "retry_times" : 16, "transform" : { "type" : "VARIABLE", "value" : "{\"contant_boolean\": true,\"contant_string\": \"constant\",\"varaible_string\": \"$.data.string\",\"varaible_json_object\": \"$.data.object\"}", "template" : "{\"contant_boolean\": ${contant_boolean},\"contant_string\": \"${contant_string!\\\"default\\\"}\",\"varaible_string\": \"${contant_boolean}\",\"varaible_json_object\": ${varaible_json_object!\"null\"}}" }, "dead_letter_queue" : { "type" : "KAFKA", "instance_id" : "ff0e3f10-fcab-4c3a-84bb-cf5a8b6f7722", "connection_id" : "8516d278-268a-4a8b-8766-9bf9b3302f43", "topic" : "topic" } } ] }
响应示例
状态码:200
Demo Information
{ "id" : "23709d68-54d5-423b-a6be-03302e893152", "name" : "test-subscription", "description" : "this is a test subscription", "type" : "EVENT", "status" : "CREATED", "channel_id" : "05649f9a-b324-4920-9c49-156d4cd2e546", "channel_name" : "channel006", "used" : [ { } ], "sources" : [ { } ], "targets" : [ { } ], "created_time" : "2021-12-09 09:00:00", "updated_time" : "2021-12-09 09:00:00" }
状态码
状态码 |
描述 |
---|---|
200 |
Demo Information |
错误码
请参见错误码。