本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Step Amazon CodeBuild Functions 管理构建
您可以将 Step Functi Amazon CodeBuild ons 与集成,以启动、停止和管理构建。本页列出了 CodeBuild APIs可以与 Step Functions 配合使用的支持功能。
要了解如何在 Step Functions 中与 Amazon 服务集成,请参阅集成 服务和在 Step Functions API 中向服务传递参数。
通过与 Step Functions 的集成, Amazon CodeBuild 你可以使用 Step Functions 来触发、停止和管理构建,以及共享生成报告。使用 Step Functions,您可以设计和运行持续的集成管道,以验证应用程序的软件更改。
优化 CodeBuild 集成的关键功能
-
支持运行作业 (.sync) 集成模式。
-
调用
StopBuild
或后StopBuildBatch
,只有在内部完成一些内部工作 CodeBuild 以最终确定一个或多个生成状态后,才能立即删除生成或生成批次。如果您在此期间尝试使用
BatchDeleteBuilds
或DeleteBuildBatch
,则可能无法删除构建或构建批处理。BatchDeleteBuilds
和DeleteBuildBatch
的优化服务集成包括内部重试,以简化停止后立即删除的用例。
并非所有集成模式都APIs支持所有集成模式,如下表所示。
API | 请求响应 | 运行作业 (.sync) |
---|---|---|
StartBuild | 支持 | 支持 |
StopBuild | 支持 | 不支持 |
BatchDeleteBuilds | 支持 | 不支持 |
BatchGetReports | 支持 | 不支持 |
StartBuildBatch | 支持 | 支持 |
StopBuildBatch | 支持 | 不支持 |
RetryBuildBatch | 支持 | 支持 |
DeleteBuildBatch | 支持 | 不支持 |
中的参数 Step Functions 表示为 PascalCase
即使原生服务API已在camelCase(例如API操作)中startSyncExecution
,您也可以在中指定参数 PascalCase,例如:StateMachineArn
。
支持 CodeBuild APIs
-
-
支持的参数:
-
-
-
支持的参数:
-
注意
您可以对 BatchDeleteBuilds
使用 JSONPath
递归下降 (..
) 运算符。借助返回的数组,可以将 Arn
字段从 StartBuild
转换为复数 Ids
参数,如以下示例所示。
"BatchDeleteBuilds": {
"Type": "Task",
"Resource": "arn:aws:states:::codebuild:batchDeleteBuilds",
"Parameters": {
"Ids.$": "$.Build..
Arn"
},
"Next": "MyNextState"
},
IAM通话政策 Amazon CodeBuild
以下示例模板显示了如何根据状态机定义中的资源 Amazon Step Functions 生成IAM策略。有关更多信息,请参阅Step Functions 如何为集成服务生成 IAM 策略 和探索 Step Functions 中的服务集成模式。
资源:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"sns:Publish"
],
"Resource": [
"arn:aws:sns:sa-east-1:123456789012:StepFunctionsSample-CodeBuildExecution1111-2222-3333-wJalrXUtnFEMI-SNSTopic-bPxRfiCYEXAMPLEKEY"
],
"Effect": "Allow"
},
{
"Action": [
"codebuild:StartBuild",
"codebuild:StopBuild",
"codebuild:BatchGetBuilds",
"codebuild:BatchGetReports"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:sa-east-1:123456789012:rule/StepFunctionsGetEventForCodeBuildStartBuildRule"
],
"Effect": "Allow"
}
]
}
StartBuild
静态资源
动态资源
StopBuild
静态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:StopBuild"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:[[accountId]]
:project/[[projectName]]
"
]
}
]
}
动态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:StopBuild"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:*:project/*"
]
}
]
}
BatchDeleteBuilds
静态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:BatchDeleteBuilds"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:[[accountId]]
:project/[[projectName]]
"
]
}
]
}
动态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:BatchDeleteBuilds"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:*:project/*"
]
}
]
}
BatchGetReports
静态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:BatchGetReports"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:[[accountId]]
:report-group/[[reportName]]
"
]
}
]
}
动态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:BatchGetReports"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:*:report-group/*"
]
}
]
}
StartBuildBatch
静态资源
动态资源
StopBuildBatch
静态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:StopBuildBatch"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:[[accountId]]
:project/[[projectName]]
"
]
}
]
}
动态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:StopBuildBatch"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:[[accountId]]
:project/*"
]
}
]
}
RetryBuildBatch
静态资源
动态资源
DeleteBuildBatch
静态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:DeleteBuildBatch"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:[[accountId]]
:project/[[projectName]]
"
]
}
]
}
动态资源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codebuild:DeleteBuildBatch"
],
"Resource": [
"arn:aws:codebuild:[[region]]
:[[accountId]]
:project/*"
]
}
]
}