文档首页/ 事件网格 EG/ API参考/ API/ 事件订阅管理/ 创建事件订阅 - CreateSubscription
更新时间:2025-12-18 GMT+08:00
分享

创建事件订阅 - CreateSubscription

功能介绍

创建事件订阅。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项

URI

POST /v1/{project_id}/subscriptions

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户资源空间ID

表2 Query参数

参数

是否必选

参数类型

描述

enterprise_project_id

String

创建订阅时所使用的企业项目id

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表4 请求Body参数

参数

是否必选

参数类型

描述

name

String

订阅名称,租户下唯一,由字母、数字、点、下划线和中划线组成,必须字母或数字开头

description

String

订阅描述

channel_id

String

所属事件通道ID

sources

Array of SubscriptionSource objects

订阅的事件源列表, 当前仅支持订阅一个事件源

targets

Array of SubscriptionTarget objects

事件目标列表,至少订阅一个事件目标

表5 SubscriptionSource

参数

是否必选

参数类型

描述

id

String

订阅源ID,需保证全局唯一。指定ID的订阅源存在时则进行更新,否则进行创建;未指定时由系统自动生成。由小写字母、数字、中划线组成,必须字母或数字开头。

name

String

订阅的事件源名称

provider_type

String

订阅的事件源的提供方类型:

  • CUSTOM:自定义事件源

  • OFFICIAL:云服务事件源

detail

Object

订阅的事件源参数列表, 该字段序列化后总长度不超过1024字节

filter

Object

订阅事件源的匹配过滤规则, 该字段序列化后总长度不超过2048字节

表6 SubscriptionTarget

参数

是否必选

参数类型

描述

id

String

订阅目标ID,需保证全局唯一,由小写字母、数字、中划线组成,必须字母或数字开头。 更新订阅场景时,指定ID的订阅目标存在时则进行更新,否则进行创建; 创建订阅目标场景时,指定ID作为待创建的订阅目标对象ID,未指定时由系统自动生成。 更新订阅目标时,此字段忽略;

name

String

订阅的事件目标名称

provider_type

String

订阅的事件目标的提供方类型:

  • CUSTOM:自定义事件目标

  • OFFICIAL:云服务事件目标

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目标端的参数

表7 KafkaTargetDetail

参数

是否必选

参数类型

描述

topic

String

主题

keyTransform

keyTransform object

键值规则

表8 keyTransform

参数

是否必选

参数类型

描述

type

String

键值规则类型:

  • NONE:透传

  • VARIABLE:变量

  • CONSTANT:常量

value

String

键值规则,键值规则为VARIABLE,CONSTANT时必填

template

String

键值规则模板,键值规则为VARIABLE时必填

表9 SmnTargetDetail

参数

是否必选

参数类型

描述

urn

String

主题urn

agency_name

String

委托名称

subject_transform

subject_transform object

标题规则

表10 subject_transform

参数

是否必选

参数类型

描述

type

String

标题规则类型:

  • VARIABLE:变量

  • CONSTANT:常量

value

String

标题规则

template

String

标题规则模板,键值规则为VARIABLE时必填

表11 EgTargetDetail

参数

是否必选

参数类型

描述

target_project_id

String

目标项目id

target_channel_id

String

目标通道id

target_region

String

目标region

cross_region

Boolean

跨region开关

agency_name

String

委托名称

表12 ApigwTargetDetail

参数

是否必选

参数类型

描述

url

String

目标url

invocation_http_parameters

InvocationHttpParameters object

调用Http的参数

表13 InvocationHttpParameters

参数

是否必选

参数类型

描述

header_parameters

Array of HeaderParameter objects

对象列表

表14 HeaderParameter

参数

是否必选

参数类型

描述

is_value_secret

Boolean

是否加密

key

String

header的key值

value

String

header的value值

表15 DeadLetterQueue

参数

是否必选

参数类型

描述

type

String

队列类型:

  • KAFKA:KAFKA队列

instance_id

String

实例id

connection_id

String

目标连接id

topic

String

主题

表16 RocketmqTargetDetail

参数

是否必选

参数类型

描述

topic

String

topic名称

key_transform

TransForm object

转换规则

表17 TransForm

参数

是否必选

参数类型

描述

type

String

转换规则类型:

  • ORIGINAL:透传

  • CONSTANT:常量

  • VARIABLE:变量

value

String

常量类型规则时,字段为常量内容定义;

变量类型规则时,为变量定义,内容必须为JsonObject字符串。

变量最多支持100个,且不支持嵌套结构定义;

变量名由字母、数字、点、下划线和中划线组成,必须字母或数字开头不能以HC.开头,长度不超过64个字符;

变量值表达式支持常量或JsonPath表达式,字符串长度不超过1024个字符。

template

String

变量类型规则时,规则内容的模板定义,支持对已定义变量的引用。

响应参数

状态码:200

表18 响应Header参数

参数

参数类型

描述

X-Request-Id

String

This field is the request ID number for task tracking. Format is request_uuid-timestamp-hostname.

表19 响应Body参数

参数

参数类型

描述

id

String

订阅ID

name

String

订阅名称

description

String

订阅描述

type

String

类型:

  • EVENT:事件触发

status

String

状态:

  • CREATED:已创建

  • ENABLED:已启用

  • DISABLED:已禁用

  • FROZEN:已冻结

  • ERROR:错误

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

更新时间

表20 SubscriptionUsedInfo

参数

参数类型

描述

resource_id

String

关联资源ID

owner

String

管理租户账号

description

String

描述

表21 SubscriptionSourceInfo

参数

参数类型

描述

id

String

订阅源ID

name

String

订阅的事件源名称

provider_type

String

订阅的事件源的提供方类型:

  • CUSTOM:自定义事件源

  • OFFICIAL:云服务事件源

detail

Object

订阅的事件源参数列表

filter

Object

订阅事件源的匹配过滤规则

created_time

String

创建时间

updated_time

String

更新时间

表22 SubscriptionTargetInfo

参数

参数类型

描述

id

String

订阅目标ID

name

String

订阅的事件目标名称

provider_type

String

订阅的事件目标的提供方类型:

  • CUSTOM:自定义事件目标

  • OFFICIAL:云服务事件目标

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目标端的参数

表23 KafkaTargetDetail

参数

参数类型

描述

topic

String

主题

keyTransform

keyTransform object

键值规则

表24 keyTransform

参数

参数类型

描述

type

String

键值规则类型:

  • NONE:透传

  • VARIABLE:变量

  • CONSTANT:常量

value

String

键值规则,键值规则为VARIABLE,CONSTANT时必填

template

String

键值规则模板,键值规则为VARIABLE时必填

表25 SmnTargetDetail

参数

参数类型

描述

urn

String

主题urn

agency_name

String

委托名称

subject_transform

subject_transform object

标题规则

表26 subject_transform

参数

参数类型

描述

type

String

标题规则类型:

  • VARIABLE:变量

  • CONSTANT:常量

value

String

标题规则

template

String

标题规则模板,键值规则为VARIABLE时必填

表27 EgTargetDetail

参数

参数类型

描述

target_project_id

String

目标项目id

target_channel_id

String

目标通道id

target_region

String

目标region

cross_region

Boolean

跨region开关

agency_name

String

委托名称

表28 ApigwTargetDetail

参数

参数类型

描述

url

String

目标url

invocation_http_parameters

InvocationHttpParameters object

调用Http的参数

表29 InvocationHttpParameters

参数

参数类型

描述

header_parameters

Array of HeaderParameter objects

对象列表

表30 HeaderParameter

参数

参数类型

描述

is_value_secret

Boolean

是否加密

key

String

header的key值

value

String

header的value值

表31 DeadLetterQueue

参数

参数类型

描述

type

String

队列类型:

  • KAFKA:KAFKA队列

instance_id

String

实例id

connection_id

String

目标连接id

topic

String

主题

表32 RocketmqTargetDetail

参数

参数类型

描述

topic

String

topic名称

key_transform

TransForm object

转换规则

表33 TransForm

参数

参数类型

描述

type

String

转换规则类型:

  • ORIGINAL:透传

  • CONSTANT:常量

  • VARIABLE:变量

value

String

常量类型规则时,字段为常量内容定义;

变量类型规则时,为变量定义,内容必须为JsonObject字符串。

变量最多支持100个,且不支持嵌套结构定义;

变量名由字母、数字、点、下划线和中划线组成,必须字母或数字开头不能以HC.开头,长度不超过64个字符;

变量值表达式支持常量或JsonPath表达式,字符串长度不超过1024个字符。

template

String

变量类型规则时,规则内容的模板定义,支持对已定义变量的引用。

请求示例

创建名为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

错误码

请参见错误码

相关文档