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 | 否 | 是 | 是否非同步呼叫。 | 取值:
|
Event | String | 否 | 是 | 使用者自訂的函數入參。 | 該參數在函數執行時會被編碼為UTF-8字串傳遞給函數。如果需要傳遞二進位或其他編碼的字串,可以先使用Base64進行編碼,再傳遞給該參數。 |
Qualifier | String | 否 | 是 | 服務版本。 | 取值:
|
ExecuteVersion | Integer | 否 | 是 | 建立該資源時,如果不指定該參數,則不會觸發函數調用,否則觸發函數調用。 更新該資源時,如果該參數發生了變化,且變化後的值為整數,則觸發函數調用,否則不觸發函數調用。 | 無 |
CheckError | Boolean | 否 | 否 | 是否檢查調用結果。 | 取值:
|
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": {
}
}