範例:叫用 Lambda 函數 - Amazon CodeCatalyst

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

範例:叫用 Lambda 函數

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

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

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

  • 部署 AWS CloudFormation 堆疊動作 (Deploy) – 完成AWS Lambda 調用動作時,部署 AWS CloudFormation 堆疊動作會執行範本 (cfn-template.yml) 來部署應用程式堆疊。如需部署 AWS CloudFormation 堆疊動作的詳細資訊,請參閱部署 AWS CloudFormation 堆疊

注意

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

注意

在後續的 YAML 程式碼中,您可以視需要省略這些Connections:區段。如果您省略這些區段,您必須確保環境中預設 IAM 角色欄位中指定的角色包含AWS Lambda 叫用部署 AWS CloudFormation 堆疊動作所需的許可和信任政策。如需使用預設 IAM 角色設定環境的詳細資訊,請參閱 建立環境。如需AWS Lambda 叫用部署 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