华为云计算 云知识 创建触发器CreateFunctionTrigger
创建触发器CreateFunctionTrigger

 

功能介绍

创建触发器。

  • 可以创建的触发器类型包括TIMER、APIG、 CTS 、DDS、DMS、DIS、 LTS 、OBS、 SMN 、KAFKA。

  • DDS和KAFKA触发器创建时默认为DISABLED状态,其他触发器默认为ACTIVE状态。

  • TIMER、DDS、DMS、KAFKA、LTS触发器支持禁用,其他触发器不支持。

调试

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

URI

POST /v2/{project_id}/fgs/triggers/{function_urn}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户项目 ID,获取方式请参见获取项目ID

function_urn

String

函数的URN,详细解释见FunctionGraph函数模型的描述。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

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

表3 请求Body参数

参数

是否必选

参数类型

描述

trigger_type_code

String

触发器类型。

  • TIMER: 定时触发器。

  • APIG: APIGW触发器。

  • CTS: 云审计 触发器,需要先开通云审计服务。

  • DDS: 文档数据库 触发器,需要开启函数vpc。

  • DMS: 分布式消息服务触发器,需要配置dms委托。

  • DIS: 数据接入服务 触发器,需要配置dis委托。

  • LTS: 云审计日志服务触发器,需要配置lts委托。

  • OBS: 对象存储服务 触发器。

  • KAFKA: 专享版本kafka触发器。

枚举值:

  • TIMER

  • APIG

  • CTS

  • DDS

  • DMS

  • DIS

  • LTS

  • OBS

  • SMN

  • KAFKA

  • RABBITMQ

  • DEDICATEDGATEWAY

  • OPENSOURCEKAFKA

  • APIC

  • GAUSSMONGO

  • EVENTGRID

  • IOTDA

trigger_status

String

触发器状态,取值为ACTIVE,DISABLED。

枚举值:

  • ACTIVE

  • DISABLED

event_type_code

String

消息代码。

event_data

Object

事件结构体。

响应参数

状态码: 201

表4 响应Body参数

参数

参数类型

描述

trigger_id

String

触发器ID。

trigger_type_code

String

触发器类型。

  • TIMER: "定时触发器。"

  • APIG: "APIG触发器。"

  • CTS: "云审计服务触发器。"

  • DDS: " 文档数据库服务 触发器。"

  • DMS: "分布式服务触发器。"

  • DIS: "数据接入服务触发器。"

  • LTS: " 云日志 服务触发器。"

  • OBS: " 对象存储 触发器。"

  • SMN: " 消息通知 服务触发器。"

  • KAFKA: "专享版消息通知服务触发器。"

枚举值:

  • TIMER

  • APIG

  • CTS

  • DDS

  • DMS

  • DIS

  • LTS

  • OBS

  • SMN

  • KAFKA

  • RABBITMQ

  • DEDICATEDGATEWAY

  • OPENSOURCEKAFKA

  • APIC

  • GAUSSMONGO

  • EVENTGRID

  • IOTDA

trigger_status

String

"触发器状态"

  • ACTIVE: 启用状态。

  • DISABLED: 禁用状态。

枚举值:

  • ACTIVE

  • DISABLED

event_data

Object

触发器源事件。

last_updated_time

String

最后更新时间。

created_time

String

触发器创建时间。

状态码: 400

表5 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 401

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 403

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 404

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 500

表9 响应Body参数

参数

参数类型

描述

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_gxz_v1_billing的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_gxz_v1_billing",
        "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
        "env_name" : "RELEASE",
        "protocol" : "HTTPS",
        "auth" : "NONE",
        "group_id" : "318b09eb214a41488c667ecd51667e3x",
        "sl_domain" : "318b09eb214a41488c667ecd51667e3x.apig.{region}.huaweicloudapis.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_group_name" : "function_flow_lts_group_XXX",
        "log_topic_id" : "5b4944dd-9603-481d-9b91-XXX",
        "log_topic_name" : "79eebdc0-3a0d-4231-b88e-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 服务内部错误。

错误码

请参见错误码

 

上一篇:tsung是什么意思 下一篇:什么是云专线