aws:invokeLambdaFunction – 呼叫 AWS Lambda 函數 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

aws:invokeLambdaFunction – 呼叫 AWS Lambda 函數

呼叫指定的 AWS Lambda 函數。

注意

每個 aws:invokeLambdaFunction 動作最久可執行 300 秒 (5 分鐘)。您可以透過指定 aws:invokeLambdaFunction 步驟的 timeoutSeconds 參數來限制逾時。

Input

此動作支援 Lambda 服務大部分的呼叫參數。如需詳細資訊,請參閱呼叫

YAML
name: invokeMyLambdaFunction action: aws:invokeLambdaFunction maxAttempts: 3 timeoutSeconds: 120 onFailure: Abort inputs: FunctionName: MyLambdaFunction
JSON
{ "name": "invokeMyLambdaFunction", "action": "aws:invokeLambdaFunction", "maxAttempts": 3, "timeoutSeconds": 120, "onFailure": "Abort", "inputs": { "FunctionName": "MyLambdaFunction" } }
FunctionName

Lambda 函數的名稱。此函數必須存在。

類型:字串

必要:是

限定詞

函數版本或別名名稱。

類型:字串

必要:否

InvocationType

呼叫類型。預設值為 RequestResponse

類型:字串

有效值:Event | RequestResponse | DryRun

必要:否

LogType

如果預設值為 Tail,則叫用類型必須是 RequestResponse。Lambda 會傳回由 Lambda 函數產生的最新 4 KB 日誌資料,且為 base64 編碼。

類型:字串

有效值:None | Tail

必要:否

ClientContext

用戶端特定的資訊。

必要:否

InputPayload

將傳遞給處理常式的第一個參數的 YAML 或 JSON 物件。您可以使用此輸入將資料傳遞到函數。此輸入相比傳統 Payload 輸入提供了更多靈活性和支援。如果您為該動作同時定義 InputPayloadPayload,則 InputPayload 優先,並且不使用 Payload 值。

類型:StringMap

必要:否

承載

將傳遞給處理常式的第一個參數的 JSON 字串。這可以用來將輸入資料傳遞到函數。建議您使用 InputPayload 輸入,因為已新增其功能。

類型:字串

必要:否

輸出
StatusCode

HTTP 狀態碼

FunctionError

如果存在,則表示函數執行期間發生錯誤。錯誤詳細資訊包含在回應承載中。

LogResult

Lambda 函數呼叫的 base64 編碼日誌。日誌僅在呼叫類型為 RequestResponse 時才會出現,且日誌經過請求。

承載

由 Lambda 函數傳回之物件的 JSON 表示法。承載僅在呼叫類型為 RequestResponse 時才會出現。最多會傳回 200 KB

以下節錄自 AWS-PatchInstanceWithRollback Runbook,示範如何從 aws:invokeLambdaFunction 動作參照輸出。

YAML
- name: IdentifyRootVolume action: aws:invokeLambdaFunction inputs: FunctionName: "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}" Payload: '{"InstanceId": "{{InstanceId}}"}' - name: PrePatchSnapshot action: aws:executeAutomation inputs: DocumentName: "AWS-CreateSnapshot" RuntimeParameters: VolumeId: "{{IdentifyRootVolume.Payload}}" Description: "ApplyPatchBaseline restoration case contingency"
JSON
{ "name": "IdentifyRootVolume", "action": "aws:invokeLambdaFunction", "inputs": { "FunctionName": "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}", "Payload": "{\"InstanceId\": \"{{InstanceId}}\"}" } }, { "name": "PrePatchSnapshot", "action": "aws:executeAutomation", "inputs": { "DocumentName": "AWS-CreateSnapshot", "RuntimeParameters": { "VolumeId": "{{IdentifyRootVolume.Payload}}", "Description": "ApplyPatchBaseline restoration case contingency" } } }