全部產品
Search
文件中心

:ALIYUN::FC::FunctionInvoker

更新時間:Apr 18, 2025

ALIYUN::FC::FunctionInvoker類型用於主動執行函數。

文法

{
  "Type": "ALIYUN::FC::FunctionInvoker",
  "Properties": {
    "Qualifier": String,
    "ServiceName": String,
    "ExecuteVersion": Integer,
    "Async": Boolean,
    "Event": String,
    "FunctionName": String,
    "CheckError": Boolean,
    "ServiceRegionId": String,
    "CheckAsyncInvocation": Map
  }
}

屬性

屬性名稱

類型

必須

允許更新

描述

約束

ServiceName

String

服務名稱。

長度為1~128個字元。

FunctionName

String

函數名稱。

Async

Boolean

是否非同步呼叫。

取值:

  • true

  • false(預設值)

Event

String

使用者自訂的函數入參。

該參數在函數執行時會被編碼為UTF-8字串傳遞給函數。如果需要傳遞二進位或其他編碼的字串,可以先使用Base64進行編碼,再傳遞給該參數。

Qualifier

String

服務版本。

取值:

  • versionId:版本號碼。

  • aliasName:別名。

ExecuteVersion

Integer

建立該資源時,如果不指定該參數,則不會觸發函數調用,否則觸發函數調用。

更新該資源時,如果該參數發生了變化,且變化後的值為整數,則觸發函數調用,否則不觸發函數調用。

CheckError

Boolean

是否檢查調用結果。

取值:

  • true

    說明

    如果取值為true且函數調用結果為失敗,則認為資源建立失敗。

  • false(預設值)

ServiceRegionId

String

函數服務所屬地區。

CheckAsyncInvocation

Map

檢查非同步呼叫設定。

更新資訊,請參考CheckAsyncInvocation屬性。

CheckAsyncInvocation文法

"CheckAsyncInvocation": {
  "Enabled": Boolean,
  "CheckInterval": Integer,
  "CheckTimes": Integer
}

CheckAsyncInvocation屬性

屬性名稱

類型

必須

允許更新

描述

約束

Enabled

Boolean

是否檢查非同步呼叫結果。

如果設定為 true,且函數調用類型為非同步,則資源建立將會等待調用完成並檢查結果。預設值為 false。

CheckInterval

Integer

檢查非同步呼叫結果的間隔時間。

預設值為 10 秒。單位為秒。

CheckTimes

Integer

檢查非同步呼叫結果的次數。

預設值為 10 次。

傳回值

Fn::GetAtt

  • ResultType:

    • Async為true且ResultType為NoResult時,表示沒有調用結果。

    • Async為false且ResultType為Success時,表示執行成功。

    • Async為false且ResultType為Failure時,表示執行失敗。

  • Result:

    • ResultType為NoResult時Result為空白值。

    • ResultType為Success時Result為invoke function返回的結果(字串),具體內容由使用者解釋。要求返回的結果必須是UTF-8編碼的字串,否則ROS會認為函數執行失敗。如果要返回二進位或其他編碼的字串,可以在返回前使用Base64進行編碼。

    • ResultType為Failure時Result為報錯資訊。

樣本

ROSTemplateFormatVersion: '2015-09-01'
Parameters: {}
Resources:
  FunctionInvoker:
    Type: ALIYUN::FC::FunctionInvoker
    Properties:
      ServiceName: mytest
      FunctionName: PythonFunc
      ExecuteVersion: 1
Outputs: {}
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
  },
  "Resources": {
    "FunctionInvoker": {
      "Type": "ALIYUN::FC::FunctionInvoker",
      "Properties": {
        "ServiceName": "mytest",
        "FunctionName": "PythonFunc",
        "ExecuteVersion": 1.0
      }
    }
  },
  "Outputs": {
  }
}