Creating a Trigger¶
Function¶
This API is used to create a trigger.
Trigger types include timer, APIG, CTS, DDS, DMS, DIS, LTS, OBS, SMN, and Kafka.
By default, DDS and Kafka triggers are in the DISABLED state, and other triggers are in the ACTIVE state.
Only timer, DDS, DMS, Kafka, and LTS triggers can be disabled.
URI¶
POST /v2/{project_id}/fgs/triggers/{function_urn}
Parameter | Mandatory | Type | Description |
---|---|---|---|
project_id | Yes | String | Project ID. For details, see Obtaining a Project ID. |
function_urn | Yes | String | Function URN. For details, see the function model description. |
Request Parameters¶
Parameter | Mandatory | Type | Description |
---|---|---|---|
X-Auth-Token | Yes | String | User token. It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is the user token. |
Content-Type | Yes | String | Message body type (format). Default: application/json |
Parameter | Mandatory | Type | Description |
---|---|---|---|
trigger_type_code | Yes | String | Trigger type.
|
trigger_status | No | String | Trigger status. Options: ACTIVE and DISABLED. Enumeration values:
|
event_type_code | No | String | Message code. |
event_data | Yes | TriggerEventDataRequestBody object | Trigger source event. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | No | String | Timer trigger: trigger name
|
schedule_type | No | String | Timer trigger type (timer trigger parameter). This parameter is mandatory for timer triggers.
Enumeration values:
|
schedule | No | String | Triggering rule. (timer trigger parameter). This parameter is mandatory for timer triggers.
|
user_event | No | String | Additional information (timer trigger parameter). When the timer trigger triggers the function, the execution event (the event parameter of the function) is {"version": "v1.0", "time": "2018-06-01T08:30:00+08:00", "trigger_type": "TIMER", "trigger_name": "Timer_001", "user_event": "Additional information you entered"}. |
type | No | Integer | API visibility(APIG trigger parameter). This parameter is mandatory for APIG triggers.
|
path | No | String | Path of the API (APIG trigger parameter). This parameter is mandatory for APIG triggers. |
protocol | No | String | Request protocol of the API (APIG trigger parameter). This parameter is mandatory for APIG triggers. Enumeration values:
|
req_method | No | String | Request method of the API (APIG trigger parameter). This parameter is mandatory for APIG triggers. Enumeration values:
|
group_id | No | String | ID of the group to which the API belongs (APIG trigger parameter). This parameter is mandatory for APIG triggers. |
group_name | No | String | Name of the API group to which the API belongs. |
match_mode | No | String | Matching mode of the API (APIG trigger parameter). This parameter is mandatory for APIG triggers.
Enumeration values:
|
env_name | No | String | Environment in which the API is published (APIG trigger parameter). This parameter is mandatory for APIG triggers. |
env_id | No | String | ID of the environment in which the API has been published (APIG trigger parameter) This parameter is mandatory for APIG triggers. |
auth | No | String | Security authentication (APIG trigger parameter). This parameter is mandatory for APIG triggers.
Enumeration values:
|
func_info | No | ApigTriggerFuncInfo object | FunctionGraph backend details (APIG trigger parameter). This parameter is mandatory for APIG triggers. |
sl_domain | No | String | Subdomain name allocated by the APIG system by default (APIG trigger parameter). Minimum: 1 Maximum: 255 |
backend_type | No | String | Backend type of the API (APIG trigger parameter). Enumeration values:
|
operations | No | Array of strings | Custom operations (CTS trigger parameter). This parameter is mandatory for CTS triggers. CTS collects operation records of subscribed cloud resources. If you create a function with a CTS trigger, collected operation records of specified cloud services will be passed as a parameter to invoke the function. |
instance_id | No | String | Instance ID. This parameter is mandatory for DDS, Kafka, and RabbitMQ triggers.
|
collection_name | No | String | Collection name (DDS trigger parameter). This parameter is mandatory for DDS triggers. |
db_name | No | String | Database name (DDS trigger parameter). This parameter is mandatory for DDS triggers. |
db_password | No | String | DDS database password (DDS trigger parameter). This parameter is mandatory for DDS triggers. |
batch_size | No | Integer | Batch size: Maximum number of data records that can be processed by the function at a time. This parameter is mandatory for DIS, DDS, Kafka, and RabbitMQ triggers.
|
queue_id | No | String | Queue ID (DMS trigger parameter). This parameter is mandatory for DMS triggers. |
consumer_group_id | No | String | Consumer group ID (DMS trigger parameter). This parameter is mandatory for DMS triggers. |
polling_interval | No | Integer | Pull period. This parameter is mandatory for DIS and DMS triggers. |
stream_name | No | String | Stream name (DIS trigger parameter). This parameter is mandatory for DIS triggers. |
sharditerator_type | No | String | Starting position (DIS trigger parameter). This parameter is mandatory for DIS triggers.
Enumeration values:
|
polling_unit | No | String | Pull period unit (DIS trigger parameter). This parameter is mandatory for DIS triggers.
Enumeration values:
|
max_fetch_bytes | No | Integer | Max. fetch bytes (DIS trigger parameter). Minimum: 0 Maximum: 4194304 |
is_serial | No | String | Serial data processing (DIS trigger parameter). If enabled, FunctionGraph pulls data from the stream only after previous data is processed. If disabled, FunctionGraph pulls data from the stream as long as the pull period ends. This parameter is mandatory for DIS triggers. Enumeration values:
|
log_group_id | No | String | Log group ID (LTS trigger parameter). This parameter is mandatory for LTS triggers. |
log_topic_id | No | String | Log stream ID (LTS trigger parameter). This parameter is mandatory for LTS triggers. |
bucket | No | String | Bucket name (OBS trigger parameter). The name of the OBS bucket used as the event source cannot be the same as that of an existing bucket of the current user or another user. After being created, the bucket name cannot be modified. This parameter is mandatory for OBS triggers. Minimum: 1 Maximum: 64 |
prefix | No | String | Prefix (OBS trigger parameter). Enter a prefix to limit notifications to objects whose names start with the matching characters. Minimum: 0 Maximum: 1024 |
suffix | No | String | Suffix (OBS trigger parameter). Enter a suffix to limit notifications to objects whose names end with the matching characters. Minimum: 0 Maximum: 1024 |
events | No | Array of strings | Trigger event (OBS trigger parameter). This parameter is mandatory for OBS triggers.
|
topic_urn | No | String | Topic URN (SMN trigger parameter) This parameter is mandatory for SMN triggers. Minimum: 1 Maximum: 255 |
topic_ids | No | Array of strings | The Kafka topic ID list (Kafka trigger parameter). This parameter is mandatory for Kafka triggers. |
kafka_user | No | String | Kafka account name (Kafka trigger parameter). |
kafka_password | No | String | Kafka password (Kafka trigger parameter). |
kafka_connect_address | No | String | Kafka instance connection address (Kafka trigger parameter). |
kafka_ssl_enable | No | Boolean | Whether to enable SASL authentication(Kafka trigger parameter). |
access_password | No | String | RabbitMQ account password (RabbitMQ trigger parameter). This parameter is mandatory for RabbitMQ triggers. |
access_user | No | String | RabbitMQ username (RabbitMQ trigger parameter). |
connect_address | No | String | Instance IP address (RabbitMQ trigger parameter). |
exchange_name | No | String | Switch name (RabbitMQ trigger parameter). This parameter is mandatory for RabbitMQ triggers. |
vhost | No | String | Virtual host (RabbitMQ trigger parameter). |
ssl_enable | No | Boolean | Whether to enable SSL (RabbitMQ trigger parameter). |
Parameter | Mandatory | Type | Description |
---|---|---|---|
function_urn | No | String | Function URN. For details, see the function model descriptions. |
invocation_type | No | String | Execution mode of a function.
Enumeration values:
|
timeout | Yes | Integer | Timeout allowed for APIG to request the FunctionGraph service. The unit is in millisecond. This parameter is mandatory for APIG triggers. Minimum: 1 Maximum: 60000 |
version | No | String | Function version information. |
Response Parameters¶
Status code: 201
Parameter | Type | Description |
---|---|---|
trigger_id | String | Trigger ID. |
trigger_type_code | String | Trigger type.
|
trigger_status | String | Trigger status.
Enumeration values:
|
event_data | TriggerEventDataResponseBody object | Trigger source event. |
last_updated_time | String | Latest update time. |
created_time | String | Time when the trigger was created. |
Parameter | Type | Description |
---|---|---|
name | String | Trigger name. |
schedule_type | String | Timer trigger type (timer trigger parameter).
Enumeration values:
|
schedule | String | Triggering rule. (timer trigger parameter).
|
user_event | String | Additional information (timer trigger parameter). When the timer trigger triggers the function, the execution event (the event parameter of the function) is {"version": "v1.0", "time": "2018-06-01T08:30:00+08:00", "trigger_type": "TIMER", "trigger_name": "Timer_001", "user_event": "Additional information you entered"}. |
triggerid | String | APIG trigger ID (APIG trigger parameter). |
type | Integer | The API type (APIG trigger parameter).
|
path | String | Path of the API (APIG trigger parameter). |
protocol | String | Request protocol of the API (APIG trigger parameter). Enumeration values:
|
req_method | String | Request mode of the API (APIG trigger parameter). Enumeration values:
|
group_id | String | ID of the group to which the API belongs (APIG trigger parameter). |
group_name | String | Name of the group to which the API belongs (APIG trigger parameter). |
match_mode | String | Matching mode of the API (APIG trigger parameter).
Enumeration values:
|
env_name | String | Environment in which the API is published (APIG trigger parameter). |
env_id | String | ID of the environment in which the API has been published (APIG trigger parameter). |
api_id | String | API ID (APIG trigger parameter). |
api_name | String | API name (APIG trigger parameter). |
auth | String | Security authentication (APIG trigger parameter).
Enumeration values:
|
invoke_url | String | API calling address (APIG trigger parameter). |
func_info | ApigTriggerFuncInfo object | FunctionGraph backend details (APIG trigger parameter). This parameter is mandatory for APIG triggers. |
sl_domain | String | Subdomain name allocated by the APIG system by default (APIG trigger parameter). Minimum: 1 Maximum: 255 |
backend_type | String | Backend type of the API (APIG trigger parameter). Enumeration values:
|
instance_id | String | Instance ID. This parameter is mandatory for DDS, Kafka, and RabbitMQ triggers.
|
roma_app_id | String | ID of the integration application to which the API belongs (APIG trigger parameter). |
operations | Array of strings | Custom operations (CTS trigger parameter). CTS collects operation records of subscribed cloud resources. If you create a function with a CTS trigger, collected operation records of specified cloud services will be passed as a parameter to invoke the function. |
collection_name | String | Collection name (DDS trigger parameter). |
db_name | String | Database name (DDS trigger parameter). |
db_password | String | DDS database password (DDS trigger parameter). |
db_user | String | DDS database username (DDS trigger parameter). |
instance_addrs | Array of strings | DDS database instance address (DDS trigger parameter). |
mode | String | DDS database instance type (DDS trigger parameter).
|
batch_size | Integer | Batch size: Maximum number of data records that can be processed by the function at a time. This parameter is mandatory for DIS, DDS, Kafka, and RabbitMQ triggers.
|
queue_id | String | Queue ID (DMS trigger parameter). |
consumer_group_id | String | Consumer group ID (DMS trigger parameter). |
polling_interval | Integer | Pull period. |
stream_name | String | Stream name (DIS trigger parameter). |
sharditerator_type | String | Start position (DIS trigger parameter).
Enumeration values:
|
polling_unit | String | Unit of the pull period (DIS trigger parameter).
Enumeration values:
|
max_fetch_bytes | Integer | Maximum number of bytes to be extracted (DIS trigger parameter). Minimum: 0 Maximum: 4194304 |
is_serial | String | Serial Data Processing: If this option is selected, FunctionGraph pulls data from the stream only after previous data is processed. If this option is not selected, FunctionGraph pulls data from the stream as long as the pull period ends. Enumeration values:
|
log_group_id | String | Log group ID (LTS trigger parameter). |
log_topic_id | String | Log stream ID (LTS trigger parameter). |
bucket | String | Bucket name (OBS trigger parameter). The name of the OBS bucket used as the event source cannot be the same as that of an existing bucket of the current user or another user. After being created, the bucket name cannot be modified. Minimum: 1 Maximum: 64 |
prefix | String | Prefix (OBS trigger parameter). Enter a prefix to limit notifications to objects whose names start with the matching characters. Minimum: 0 Maximum: 1024 |
suffix | String | Suffix (OBS trigger parameter). Enter a suffix to limit notifications to objects whose names end with the matching characters. Minimum: 0 Maximum: 1024 |
events | Array of strings | Trigger event (OBS trigger parameter).
|
topic_urn | String | Topic URN (SMN trigger parameter) Minimum: 1 Maximum: 255 |
topic_ids | Array of strings | The Kafka topic ID list (Kafka trigger parameter). |
kafka_user | String | Kafka account name (Kafka trigger parameter). |
kafka_password | String | Kafka password (Kafka trigger parameter). |
kafka_connect_address | String | Kafka instance connection address (Kafka trigger parameter). |
kafka_ssl_enable | Boolean | Whether to enable SASL authentication(Kafka trigger parameter). |
access_password | String | RabbitMQ account password (RabbitMQ trigger parameter). |
access_user | String | RabbitMQ username (RabbitMQ trigger parameter). |
connect_address | String | Instance IP address (RabbitMQ trigger parameter). |
exchange_name | String | Switch name (RabbitMQ trigger parameter). |
vhost | String | Virtual host (RabbitMQ trigger parameter). |
ssl_enable | Boolean | Whether to enable SSL (RabbitMQ trigger parameter). |
Parameter | Type | Description |
---|---|---|
function_urn | String | Function URN. For details, see the function model descriptions. |
invocation_type | String | Execution mode of a function.
Enumeration values:
|
timeout | Integer | Timeout allowed for APIG to request the FunctionGraph service. The unit is in millisecond. This parameter is mandatory for APIG triggers. Minimum: 1 Maximum: 60000 |
version | String | Function version information. |
Status code: 400
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Status code: 401
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Status code: 403
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Status code: 404
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Status code: 500
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Example Requests¶
Create an OBS trigger named obs-event-1ec7 with events of uploading files to the input-picture2 bucket.
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" } }
Create a shared APIG trigger named API_test_function, with None authentication (temporary domain name) and 5000s timeout.
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" } }
Create a dedicated APIG trigger named API_test_function, with None authentication (temporary domain name) and 5000s timeout.
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" } }
Create a Kafka trigger named 86ad3efcxx to pull messages from the PUSH_TOKEN_RECORD consumer group.
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 } }
Create a timer trigger to trigger a function every 3 minutes.
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" } }
Create an LTS trigger. (An agency with LTS permissions is required.)
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" } }
Create an SMN trigger.
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" } }
Example Responses¶
Status code: 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"
}
Status Codes¶
Status Code | Description |
---|---|
201 | Created |
400 | Bad request. |
401 | Unauthorized. |
403 | Forbidden. |
404 | Not found. |
500 | Internal server error. |
Error Codes¶
See Error Codes.