華為云計算 云知識 創(chuàng)建觸發(fā)器CreateFunctionTrigger
創(chuàng)建觸發(fā)器CreateFunctionTrigger

 

功能介紹

創(chuàng)建觸發(fā)器。

  • 可以創(chuàng)建的觸發(fā)器類型包括TIMER、APIG、 CTS 、DDS、DMS、DIS、 LTS 、OBS、 SMN 、KAFKA。

  • DDS和KAFKA觸發(fā)器創(chuàng)建時默認(rèn)為DISABLED狀態(tài),其他觸發(fā)器默認(rèn)為ACTIVE狀態(tài)。

  • TIMER、DDS、DMS、KAFKA、LTS觸發(fā)器支持禁用,其他觸發(fā)器不支持。

調(diào)試

您可以在API Explorer中調(diào)試該接口,支持自動認(rèn)證鑒權(quán)。API Explorer可以自動生成SDK代碼示例,并提供SDK代碼示例調(diào)試功能。

URI

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

表1 路徑參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

project_id

String

租戶項目 ID,獲取方式請參見獲取項目ID。

function_urn

String

函數(shù)的URN,詳細(xì)解釋見FunctionGraph函數(shù)模型的描述。

請求參數(shù)

表2 請求Header參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

X-Auth-Token

String

用戶Token。

通過調(diào)用 IAM 服務(wù)獲取用戶Token接口獲取(響應(yīng)消息頭中X-Subject-Token的值)。

表3 請求Body參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

trigger_type_code

String

觸發(fā)器類型。

  • TIMER: 定時觸發(fā)器。

  • APIG: APIGW觸發(fā)器。

  • CTS: 云審計 觸發(fā)器,需要先開通云審計服務(wù)。

  • DDS: 文檔數(shù)據(jù)庫 觸發(fā)器,需要開啟函數(shù)vpc。

  • DMS: 分布式消息服務(wù)觸發(fā)器,需要配置dms委托。

  • DIS: 數(shù)據(jù)接入服務(wù) 觸發(fā)器,需要配置dis委托。

  • LTS: 云審計日志服務(wù)觸發(fā)器,需要配置lts委托。

  • OBS: 對象存儲服務(wù) 觸發(fā)器。

  • KAFKA: 專享版本kafka觸發(fā)器。

枚舉值:

  • TIMER

  • APIG

  • CTS

  • DDS

  • DMS

  • DIS

  • LTS

  • OBS

  • SMN

  • KAFKA

  • RABBITMQ

  • DEDICATEDGATEWAY

  • OPENSOURCEKAFKA

  • APIC

  • GAUSSMONGO

  • EVENTGRID

  • IOTDA

trigger_status

String

觸發(fā)器狀態(tài),取值為ACTIVE,DISABLED。

枚舉值:

  • ACTIVE

  • DISABLED

event_type_code

String

消息代碼。

event_data

Object

事件結(jié)構(gòu)體。

響應(yīng)參數(shù)

狀態(tài)碼: 201

表4 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

trigger_id

String

觸發(fā)器ID。

trigger_type_code

String

觸發(fā)器類型。

  • TIMER: "定時觸發(fā)器。"

  • APIG: "APIG觸發(fā)器。"

  • CTS: "云審計服務(wù)觸發(fā)器。"

  • DDS: " 文檔數(shù)據(jù)庫服務(wù) 觸發(fā)器。"

  • DMS: "分布式服務(wù)觸發(fā)器。"

  • DIS: "數(shù)據(jù)接入服務(wù)觸發(fā)器。"

  • LTS: " 云日志 服務(wù)觸發(fā)器。"

  • OBS: " 對象存儲 觸發(fā)器。"

  • SMN: " 消息通知 服務(wù)觸發(fā)器。"

  • KAFKA: "專享版消息通知服務(wù)觸發(fā)器。"

枚舉值:

  • TIMER

  • APIG

  • CTS

  • DDS

  • DMS

  • DIS

  • LTS

  • OBS

  • SMN

  • KAFKA

  • RABBITMQ

  • DEDICATEDGATEWAY

  • OPENSOURCEKAFKA

  • APIC

  • GAUSSMONGO

  • EVENTGRID

  • IOTDA

trigger_status

String

"觸發(fā)器狀態(tài)"

  • ACTIVE: 啟用狀態(tài)。

  • DISABLED: 禁用狀態(tài)。

枚舉值:

  • ACTIVE

  • DISABLED

event_data

Object

觸發(fā)器源事件。

last_updated_time

String

最后更新時間。

created_time

String

觸發(fā)器創(chuàng)建時間。

狀態(tài)碼: 400

表5 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 401

表6 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 403

表7 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 404

表8 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 500

表9 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

請求示例

  • 創(chuàng)建名為obs-event-1ec7的obs觸發(fā)器,觸發(fā)事件為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"
      }
    }
  • 創(chuàng)建名為API_test_gxz_v1_billing的apig觸發(fā)器,創(chuàng)建無認(rèn)證方式的臨時域名,超時時間為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"
      }
    }
  • 創(chuàng)建86ad3efcxx實例的kafka觸發(fā)器,從PUSH_TOKEN_RECORD消費(fèi)組中拉取消息觸發(fā)函數(shù)執(zhí)行。

    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
      }
    }
  • 創(chuàng)建timer觸發(fā)器,每3分鐘觸發(fā)一次函數(shù)執(zhí)行。

    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"
      }
    }
  • 創(chuàng)建指定lts觸發(fā)器(需配置訪問LTS服務(wù)權(quán)限的委托)。

    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"
      }
    }
  • 創(chuàng)建指定smn觸發(fā)器。

    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"
      }
    }

響應(yīng)示例

狀態(tài)碼: 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"
}

狀態(tài)碼

狀態(tài)碼

描述

201

Created

400

Bad Request 請求錯誤。

401

Unauthorized 鑒權(quán)失敗。

403

Forbidden 沒有操作權(quán)限。

404

Not Found 找不到資源。

500

Internal Server Error 服務(wù)內(nèi)部錯誤。

錯誤碼

請參見錯誤碼