本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
构建Amazon CodeBuild项目 (CodeBuild,Amazon SNS)
此示例项目演示如何使用Amazon Step Functions构建Amazon CodeBuild项目、运行测试,然后发送 Amazon SNS 通知。
创建状态机并预置资源
-
打开Step Functions 控制台
,然后选择创建状态机. -
选择示例项目,然后选择启动CodeBuild构建.
此时将显示状态机 Code (代码) 和 Visual Workflow (可视工作流程)。
-
请选择 Next (下一步)。
此时将显示 Deploy resources (部署资源) 页面,其中列出了将创建的资源。对于本示例项目,资源包括:
-
CodeBuild 项目
-
一个 Amazon SNS 主题
-
-
选择 Deploy Resources (部署资源)。
注意 创建这些资源和相关 IAM 权限可能需要长达 10 分钟的时间。当显示 Deploy resources (部署资源) 页面时,您可打开 Stack ID (堆栈 ID) 链接以查看正在预置的资源。
启动新的执行
-
在 New execution 页面上,输入执行名称 (可选),然后选择 Start Execution (开始执行)。
(可选)要识别您的执行,您可以在名称。默认情况下,Step Functions 会自动生成唯一的执行名称。
注意 Step Functions 允许您创建包含非 ASCII 字符的状态机、执行和活动名称。这些非 ASCII 名称不适用于亚马逊CloudWatch. 为了确保你可以跟踪CloudWatch指标,请选择仅使用 ASCII 字符的名称。
-
(可选)转到 Step Functions (Step Functions) 上新创建的状态机控制面板,然后选择启动执行.
-
执行完成后,选择可视工作流,然后浏览输入和输出下步骤详情.
示例状态机代码
此示例项目中的状态机与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 与其他配置一起使用时如何配置 IAM 的信息Amazon服务,请参阅集成服务的 IAM 政策.