创建触发器
功能介绍
创建触发器。
- 可以创建的触发器类型包括TIMER、APIG专享版、APIC、CTS、DDS、GeminiDB Mongo、DIS、LTS、OBS、SMN、KAFKA、OPENSOURCEKAFKA、RABBITMQ、IoTDA、EG触发器、ROCKETMQ。
- DDS和KAFKA触发器创建时默认为DISABLED状态,其他触发器默认为ACTIVE状态。
- TIMER、DDS、KAFKA、LTS触发器支持禁用,其他触发器不支持。
URI
POST /v2/{project_id}/fgs/triggers/{function_urn}
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 租户项目 ID,获取方式请参见获取项目ID。 |
function_urn | 是 | String | 函数的URN,详细解释见FunctionGraph函数模型的描述。 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
X-Auth-Token | 是 | String | 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
Content-Type | 是 | String | 消息体的类型(格式) 缺省值:application/json |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
trigger_type_code | 是 | String | 触发器类型。
|
trigger_status | 否 | String | 触发器状态,取值为ACTIVE,DISABLED。 枚举值:
|
event_type_code | 否 | String | 消息代码。 |
event_data | 是 | TriggerEventDataRequestBody object | 触发器源事件。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 否 | String |
|
schedule_type | 否 | String | 定时触发类型(TIMER触发器参数)。TIMER触发器此参数必填
枚举值:
|
schedule | 否 | String | 定时触发规则(TIMER触发器参数)。TIMER触发器此参数必填。
|
user_event | 否 | String | 附加信息(TIMER触发器参数)。 当Timer触发器触发函数执行时,执行事件(函数的event参数)为: {"version": "v1.0", "time": "2018-06-01T08:30:00+08:00", "trigger_type": "TIMER", "trigger_name": "Timer_001", "user_event": "您输入的附加信息"} |
type | 否 | Integer | API接口类型(APIG触发器参数)。APIG触发器此参数必填。
|
path | 否 | String | APIG接口PATH路径(APIG触发器参数)。APIG触发器此参数必填。 |
protocol | 否 | String | API的请求协议(APIG触发器参数)。APIG触发器此参数必填。 枚举值:
|
req_method | 否 | String | API的请求方式(APIG触发器参数)。APIG触发器此参数必填。 枚举值:
|
group_id | 否 | String | API所属的分组编号(APIG触发器参数)。APIG触发器此参数必填。 |
group_name | 否 | String | API所属的分组名称 |
match_mode | 否 | String | API的匹配方式(APIG触发器参数)。APIG触发器此参数必填。
枚举值:
|
env_name | 否 | String | API的发布环境(APIG触发器参数)。APIG触发器此参数必填。 |
env_id | 否 | String | API的发布环境id(APIG触发器参数)。APIG触发器此参数必填。 |
auth | 否 | String | API的认证方式(APIG触发器参数)。APIG触发器此参数必填。
枚举值:
|
func_info | 否 | ApigTriggerFuncInfo object | APIG触发器函数工作流后端详情(APIG触发器参数)。APIG触发器此参数必填。 |
sl_domain | 否 | String | APIG系统默认分配的子域名(APIG触发器参数)。 最小长度:1 最大长度:255 |
backend_type | 否 | String | API的后端类型(APIG触发器参数)。 枚举值:
|
operations | 否 | Array of strings | 自定义操作(CTS触发器参数)。CTS触发器此参数必填。 CTS云审计服务类型和操作订阅所需要的事件通知,当CTS云审计服务获取已订阅的操作记录后,通过CTS触发器将采集到的操作记录作为参数传递来调用FunctionGraph函数。 |
instance_id | 否 | String | 实例id。DDS、KAFKA、RABBITMQ、ROCKETMQ触发器此参数必填。 |
collection_name | 否 | String | 集合名称(DDS触发器参数)。DDS触发器此参数必填。 |
db_name | 否 | String | 文档数据库名称(DDS触发器参数)。DDS触发器此参数必填。 |
db_password | 否 | String | 文档数据库密码(DDS触发器参数)。DDS触发器此参数必填。 |
batch_size | 否 | Integer | 批处理大小,单次函数执行处理的最大数据量。DIS、DDS、KAFKA、RABBITMQ、ROCKETMQ触发器此参数必填。
|
queue_id | 否 | String | 队列id(DMS触发器参数)。DMS触发器此参数必填。 |
consumer_group_id | 否 | String | 消费组id(DMS触发器参数)。DMS触发器此参数必填。 |
polling_interval | 否 | Integer | 拉取周期。DIS、DMS触发器此参数必填。 |
stream_name | 否 | String | 通道名称(DIS触发器参数)。DIS触发器此参数必填。 |
sharditerator_type | 否 | String | 起始位置(DIS触发器参数)。DIS触发器此参数必填。
枚举值:
|
polling_unit | 否 | String | 拉取周期单位(DIS触发器参数)。DIS触发器此参数必填。
枚举值:
|
max_fetch_bytes | 否 | Integer | 最大提取字节数(DIS触发器参数)。 最小值:0 最大值:4194304 |
is_serial | 否 | String | 串行处理数据(DIS触发器参数),如果开启该选项,取一次数据处理完之后才会取下一次数据;否则只要拉取周期到了就会取数据进行处理。DIS触发器此参数必填。 枚举值:
|
log_group_id | 否 | String | 日志组id(LTS触发器参数)。LTS触发器此参数必填。 |
log_topic_id | 否 | String | 日志流id(LTS触发器参数)。LTS触发器此参数必填。 |
bucket | 否 | String | 桶名称(OBS触发器参数),用作事件源的OBS存储桶,不能和本用户已有桶重名;不能和其他用户已有的桶重名;创建成功后不支持修改。OBS触发器此参数必填。 最小长度:1 最大长度:64 |
prefix | 否 | String | 前缀(OBS触发器参数),输入一个可选性前缀来限制对以此关键字开头的对象的通知。 最小长度:0 最大长度:1024 |
suffix | 否 | String | 后缀(OBS触发器参数),输入一个可选性后缀来限制对以此关键字结尾的对象的通知 最小长度:0 最大长度:1024 |
events | 否 | Array of strings | 触发事件(OBS触发器参数)。OBS触发器此参数必填。
|
topic_urn | 否 | String | 主题URN(SMN触发器参数)。SMN触发器此参数必填。 最小长度:1 最大长度:255 |
topic_ids | 否 | Array of strings | KAFKA主题id列表(KAFKA触发器参数)。KAFKA触发器此参数必填。 |
kafka_user | 否 | String | KAFKA账户名(KAFKA触发器参数)。 |
kafka_password | 否 | String | KAFKA账户密码(KAFKA触发器参数)。 |
kafka_connect_address | 否 | String | KAFKA实例连接IP地址(KAFKA触发器参数)。 |
kafka_ssl_enable | 否 | Boolean | KAFKA连接是否开启安全认证(KAFKA触发器参数)。 |
access_password | 否 | String | RABBITMQ账户密码(RABBITMQ触发器参数)。RABBITMQ触发器此参数必填。 |
access_user | 否 | String | RABBITMQ账户名(RABBITMQ触发器参数)。 |
connect_address | 否 | String | 实例连接IP地址(RABBITMQ触发器参数)。 |
exchange_name | 否 | String | 交换机名称(RABBITMQ触发器参数)。RABBITMQ触发器此参数必填。 |
vhost | 否 | String | 虚拟机名称(RABBITMQ触发器参数)。 |
ssl_enable | 否 | Boolean | RABBITMQ连接是否开启安全认证(RABBITMQ触发器参数)。 |
enable_acl | 否 | Boolean | ROCKETMQ连接是否开启用户名密码认证(ROCKETMQ触发器参数)。 |
access_key | 否 | String | 连接用户名(ROCKETMQ触发器参数),enable_acl为true时此参数必填。 |
secret_key | 否 | String | 连接密码(ROCKETMQ触发器参数),enable_acl为true时此参数必填。 |
响应参数
状态码: 201
参数 | 参数类型 | 描述 |
|---|---|---|
trigger_id | String | 触发器ID。 |
trigger_type_code | String | 触发器类型。
|
trigger_status | String | "触发器状态"
枚举值:
|
event_data | TriggerEventDataResponseBody object | 触发器源事件。 |
last_updated_time | String | 最后更新时间。 |
created_time | String | 触发器创建时间。 |
参数 | 参数类型 | 描述 |
|---|---|---|
name | String | 触发器名称 |
schedule_type | String | 定时触发类型(TIMER触发器参数)。
枚举值:
|
schedule | String | 定时触发规则(TIMER触发器参数)。
|
user_event | String | 附加信息(TIMER触发器参数)。 当Timer触发器触发函数执行时,执行事件(函数的event参数)为: {"version": "v1.0", "time": "2018-06-01T08:30:00+08:00", "trigger_type": "TIMER", "trigger_name": "Timer_001", "user_event": "您输入的附加信息"} |
triggerid | String | APIG触发器id。(APIG触发器参数) |
type | Integer | API接口类型(APIG触发器参数)。
|
path | String | APIG接口PATH路径(APIG触发器参数)。 |
protocol | String | API的请求协议(APIG触发器参数)。 枚举值:
|
req_method | String | API的请求方式(APIG触发器参数)。 枚举值:
|
group_id | String | API所属的分组编号(APIG触发器参数)。 |
group_name | String | API所属的分组名称(APIG触发器参数)。 |
match_mode | String | API的匹配方式(APIG触发器参数)。
枚举值:
|
env_name | String | API的发布环境(APIG触发器参数)。 |
env_id | String | API的发布环境id(APIG触发器参数)。 |
api_id | String | API编号(APIG触发器参数)。 |
api_name | String | API名称(APIG触发器参数)。 |
auth | String | API的认证方式(APIG触发器参数)。
枚举值:
|
invoke_url | String | API调用地址(APIG触发器参数)。 |
func_info | ApigTriggerFuncInfo object | APIG触发器函数工作流后端详情(APIG触发器参数)。APIG触发器此参数必填。 |
sl_domain | String | APIG系统默认分配的子域名(APIG触发器参数)。 最小长度:1 最大长度:255 |
backend_type | String | API的后端类型(APIG触发器参数)。 枚举值:
|
instance_id | String | 实例id。DDS、KAFKA、RABBITMQ、ROCKETMQ触发器此参数必填。 |
roma_app_id | String | API归属的集成应用编号。(APIG触发器参数) |
operations | Array of strings | 自定义操作(CTS触发器参数)。 CTS云审计服务类型和操作订阅所需要的事件通知,当CTS云审计服务获取已订阅的操作记录后,通过CTS触发器将采集到的操作记录作为参数传递来调用FunctionGraph函数。 |
collection_name | String | 集合名称(DDS触发器参数)。 |
db_name | String | 文档数据库名称(DDS触发器参数)。 |
db_password | String | 文档数据库密码(DDS触发器参数)。 |
db_user | String | 文档数据库用户名(DDS触发器参数)。 |
instance_addrs | Array of strings | 文档数据库实例地址(DDS触发器参数)。 |
mode | String | 文档数据库实例类型(DDS触发器参数)。
|
batch_size | Integer | 批处理大小,单次函数执行处理的最大数据量。DIS、DDS、KAFKA、RABBITMQ、ROCKETMQ触发器此参数必填。
|
queue_id | String | 队列id(DMS触发器参数)。 |
consumer_group_id | String | 消费组id(DMS触发器参数)。 |
polling_interval | Integer | 拉取周期。 |
stream_name | String | 通道名称(DIS触发器参数)。 |
sharditerator_type | String | 起始位置(DIS触发器参数)。
枚举值:
|
polling_unit | String | 拉取周期单位(DIS触发器参数)。
枚举值:
|
max_fetch_bytes | Integer | 最大提取字节数(DIS触发器参数)。 最小值:0 最大值:4194304 |
is_serial | String | 串行处理数据(DIS触发器参数),如果开启该选项,取一次数据处理完之后才会取下一次数据;否则只要拉取周期到了就会取数据进行处理。 枚举值:
|
log_group_id | String | 日志组id(LTS触发器参数)。 |
log_topic_id | String | 日志流id(LTS触发器参数)。 |
bucket | String | 桶名称(OBS触发器参数),用作事件源的OBS存储桶,不能和本用户已有桶重名;不能和其他用户已有的桶重名;创建成功后不支持修改。 最小长度:1 最大长度:64 |
prefix | String | 前缀(OBS触发器参数),输入一个可选性前缀来限制对以此关键字开头的对象的通知。 最小长度:0 最大长度:1024 |
suffix | String | 后缀(OBS触发器参数),输入一个可选性后缀来限制对以此关键字结尾的对象的通知 最小长度:0 最大长度:1024 |
events | Array of strings | 触发事件(OBS触发器参数)。
|
topic_urn | String | 主题URN(SMN触发器参数)。 最小长度:1 最大长度:255 |
topic_ids | Array of strings | KAFKA主题id列表(KAFKA触发器参数)。 |
kafka_user | String | KAFKA账户名(KAFKA触发器参数)。 |
kafka_password | String | KAFKA账户密码(KAFKA触发器参数)。 |
kafka_connect_address | String | KAFKA实例连接IP地址(KAFKA触发器参数)。 |
kafka_ssl_enable | Boolean | KAFKA连接是否开启安全认证(KAFKA触发器参数)。 |
access_password | String | RABBITMQ账户密码(RABBITMQ触发器参数)。 |
access_user | String | RABBITMQ账户名(RABBITMQ触发器参数)。 |
connect_address | String | 实例连接IP地址(RABBITMQ触发器参数)。 |
exchange_name | String | 交换机名称(RABBITMQ触发器参数)。 |
vhost | String | 虚拟机名称(RABBITMQ触发器参数)。 |
ssl_enable | Boolean | RABBITMQ连接是否开启安全认证(RABBITMQ触发器参数)。 |
enable_acl | Boolean | 参数解释: ROCKETMQ连接是否开启用户名密码认证(ROCKETMQ触发器参数)。 取值范围: -false:不开启。 |
access_key | String | 参数解释: 连接用户名(ROCKETMQ触发器参数),enable_acl为true时此参数必填。 取值范围: 不涉及。 |
secret_key | String | 参数解释: 连接密码(ROCKETMQ触发器参数),enable_acl为true时此参数必填。 取值范围: 不涉及。 |
参数 | 参数类型 | 描述 |
|---|---|---|
function_urn | String | 函数的URN,详细解释见FunctionGraph函数模型的描述。 |
invocation_type | String | 调用函数执行方式。
枚举值:
|
timeout | Integer | API网关请求函数服务的超时时间(毫秒)。APIG触发器此参数必填。 最小值:1 最大值:60000 |
version | String | 函数版本信息。 |
状态码: 400
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误信息 |
状态码: 401
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误信息 |
状态码: 403
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误信息 |
状态码: 404
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误信息 |
状态码: 500
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误信息 |
请求示例
- 创建名为obs-event-1ec7的obs触发器,触发事件为input-picture2桶中有新文件上传。
POST https://{Endpoint}/v2/{project_id}/fgs/triggers/{function_urn} { "trigger_type_code" : "OBS", "trigger_status" : "ACTIVE", "event_data" : { "bucket" : "input-picture2", "events" : [ "s3:ObjectCreated:*" ], "name" : "obs-event-1ec7" } } - 创建名为API_test_function的apig专享版触发器,创建无认证方式的临时域名,超时时间为5000s。
POST https://{Endpoint}/v2/{project_id}/fgs/triggers/{function_urn} { "trigger_type_code" : "DEDICATEDGATEWAY", "trigger_status" : "ACTIVE", "event_data" : { "func_info" : { "timeout" : 5000 }, "name" : "API_test_function", "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID", "env_name" : "RELEASE", "protocol" : "HTTPS", "auth" : "IAM", "group_id" : "5106210cf79e4xxxx", "sl_domain" : "5106210cf79e4xxxx.apic.{region_id}.example.com", "match_mode" : "SWA", "req_method" : "ANY", "backend_type" : "FUNCTION", "type" : 1, "path" : "/test_gxz_v1_billing" } } - 创建86ad3efcxx实例的kafka触发器,从PUSH_TOKEN_RECORD消费组中拉取消息触发函数执行。
POST https://{Endpoint}/v2/{project_id}/fgs/triggers/{function_urn} { "trigger_type_code" : "KAFKA", "trigger_status" : "DISABLED", "event_data" : { "instance_id" : "86ad3efc-c019-460e-91e7-317b1a89f95x", "topic_ids" : [ "PUSH_TOKEN_RECORD" ], "batch_size" : 100 } } - 创建timer触发器,每3分钟触发一次函数执行。
POST https://{Endpoint}/v2/{project_id}/fgs/triggers/{function_urn} { "trigger_type_code" : "TIMER", "trigger_status" : "ACTIVE", "event_data" : { "name" : "Timer-l8v2", "schedule" : "3m", "schedule_type" : "Rate" } } - 创建指定lts触发器(需配置访问LTS服务权限的委托)。
POST https://{Endpoint}/v2/{project_id}/fgs/triggers/{function_urn} { "trigger_type_code" : "LTS", "trigger_status" : "ACTIVE", "event_data" : { "log_group_id" : "ccd3fa30-7c86-4590-8a9d-XXX", "log_topic_id" : "5b4944dd-9603-481d-9b91-XXX" } } - 创建指定smn触发器。
POST https://{Endpoint}/v2/{project_id}/fgs/triggers/{function_urn} { "trigger_type_code" : "SMN", "trigger_status" : "ACTIVE", "event_data" : { "topic_urn" : "urn:smn:{region}:{project_id}:Failed_times" } }
响应示例
状态码: 201
Created
{
"trigger_id" : "9a14fae1-78cf-4185-ac7a-429eb6dc41fb",
"trigger_type_code" : "TIMER",
"trigger_status" : "ACTIVE",
"event_data" : {
"name" : "Timer-cpg3",
"schedule" : "3m",
"schedule_type" : "Rate"
},
"last_updated_time" : "2022-11-09 16:37:24",
"created_time" : "2022-11-09 16:37:24"
} 状态码
状态码 | 描述 |
|---|---|
201 | Created |
400 | Bad Request 请求错误。 |
401 | Unauthorized 鉴权失败。 |
403 | Forbidden 没有操作权限。 |
404 | Not Found 找不到资源。 |
500 | Internal Server Error 服务内部错误。 |
错误码
请参见错误码。

