建一个Amazon CodeBuild项目 (CodeBuild,Amazon SNS) - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

建一个Amazon CodeBuild项目 (CodeBuild,Amazon SNS)

此示例项目演示了如何使用Amazon Step Functions建一个Amazon CodeBuild项目,运行测试,然后发送 Amazon SNS通知。

步骤 1:创建状态机并配置资源

  1. 打开Step Function 控制台然后选择创建状态机

  2. 类型Start a CodeBuild build在搜索框中,选择开始一个 CodeBuild 构建从返回的搜索结果中。

  3. 选择 Next(下一步)以继续。

  4. Step Functions 列出了Amazon Web Services在您选择的示例项目中使用。它还显示了示例项目的工作流程图。将此项目部署到你的Amazon Web Services 账户或者使用它作为构建自己的项目的起点。根据您想要的操作方式,选择运行演示要么在此基础上再接再厉

    此示例项目部署了以下资源:

    • 一个Amazon CodeBuild构建

    • 一个 Amazon SNS 主题

    • Amazon Step Functions 状态机

    • 相关Amazon Identity and Access Management(IAM) 角色

    下图显示了的工作流程图开始一个 CodeBuild 构建示例项目:

    
                        的工作流程图开始一个 CodeBuild 构建示例项目。
  5. 选择使用模板继续进行选择。

  6. 请执行下列操作之一:

    • 如果你选择了在此基础上再接再厉,Step Functions 会为您选择的示例项目创建工作流程原型。Step Functions 不会部署工作流程定义中列出的资源。

      在工作流工作室中设计模式,从中拖放状态States 浏览器继续构建您的工作流程原型。或者切换到代码模式它提供了一个类似于 VS Code 的集成代码编辑器,用于更新Amazon States Language(ASL) 在 Step Functions 控制台中定义状态机。有关使用 Workflow Studio 构建状态机的更多信息,请参阅使用工作流工作室

      重要

      记得在您之前更新示例项目中使用的资源名称(ARN)。运行你的工作流程

    • 如果你选择了运行演示,Step Functions 创建了一个只读的示例项目,该项目使用Amazon CloudFormation用于部署的模板Amazon该模板中列出的资源给你的Amazon Web Services 账户。

      提示

      要查看示例项目的状态机定义,请选择代码

      准备好后,选择部署并运行部署示例项目并创建资源。

      创建这些资源和 IAM 权限最长可能需要 10 分钟。在部署资源时,您可以打开 CloudFormation 堆栈 ID 链接,用于查看正在配置哪些资源。

      创建示例项目中的所有资源后,您可以看到新示例项目列在状态机页。

      重要

      使用的 Amazon Source Name CloudFormation 模板。

第 2 步:运行状态机

  1. 状态机页面上,选择您的示例项目。

  2. 在示例项目页面上,选择开始执行

  3. 开始执行对话框中,执行以下操作:

    1. (可选)要识别您的执行,可以在中为其指定一个名称姓名盒子。默认情况下,Step Functions 会自动生成一个唯一的执行名称。

      注意

      Step Functions 允许您创建包含非 ASCII 字符的状态机、执行和活动名称。这些非 ASCII 名称不适用于亚马逊 CloudWatch。为了确保你可以追踪 CloudWatch 指标,请选择一个仅使用 ASCII 字符的名称。

    2. (可选)在输入框中,输入 JSON 格式的输入值以运行您的工作流程。

      如果你选择运行演示,您无需提供任何执行输入。

      注意

      如果您部署的演示项目包含预先填充的执行输入数据,请使用该输入来运行状态机。

    3. 选择 Start execution (开始执行)

    4. Step Functions 控制台会将你引导到标题为你的执行 ID 的页面。这个页面被称为执行细节页。在此页面上,您可以随着执行的进展或执行完成后查看执行结果。

      要查看执行结果,请在上选择各个状态图表视图,然后,选择上的各个选项卡步骤详情窗格可分别查看每个状态的详细信息,包括输入、输出和定义。有关执行信息的详细信息,您可以在执行细节页面,请参阅执行详细信息页面-界面概述

示例状态机代码

此示例项目中的状态机集成了 CodeBuild 和 Amazon SNS。

浏览此示例状态机,了解 Step Functions 如何使用状态机来构建 CodeBuild 项目,然后发送一个 Amazon SNS 主题,其中包含一条关于任务成功还是失败的消息。

有关 Step Functions 如何控制其他Amazon服务,请参阅将 Amazon Step Functions 与其他服务一起使用

{ "Comment": "An example of using CodeBuild to run tests, get test results and send a notification.", "StartAt": "Trigger CodeBuild Build", "States": { "Trigger CodeBuild Build": { "Type": "Task", "Resource": "arn:aws:states:::codebuild:startBuild.sync", "Parameters": { "ProjectName": "CodeBuildProject-Dtw1jBhEYGDf" }, "Next": "Get Test Results" }, "Get Test Results": { "Type": "Task", "Resource": "arn:aws:states:::codebuild:batchGetReports", "Parameters": { "ReportArns.$": "$.Build.ReportArns" }, "Next": "All Tests Passed?" }, "All Tests Passed?": { "Type": "Choice", "Choices": [ { "Variable": "$.Reports[0].Status", "StringEquals": "SUCCEEDED", "Next": "Notify Success" } ], "Default": "Notify Failure" }, "Notify Success": { "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "Message": "CodeBuild build tests succeeded", "TopicArn": "arn:aws:sns:sa-east-1:123456789012:StepFunctionsSample-CodeBuildExecution3da9ead6-bc1f-4441-99ac-591c140019c4-SNSTopic-EVYLVNGW85JP" }, "End": true }, "Notify Failure": { "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "Message": "CodeBuild build tests failed", "TopicArn": "arn:aws:sns:sa-east-1:123456789012:StepFunctionsSample-CodeBuildExecution3da9ead6-bc1f-4441-99ac-591c140019c4-SNSTopic-EVYLVNGW85JP" }, "End": true } } }

有关将 Step Functions 与其他函数一起使用时如何配置 IAMAmazon服务,请参阅集成服务的 IAM 政策