创建触发器
功能介绍
创建触发器。
- 可以创建的触发器类型包括TIMER、APIG、CTS、DDS、DMS、DIS、LTS、OBS、SMN、KAFKA。(当前OBS触发器暂不支持国际站。)
- DDS和KAFKA触发器创建时默认为DISABLED状态,其他触发器默认为ACTIVE状态。
- TIMER、DDS、DMS、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 |
触发器类型。(当前OBS触发器暂不支持国际站。)
枚举值:
|
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触发器此参数必填。
|
collection_name |
否 |
String |
集合名称(DDS触发器参数)。DDS触发器此参数必填。 |
db_name |
否 |
String |
文档数据库名称(DDS触发器参数)。DDS触发器此参数必填。 |
db_password |
否 |
String |
文档数据库密码(DDS触发器参数)。DDS触发器此参数必填。 |
batch_size |
否 |
Integer |
批处理大小,单次函数执行处理的最大数据量。DIS、DDS、KAFKA、RABBITMQ触发器此参数必填。
|
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触发器参数)。 |
响应参数
状态码: 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触发器此参数必填。
|
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触发器此参数必填。
|
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触发器参数)。 |
参数 |
参数类型 |
描述 |
---|---|---|
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" : "APIG", "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" : "NONE", "group_id" : "318b09eb214a41488c667ecd51667e3x", "sl_domain" : "318b09eb214a41488c667ecd51667e3x.apig.{region}.example.com", "match_mode" : "SWA", "req_method" : "ANY", "backend_type" : "FUNCTION", "type" : 1, "path" : "/test_gxz_v1_billing" } }
- 创建名为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 服务内部错误。 |
错误码
请参见错误码。