本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
'AWS Lambda 調用' 操作 YAML
以下是AWS Lambda 調用操作的YAML定義。若要瞭解如何使用此動作,請參閱使用工作流程叫用 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.Large
、Linux.x86-64.XLarge
。如需隨選叢集的詳細資訊,請參閱隨需機群屬性。
透過佈建的叢集,您可以設定一組專用機器來執行工作流程動作。這些機器保持閒置狀態,可立即處理動作。如需已佈建叢集的詳細資訊,請參閱佈建的機群屬性。
如Fleet
果省略,預設值為Linux.x86-64.Large
。
對應的 UI:配置選項卡/計算機群
Timeout
(LambdaInvoke
/Timeout)
(必要)
指定動作在 CodeCatalyst 結束動作之前可執行的時間長度 (以分鐘為單位) 或小時和分鐘 (視覺化編輯器)。YAML最小值為 5 分鐘,最大值在中說明中的工作流程配額 CodeCatalyst。預設逾時與逾時上限相同。
對應的 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)、連字號 (-) 和底線 (_)。不允許空格。您無法使用引號來啟用變數名稱中的特殊字元和空格。
如需有關變數的更多資訊 (包括範例),請參閱在工作流程中使用變數。
對應的用戶界面:輸入選項卡/變量- 可選
Environment
(LambdaInvoke
/Environment)
(必要)
指定要與動作搭配使用的 CodeCatalyst 環境。該動作連接到所選環境中VPC指定的 AWS 帳戶 和可選的 Amazon。該動作使用環境中指定的預設IAM角色連接到 AWS 帳戶,並使用 Amazon VPC 連接中指定的IAM角色連接到 Amazon VPC。
注意
如果預設IAM角色沒有動作所需的權限,您可以將動作配置為使用其他角色。如需詳細資訊,請參閱 變更動作IAM的角色。
若要取得有關環境的更多資訊,請參閱部署至 AWS 帳戶 和 VPCs和建立環境。
對應的 UI:配置選項卡/環境
Name
(LambdaInvoke
/Environment/Name)
(如果包含Environment,則為必填)
指定您要與動作相關聯的現有環境名稱。
對應的 UI:配置選項卡/環境
Connections
(LambdaInvoke
/Environment/Connections)
(在較新版本的動作中為選用項目;舊版本為必要)
指定要與動作相關聯的帳號連線。您最多可以在下指定一個帳戶連線Environment
。
如果您未指定帳戶連線:
-
此動作會使用在 CodeCatalyst 主控台環境中指定的 AWS 帳戶 連線和預設IAM角色。如需將帳戶連線和預設IAM角色新增至環境的資訊,請參閱建立環境。
-
預設IAM角色必須包含動作所需的原則和權限。若要判斷這些原則和權限是什麼,請參閱動作的YAML定義文件中角色屬性的說明。
如需有關帳戶連線的詳細資訊,請參閱允許存取已連線 AWS 的資源 AWS 帳戶。如需將帳戶連線新增至環境的資訊,請參閱建立環境。
對應的使用者介面:下列其中一項視動作版本而定:
-
(較新版本)配置選項卡/環境/
my-environment
? /三點菜單/切換角色 -
(舊版本)配置選項卡/「環境/帳戶/角色」/帳AWS 戶連接
Name
(LambdaInvoke
/Environment/Connections/Name)
(如果包含Connections,則為必填)
指定帳戶連線的名稱。
對應的使用者介面:下列其中一項視動作版本而定:
-
(較新版本)配置選項卡/環境/
my-environment
? /三點菜單/切換角色 -
(舊版本)配置選項卡/「環境/帳戶/角色」/帳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-
角色與此動作搭配使用。如需有關此角色的詳細資訊,請參閱 為您的帳戶和空間建立CodeCatalystWorkflowDevelopmentRole-spaceName角色。瞭解spaceName
CodeCatalystWorkflowDevelopmentRole-
角色具有可能造成安全風險的完整存取權限。我們建議您只在不太擔心安全性的教學課程和案例中使用此角色。spaceName
對應的使用者介面:下列其中一項視動作版本而定:
-
(較新版本)配置選項卡/環境/
my-environment
? /三點菜單/切換角色 -
(舊版) 組態索引標籤/「環境/帳戶/角色」/「角色」
Configuration
(LambdaInvoke
/Configuration)
(必要)
您可以在其中定義動作的組態屬性的區段。
對應的 UI:組態索引標籤
Function
(LambdaInvoke
/Configuration/Function)
(必要)
指定此動作將呼叫的 AWS Lambda 函數。您可以指定函數的名稱,或其 Amazon 資源名稱 (ARN)。您可以找到名稱,或ARN在 Lambda 主控台中找到。
注意
Lambda 函數所在的 AWS 帳戶可以與下指定的帳戶不同Connections:
。
對應的 UI:配置選項卡/功能
AWSRegion
(LambdaInvoke
/Configuration/AWSRegion)
(必要)
指定 AWS Lambda 函數所在的 AWS 區域。如需區域代碼的清單,請參閱 AWS 一般參考.
對應的 UI:配置選項卡/目標存儲桶- 可選
RequestPayload
(LambdaInvoke
/Configuration/RequestPayload)
(選用)
如果要將請求有效負載傳遞給 AWS Lambda invoke 動作,請在此處以JSON格式指定請求有效負載。
請求有效負載示例:
'{ "key": "value" }'
如果您不想將請求裝載傳遞給 Lambda 函數,請省略此屬性。
注意
您可以指定 RequestPayload
或 RequestPayloadFile
,但不能同時指定兩者。
如需要求承載的詳細資訊,請參閱AWS Lambda API參照中的 Invoke 主題。
對應的 UI:配置選項卡/請求有效負載- 可選
RequestPayloadFile
(LambdaInvoke
/Configuration/RequestPayloadFile)
(選用)
如果要將請求有效負載傳遞給 AWS Lambda invoke 動作,請在此處指定此請求有效負載文件的路徑。檔案必須為格JSON式。
請求有效負載檔案可以位於來源儲存庫中,也可以位於先前動作的成品中。檔案路徑相對於來源儲存庫或人工因素根目錄。
如果您不想將請求裝載傳遞給 Lambda 函數,請省略此屬性。
注意
您可以指定 RequestPayload
或 RequestPayloadFile
,但不能同時指定兩者。
如需有關要求承載檔案的詳細資訊,請參閱AWS Lambda API參照中的 Invoke 主題。
對應的 UI:配置選項卡/請求有效負載文件- 可選
ContinueOnError
(LambdaInvoke
/Configuration/RequestPayloadFile)
(選用)
指定即使叫用 AWS Lambda 函數失敗,您是否要將 AWS Lambda invoke 動作標示為成功。考慮將此屬性設定為,true
以允許在 Lambda 失敗的情況下啟動工作流程中的後續動作。
預設值是如果 Lambda 函數失敗 (在可視化編輯器或false
編輯器中「關閉」),則會YAML失敗動作。
對應的用戶界面:配置選項卡/錯誤時繼續
LogType
(LambdaInvoke
/Configuration/LogType)
(選用)
指定是否要在叫用 Lambda 函數後將錯誤記錄包含在來自 Lambda 函數的回應中。您可以在主控台的 Lambda 叫用動作的 [記錄] 索引標籤中檢視這些記 CodeCatalyst 錄。可能值為:
-
Tail
— 返回日誌 -
None
-不返回日誌
預設為尾巴。
如需有關記錄檔類型的詳細資訊,請參閱AWS Lambda API參考資料中的 Invoke 主題。
如需檢視日誌檔案的詳細資訊,請參閱檢視工作流程執行狀態與詳細。
對應的 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 |
然後您可以在後續動作中參照name
和company
變數。
如果您未在中指定任何索引鍵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:輸出選項卡/人工/構建生成的文件