示例:调用 Lambda 函数 - Amazon CodeCatalyst

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

示例:调用 Lambda 函数

以下示例工作流包括AWS Lambda 调用操作和部署操作。该工作流程会发出 Slack 通知,表明部署已开始,然后 AWS 使用模板部署应用程序。 AWS CloudFormation 该工作流由以下按顺序运行的构建块组成:

  • 触发器-当您将更改推送到源存储库时,此触发器会自动启动工作流程运行。有关触发器的更多信息,请参阅启动工作流程使用触发器自动运行

  • AWS Lambda 调用操作 (LambdaNotify)-触发后,此操作将调用指定 AWS 账户和区域(my-aws-account、和)中的 Notify-Start Lambda 函数。us-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