「AWS Lambda 呼叫」動作 YAML 定義 - Amazon CodeCatalyst

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

「AWS Lambda 呼叫」動作 YAML 定義

以下是AWS Lambda 呼叫動作的 YAML 定義。若要瞭解如何使用此動作,請參閱使用工作流程叫用 AWS Lambda 函數

此動作定義存在於更廣泛的工作流程定義檔案中的區段。如需有關此檔案的詳細資訊,請參閱工作流程 YAML 定義

注意

後續的大多數 YAML 屬性在視覺化編輯器中都有對應的 UI 元素。若要查詢使用者介面元素,請使用 Ctrl+F。 該元素將與其關聯的 YAML 屬性列出。

# The workflow definition starts here. # See 頂層屬性 for details. Name: MyWorkflow SchemaVersion: 1.0 Actions: # The action definition starts here. LambdaInvoke_nn: Identifier: aws/lambda-invoke@v1 DependsOn: - dependent-action Compute: Type: EC2 | Lambda Fleet: fleet-name Timeout: timeout-minutes Inputs: # Specify a source or an artifact, but not both. Sources: - source-name-1 Artifacts: - request-payload Variables: - Name: variable-name-1 Value: variable-value-1 - Name: variable-name-2 Value: variable-value-2 Environment: Name: environment-name Connections: - Name: account-connection-name Role: iam-role-name Configuration: Function: my-function|function-arn AWSRegion: us-west-2 # Specify RequestPayload or RequestPayloadFile, but not both. RequestPayload: '{"firstname": "Li", lastname: "Jean", "company": "ExampleCo", "team": "Development"}' RequestPayloadFile: my/request-payload.json ContinueOnError: true|false LogType: Tail|None ResponseFilters: '{"name": ".name", "company": ".department.company"}' Outputs: Artifacts: - Name: lambda_artifacts Files: - "lambda-response.json"

LambdaInvoke

(必要)

指定動作的名稱。所有動作名稱在工作流程中都必須是唯一的。動作名稱僅限於英數字元 (a-z、A-Z、0-9)、連字號 (-) 和底線 (_)。不允許空格。您無法使用引號來啟用動作名稱中的特殊字元和空格。

預設:Lambda_Invoke_Action_Workflow_nn

對應的 UI:組態索引標籤/動作名稱

Identifier

(LambdaInvoke/Identifier)

(必要)

識別動作。除非您要變更版本,否則請勿變更此屬性。如需詳細資訊,請參閱 指定動作的主要、次要或修補程式版本

預設:aws/lambda-invoke@v1

對應的用戶界面:工作流程圖/LambdaInvoke_nn/ aws/羊肉調用 @v1 標籤

DependsOn

(LambdaInvoke/DependsOn)

(選用)

指定必須成功執行的動作、動作群組或閘道,才能執行此動作。

如需「依賴」功能的詳細資訊,請參閱。將動作配置為依賴其他動作

對應的用戶界面:輸入選項卡/取決於- 可選

Compute

(LambdaInvoke/Compute)

(選用)

用來執行工作流程動作的計算引擎。您可以在工作流程層級或動作層級指定計算,但不能同時指定兩者。在工作流程層級指定時,計算組態會套用至工作流程中定義的所有動作。在工作流程層級,您也可以在相同的執行個體上執行多個動作。如需詳細資訊,請參閱 跨動作共用運算

對應的用戶界面:

Type

(LambdaInvoke/Compute/Type)

(如果包含Compute,則為必填)

運算引擎的類型。您可以使用下列其中一個值:

  • EC2 (視覺化編輯器) 或 EC2 (YAML 編輯器)

    針對動作執行期間的彈性進行優化

  • Lambda(可視化編輯器)或Lambda(YAML 編輯器)

    最佳化動作啟動速度。

如需運算類型的更多相關資訊,請參閱運算類型

對應的 UI:配置選項卡/計算類型

Fleet

(LambdaInvoke/Compute/Fleet)

(選用)

指定將執行工作流程或工作流程動作的機器或叢集。對於隨需叢集,當動作開始時,工作流程會佈建所需的資源,並在動作完成時銷毀機器。隨選艦隊的範例:Linux.x86-64.LargeLinux.x86-64.XLarge。如需隨選叢集的詳細資訊,請參閱隨選叢集屬性

透過佈建的叢集,您可以設定一組專用機器來執行工作流程動作。這些機器保持閒置狀態,可立即處理動作。如需已佈建叢集的詳細資訊,請參閱佈建的叢集屬性

Fleet果省略,預設值為Linux.x86-64.Large

對應的 UI:配置選項卡/計算機群

Timeout

(LambdaInvoke/Timeout)

(必要)

指定動作在 CodeCatalyst 結束動作之前可執行的時間長度 (YAML 編輯器) 或小時和分鐘 (視覺化編輯器)。最小值為 5 分鐘,最大值在中說明工作流程的配額。預設逾時與逾時上限相同。

對應的 UI:配置選項卡/超時- 可選

Inputs

(LambdaInvoke/Inputs)

(必要)

Inputs本節定義了在工作流程執行期間AWS Lambda 呼叫動作所需的資料。

注意

每個AWS Lambda 叫用動作只允許一個輸入 (來源或人工因素)。變數不會計入此總數。

對應的 UI:輸入索引標籤

Sources

(LambdaInvoke/Inputs/Sources)

(如果提供 RequestPayloadFile,則為必填)

如果要將請求承載 JSON 檔案傳遞至 AWS Lambda invoke 動作,且此承載檔案儲存在來源存放庫中,請指定該來源存放庫的標籤。目前,唯一支援的標籤是WorkflowSource

如果您的請求承載檔案不包含在來源儲存庫中,則該檔案必須位於由另一個動作產生的成品中。

如需有關承載檔案的詳細資訊,請參閱RequestPayloadFile

注意

您可以使用RequestPayload屬性將承載的 JSON 程式碼直接新增至動作,而不是指定承載檔案。如需詳細資訊,請參閱 RequestPayload

如需來源的詳細資訊,請參閱 將工作流程連接至來源儲存庫

對應的用戶界面:輸入選項卡/源- 可選

Artifacts - input

(LambdaInvoke/Inputs/Artifacts)

(如果提供 RequestPayloadFile,則為必填)

如果您想要將請求承載 JSON 檔案傳遞至 AWS Lambda invoke 動作,且此承載檔案包含在先前動作的輸出成品中,請在此指定該成品。

如需有關承載檔案的詳細資訊,請參閱RequestPayloadFile

注意

您可以使用RequestPayload屬性將承載的 JSON 程式碼直接新增至動作,而不是指定承載檔案。如需詳細資訊,請參閱 RequestPayload

如需人工因素的詳細資訊 (包括範例),請參閱使用成品在工作流程中的動作之間共用資料

對應的 UI:配置選項卡/成品- 可選

Variables - input

(LambdaInvoke/Inputs/Variables)

(選用)

指定一系列名稱/值配對,這些配對定義您要讓動作可用的輸入變數。變數名稱限制為英數字元 (a-z、A-Z、0-9)、連字號 (-) 和底線 (_)。不允許空格。您無法使用引號來啟用變數名稱中的特殊字元和空格。

如需變數的詳細資訊 (包括範例),請參閱在工作流程中配置和使用變數

對應的 UI:輸入選項卡/變量- 可選

Environment

(LambdaInvoke/Environment)

(必要)

指定要與動作搭配使用的 CodeCatalyst 環境。該動作會連接到所選環境中指定的 AWS 帳戶 和可選的 Amazon VPC。此動作使用環境中指定的預設 IAM 角色連線到 AWS 帳戶,並使用 Amazon VPC 連線中指定的 IAM 角色連線到 Amazon VPC。

注意

如果預設 IAM 角色沒有動作所需的許可,您可以將動作設定為使用其他角色。如需詳細資訊,請參閱 為動作指派不同的 IAM 角色

若要取得有關環境的更多資訊,請參閱使 CodeCatalyst用環境部署到 VPC AWS 帳戶 和 VPC建立環境

對應的 UI:配置選項卡/環境

Name

(LambdaInvoke/Environment/Name)

(如果包含Environment,則為必填)

指定您要與動作相關聯的現有環境名稱。

對應的 UI:配置選項卡/環境

Connections

(LambdaInvoke/Environment/Connections)

(在較新版本的動作中為選用項目;舊版本為必要)

指定要與動作相關聯的帳號連線。您最多可以在下指定一個帳戶連線Environment

如果您未指定帳戶連線:

  • 此動作使用在 CodeCatalyst 主控台環境中指定的 AWS 帳戶 連線和預設 IAM 角色。如需將帳戶連線和預設 IAM 角色新增至環境的相關資訊,請參閱建立環境

  • 預設 IAM 角色必須包含動作所需的政策和許可。若要判斷這些原則和權限為何,請參閱動作的 YAML 定義文件中角色屬性的說明。

如需有關帳戶連線的詳細資訊,請參閱允許存取已連線的 AWS 資源 AWS 帳戶。如需將帳戶連線新增至環境的資訊,請參閱建立環境

對應的使用者介面:下列其中一項視動作版本而定:

  • (較新版本)配置選項卡/環境/我的環境中有什麼? /三點菜單/切換角色

  • (舊版本)配置選項卡/「環境/帳戶/角色」/帳AWS 戶連接

Name

(LambdaInvoke/Environment/Connections/Name)

(如果包含Connections,則為必填)

指定帳戶連線的名稱。

對應的使用者介面:下列其中一項視動作版本而定:

  • (較新版本)配置選項卡/環境/我的環境中有什麼? /三點菜單/切換角色

  • (舊版本)配置選項卡/「環境/帳戶/角色」/帳AWS 戶連接

Role

(LambdaInvoke/Environment/Connections/Role)

(如果包含Connections,則為必填)

指定叫用動作用來存取 AWS 和AWS Lambda 叫用 Lambda 函數的 IAM 角色名稱。請確定您已將角色新增至您的 CodeCatalyst 空間,且該角色包含下列原則。

如果未指定 IAM 角色,則動作會使用 CodeCatalyst 主控台環境中列出的預設 IAM 角色。如果您在環境中使用預設角色,請確定其具有下列原則。

  • 下列權限原則:

    警告

    將權限限制為以下策略中顯示的權限。使用具有更廣泛權限的角色可能會造成安全風險。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:aws-region:aws-account:function:function-name" } ] }
  • 下列自訂信任原則:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
注意

您可以視需要使用此動作的CodeCatalystWorkflowDevelopmentRole-spaceName角色。如需有關此角色的詳細資訊,請參閱 為您的帳戶和空間建立CodeCatalystWorkflowDevelopmentRole-spaceName角色。瞭解CodeCatalystWorkflowDevelopmentRole-spaceName角色具有可能造成安全風險的完整存取權限。我們建議您只在不太擔心安全性的教學課程和案例中使用此角色。

對應的使用者介面:下列其中一項視動作版本而定:

  • (較新版本)配置選項卡/環境/我的環境中有什麼? /三點菜單/切換角色

  • (舊版) 組態索引標籤/「環境/帳戶/角色」/「角色」

Configuration

(LambdaInvoke/Configuration)

(必要)

您可以在其中定義動作的組態屬性的區段。

對應的 UI:組態索引標籤

Function

(LambdaInvoke/Configuration/Function)

(必要)

指定此動作將呼叫的 AWS Lambda 函數。您可以指定函數的名稱,或其 Amazon 資源名稱(ARN)。您可以在 Lambda 主控台中找到名稱或 ARN。

注意

Lambda 函數所在的 AWS 帳戶可以與下指定的帳戶不同Connections:

對應的 UI:配置選項卡/功能

AWSRegion

(LambdaInvoke/Configuration/AWSRegion)

(必要)

指定 AWS Lambda 函數所在的 AWS 區域。如需區域代碼的清單,請參閱 AWS 一般參考.

對應的 UI:配置選項卡/目標存儲桶- 可選

RequestPayload

(LambdaInvoke/Configuration/RequestPayload)

(選用)

如果要將請求有效負載傳遞給 AWS Lambda invoke 動作,請在此處以 JSON 格式指定請求有效負載。

請求有效負載示例:

'{ "key": "value" }'

如果您不想將請求裝載傳遞給 Lambda 函數,請省略此屬性。

注意

您可以指定 RequestPayloadRequestPayloadFile,但不能同時指定兩者。

如需要求承載的詳細資訊,請參閱 AWS Lambda API 參考中的 Invoke 主題。

對應的 UI:配置選項卡/請求有效負載- 可選

RequestPayloadFile

(LambdaInvoke/Configuration/RequestPayloadFile)

(選用)

如果要將請求有效負載傳遞給 AWS Lambda invoke 動作,請在此處指定此請求有效負載文件的路徑。檔案必須是 JSON 格式。

要求承載檔案可以位於來源儲存庫或先前動作的成品中。檔案路徑相對於來源儲存庫或成品根目錄。

如果您不想將請求裝載傳遞給 Lambda 函數,請省略此屬性。

注意

您可以指定 RequestPayloadRequestPayloadFile,但不能同時指定兩者。

有關請求承載文件的詳細信息,請參閱 AWS Lambda API 參考中的調用主題。

對應的 UI:配置選項卡/請求有效負載文件- 可選

ContinueOnError

(LambdaInvoke/Configuration/RequestPayloadFile)

(選用)

指定即使叫用 AWS Lambda 函數失敗,您是否要將 AWS Lambda invoke 動作標示為成功。考慮將此屬性設定為,true以允許在 Lambda 失敗的情況下啟動工作流程中的後續動作。

預設值是如果 Lambda 函數失敗 (在可視化編輯器或 false YAML 編輯器中「關閉」),則會失敗動作。

對應的 UI:配置選項卡/錯誤時繼續

LogType

(LambdaInvoke/Configuration/LogType)

(選用)

指定是否要在叫用 Lambda 函數後將錯誤記錄包含在來自 Lambda 函數的回應中。您可以在主控台的 Lambda 叫用動作的 [記錄] 索引標籤中檢視這些記 CodeCatalyst 錄。可能值為:

  • Tail— 返回日誌

  • None-不返回日誌

預設為尾巴

如需有關記錄類型的詳細資訊,請參閱 AWS Lambda API 參考中的「叫用」主題。

如需檢視日誌檔案的詳細資訊,請參閱檢視工作流程執行狀態與詳細

對應的 UI:配置選項卡/日誌類型

ResponseFilters

(LambdaInvoke/Configuration/ResponseFilters)

(選用)

指定 Lambda 回應承載中要轉換為輸出變數的索引鍵。然後,您可以在工作流程中的後續動作中參照輸出變數。如需中變數的更多資訊 CodeCatalyst,請參閱在工作流程中配置和使用變數

例如,如果您的響應有效負載如下所示:

responsePayload = { "name": "Saanvi", "location": "Seattle", "department": { "company": "Amazon", "team": "AWS" } }

... 您的響應過濾器如下所示:

Configuration: ... ResponseFilters: '{"name": ".name", "company": ".department.company"}'

... 然後動作會產生下列輸出變數:

金鑰

name

Saanvi

company

Amazon

然後您可以在後續動作中參照namecompany變數。

如果您未在中指定任何索引鍵ResponseFilters,則動作會將 Lambda 回應中的每個頂層金鑰轉換為輸出變數。如需詳細資訊,請參閱 「AWS Lambda 調用」操作生成的變量

請考慮使用回應篩選器,將產生的輸出變數限制為只有您實際想要使用的變數。

對應的 UI:配置選項卡/響應過濾器- 可選

Outputs

(LambdaInvoke/Outputs)

(選用)

定義工作流程執行期間動作輸出的資料。

對應的 UI:輸出索引標籤

Artifacts

(LambdaInvoke/Outputs/Artifacts)

(選用)

指定動作所產生的人工因素。您可以參考這些人工因素作為其他動作中的輸入。

如需人工因素的詳細資訊 (包括範例),請參閱使用成品在工作流程中的動作之間共用資料

對應的 UI:輸出選項卡/人工因素/構建成品名稱

Name

(LambdaInvoke/Outputs/Artifacts/Name)

(選用)

指定將包含 Lambda 函數傳回之 Lambda 回應承載的成品名稱。預設值為 lambda_artifacts。如果您未指定成品,則可以在動作的記錄中檢視 Lambda 回應裝載,該記錄可在 CodeCatalyst 主控台中的動作的 [記錄] 索引標籤上找到。如需檢視日誌檔案的詳細資訊,請參閱檢視工作流程執行狀態與詳細

對應的 UI:輸出選項卡/人工因素/構建成品名稱

Files

(LambdaInvoke/Outputs/Artifacts/Files)

(選用)

指定要包含在人工因素中的檔案。您必須指定lambda-response.json以便包含 Lambda 回應承載檔案。

對應的 UI:輸出選項卡/人工/構建生成的文件