呼叫 Lambda 函數的工作流程範例 - Amazon CodeCatalyst

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

呼叫 Lambda 函數的工作流程範例

下列工作流程包括 AWS Lambda invoke 動作以及部署動作。工作流程會傳送 Slack 通知,指出部署已開始,然後使用範本將應 AWS 用程式部署到中。 AWS CloudFormation 工作流程由下列依序執行的建置區塊組成:

  • 觸發器 — 當您將變更推送至來源儲存庫時,此觸發器會自動啟動工作流程執行。關於觸發條件的詳細資訊,請參閱 使用觸發器啟動工作流程自動執行

  • AWS Lambda 叫用動作 (LambdaNotify) — 在觸發器上,此動作會叫用指定 AWS 帳戶和區域 (my-aws-accountus-west-2) 中的 Notify-Start Lambda 函數。在叫用時,Lambda 函數會傳送 Slack 通知,指出部署已開始。

  • 部署 AWS CloudFormation 堆疊動作 (Deploy) — AWS Lambda 呼叫動作完成時,「部署 AWS CloudFormation 堆疊」動作會執行範本 (cfn-template.yml) 以部署應用程式堆疊。如需「部署 AWS CloudFormation 堆疊」動作的詳細資訊,請參閱使用工作流程部署 AWS CloudFormation 堆疊

注意

下列工作流程範例僅供說明用途,如果沒有其他組態,將無法運作。

注意

在下面的 YAML 代碼中,如果需要,可以省略Connections:部分。如果省略這些區段,您必須確保環境中預設 IAM 角色欄位中指定的角色包含AWS Lambda 叫用Deploy AWS CloudFormation 堆疊動作所需的許可和信任政策。如需使用預設 IAM 角色設定環境的詳細資訊,請參閱建立環境。如需有關AWS Lambda 叫用Deploy AWS CloudFormation 堆疊動作所需之權限和信任原則的詳細資訊,請參閱「AWS Lambda 呼叫」動作 YAML 定義和中的Role屬性說明「部署 AWS CloudFormation 堆疊」動作 YAML 定義

Name: codecatalyst-lamda-invoke-workflow SchemaVersion: 1.0 Triggers: - Type: PUSH Branches: - main Actions: LambdaNotify: Identifier: aws/lambda-invoke@v1 Environment: Name: my-production-environment Connections: - Name: my-aws-account Role: codecatalyst-lambda-invoke-role Inputs: Sources: - WorkflowSource Configuration: Function: Notify-Start AWSRegion: us-west-2 Deploy: Identifier: aws/cfn-deploy@v1 Environment: Name: my-production-environment Connections: - Name: my-aws-account Role: codecatalyst-deploy-role Inputs: Sources: - WorkflowSource Configuration: name: my-application-stack region: us-west-2 role-arn: arn:aws:iam::111122223333:role/StackRole template: ./cfn-template.yml capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND