本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Step Functions 管理 AWS CodeBuild 組建
您可以將 Step Functions 與 整合, AWS CodeBuild 以啟動、停止和管理組建。此頁面列出您可以搭配 Step Functions 使用的支援 CodeBuild APIs。
若要了解如何在 Step Functions 中整合 AWS 服務,請參閱 整合 服務和 在 Step Functions 中將參數傳遞至服務 API。
透過 Step Functions 與 整合 AWS CodeBuild ,您可以使用 Step Functions 來觸發、停止和管理組建,以及共用組建報告。使用 Step Functions,您可以設計和執行持續整合管道,以驗證應用程式的軟體變更。
Optimized CodeBuild 整合的主要功能
-
支援執行任務 (.sync)整合模式。
-
呼叫
StopBuild
或 後StopBuildBatch
,在 CodeBuild 內完成一些內部工作以完成組建或組建的狀態之前,組建或組建批次無法立即刪除。如果您嘗試
DeleteBuildBatch
在此期間使用BatchDeleteBuilds
或 ,則可能不會刪除組建或組建批次。BatchDeleteBuilds
和 的最佳化服務整合DeleteBuildBatch
包含內部重試,以簡化在停止後立即刪除的使用案例。
並非所有 API 都支援所有整合模式,如下表所示:
API | 請求回應 | 執行任務 (.sync) |
---|---|---|
StartBuild | 支援 | 支援 |
StopBuild | 支援 | 不支援 |
BatchDeleteBuilds | 支援 | 不支援 |
BatchGetReports | 支援 | 不支援 |
StartBuildBatch | 支援 | 支援 |
StopBuildBatch | 支援 | 不支援 |
RetryBuildBatch | 支援 | 支援 |
DeleteBuildBatch | 支援 | 不支援 |
中的參數Step Functions以 PascalCase 表示
即使原生服務 API 位於 camelCase 中,例如 API 動作 startSyncExecution
,您也可以在 PascalCase 中指定參數,例如:StateMachineArn
。
最佳化 CodeBuild APIs
注意
使用 JSONPath 時,您可以使用遞迴下降運算子 (..
) 來提供 的參數BatchDeleteBuilds
。使用傳回的陣列,您可以將 Arn
欄位從 StartBuild
轉換為複數Ids
參數,如下列範例所示。
"BatchDeleteBuilds": {
"Type": "Task",
"Resource": "arn:aws:states:::codebuild:batchDeleteBuilds",
"Arguments": {
"Ids.$": "$.Build..
Arn"
},
"Next": "MyNextState"
},
用於呼叫 的 IAM 政策 AWS CodeBuild
下列範例範本顯示 如何根據狀態機器定義中的資源 AWS 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:
us-east-1
:123456789012
:project/" ] } ] }
myProjectName
動態資源
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StopBuild" ], "Resource": [ "arn:aws:codebuild:
us-east-1
:*:project/*" ] } ] }
BatchDeleteBuilds
靜態資源
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:BatchDeleteBuilds" ], "Resource": [ "arn:aws:codebuild:
us-east-1
:123456789012
:project/myProjectName
" ] } ] }
動態資源
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:BatchDeleteBuilds" ], "Resource": [ "arn:aws:codebuild:
us-east-1
:*:project/*" ] } ] }
BatchGetReports
靜態資源
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:BatchGetReports" ], "Resource": [ "arn:aws:codebuild:
us-east-1
:123456789012
:report-group/myReportName" ] } ] }
動態資源
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:BatchGetReports" ], "Resource": [ "arn:aws:codebuild:
us-east-1
:*:report-group/*" ] } ] }
StartBuildBatch
靜態資源
動態資源
StopBuildBatch
靜態資源
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StopBuildBatch" ], "Resource": [ "arn:aws:codebuild:
us-east-1
:123456789012
:project/myProjectName
" ] } ] }
動態資源
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StopBuildBatch" ], "Resource": [ "arn:aws:codebuild:
us-east-1
:123456789012
:project/*" ] } ] }
RetryBuildBatch
靜態資源
動態資源
DeleteBuildBatch
靜態資源
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:DeleteBuildBatch" ], "Resource": [ "arn:aws:codebuild:
us-east-1
:123456789012
:project/myProjectName
" ] } ] }
動態資源
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:DeleteBuildBatch" ], "Resource": [ "arn:aws:codebuild:
us-east-1
:123456789012
:project/*" ] } ] }