本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Step Functions 管理 AWS CodeBuild 組建
您可以將 Step Functions 與 整合, AWS CodeBuild 以啟動、停止和管理組建。此頁面列出 CodeBuild APIs您可以與 Step Functions 搭配使用的支援。
若要了解如何在 Step Functions 中整合 AWS 服務,請參閱 整合 服務和 將參數傳遞至 Step Functions API中的服務。
透過 Step Functions 與 整合 AWS CodeBuild ,您可以使用 Step Functions 來觸發、停止和管理組建,以及共用組建報告。使用 Step Functions,您可以設計和執行持續整合管道,以驗證應用程式的軟體變更。
Optimized CodeBuild Integration 的主要功能
-
支援執行任務 (.sync)整合模式。
-
在您呼叫
StopBuild
或 之後StopBuildBatch
,在 內完成一些內部工作 CodeBuild 以完成建置或建置的狀態之前,建置或建置批次將無法立即刪除。如果您嘗試
DeleteBuildBatch
在此期間使用BatchDeleteBuilds
或 ,則可能不會刪除組建或組建批次。BatchDeleteBuilds
和 的最佳化服務整合DeleteBuildBatch
包含內部重試,以簡化在停止後立即刪除的使用案例。
並非所有 都APIs支援所有整合模式,如下表所示。
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",
"Parameters": {
"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:[[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/*"
]
}
]
}