Kelola AWS CodeBuild dibangun dengan Step Functions - AWS Step Functions

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kelola AWS CodeBuild dibangun dengan Step Functions

Anda dapat mengintegrasikan Step Functions dengan AWS CodeBuild untuk memulai, menghentikan, dan mengelola build. Halaman ini mencantumkan dukungan yang dapat CodeBuild APIs Anda gunakan dengan Step Functions.

Untuk belajar tentang berintegrasi dengan AWS servicesin Step Functions, lihat Integrasi layanan dan. Meneruskan parameter ke layanan API di Step Functions

Dengan integrasi Step Functions dengan AWS CodeBuild Anda dapat menggunakan Step Functions untuk memicu, menghentikan, dan mengelola build, dan berbagi laporan build. Menggunakan Step Functions, Anda dapat merancang dan menjalankan alur integrasi berkesinambungan untuk memvalidasi perubahan perangkat lunak Anda untuk aplikasi.

Fitur utama dari CodeBuild integrasi yang dioptimalkan
  • Pola Jalankan Tugas (.sync) integrasi didukung.

  • Setelah Anda memanggil StopBuild atauStopBuildBatch, kumpulan build atau build tidak segera dapat dihapus hingga beberapa pekerjaan internal selesai di dalam CodeBuild untuk menyelesaikan status build atau build.

    Jika Anda mencoba menggunakan BatchDeleteBuilds atau DeleteBuildBatch selama periode ini, kumpulan build atau build mungkin tidak dihapus.

    Integrasi layanan yang dioptimalkan untuk BatchDeleteBuilds dan DeleteBuildBatch menyertakan percobaan ulang internal untuk menyederhanakan kasus penggunaan penghapusan segera setelah berhenti.

Tidak semua APIs mendukung semua pola integrasi, seperti yang ditunjukkan pada tabel berikut.

API Respons Permintaan Jalankan Tugas (.sync)
StartBuild Didukung Didukung
StopBuild Didukung Tidak didukung
BatchDeleteBuilds Didukung Tidak didukung
BatchGetReports Didukung Tidak didukung
StartBuildBatch Didukung Didukung
StopBuildBatch Didukung Tidak didukung
RetryBuildBatch Didukung Didukung
DeleteBuildBatch Didukung Tidak didukung
Parameter di Step Functions dinyatakan dalam PascalCase

Bahkan jika layanan asli API adacamelCase, misalnya API tindakanstartSyncExecution, Anda menentukan parameter di PascalCase, seperti:StateMachineArn.

Didukung CodeBuild APIs

catatan

Anda dapat menggunakan keturunan rekursif JSONPath (..) operator untuk BatchDeleteBuilds. Dengan array yang dikembalikan, Anda dapat mengubah Arn bidang dari StartBuild menjadi Ids parameter jamak, seperti yang ditunjukkan pada contoh berikut.

"BatchDeleteBuilds": { "Type": "Task", "Resource": "arn:aws:states:::codebuild:batchDeleteBuilds", "Parameters": { "Ids.$": "$.Build..Arn" }, "Next": "MyNextState" },

IAMkebijakan untuk menelepon AWS CodeBuild

Contoh template berikut menunjukkan bagaimana AWS Step Functions menghasilkan IAM kebijakan berdasarkan sumber daya dalam definisi mesin negara Anda. Untuk informasi selengkapnya, silakan lihat Bagaimana Step Functions menghasilkan IAM kebijakan untuk layanan terintegrasi dan Temukan pola integrasi layanan di Step Functions.

Sumber Daya:

{ "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

Sumber daya statis

Run a Job (.sync)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:BatchGetBuilds" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventForCodeBuildStartBuildRule" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] } ] }

Sumber daya dinamis

Run a Job (.sync)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:BatchGetBuilds" ], "Resource": [ "arn:aws:codebuild:[[region]]:*:project/*" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventForCodeBuildStartBuildRule" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild" ], "Resource": [ "arn:aws:codebuild:[[region]]:*:project/*" ] } ] }

StopBuild

Sumber daya statis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StopBuild" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] } ] }

Sumber daya dinamis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StopBuild" ], "Resource": [ "arn:aws:codebuild:[[region]]:*:project/*" ] } ] }

BatchDeleteBuilds

Sumber daya statis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:BatchDeleteBuilds" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] } ] }

Sumber daya dinamis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:BatchDeleteBuilds" ], "Resource": [ "arn:aws:codebuild:[[region]]:*:project/*" ] } ] }

BatchGetReports

Sumber daya statis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:BatchGetReports" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:report-group/[[reportName]]" ] } ] }

Sumber daya dinamis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:BatchGetReports" ], "Resource": [ "arn:aws:codebuild:[[region]]:*:report-group/*" ] } ] }

StartBuildBatch

Sumber daya statis

Run a Job (.sync)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "codebuild:BatchGetBuildBatches" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventForCodeBuildStartBuildBatchRule" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuildBatch" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] } ] }

Sumber daya dinamis

Run a Job (.sync)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "codebuild:BatchGetBuildBatches" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/*" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventForCodeBuildStartBuildBatchRule" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuildBatch" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/*" ] } ] }

StopBuildBatch

Sumber daya statis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StopBuildBatch" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] } ] }

Sumber daya dinamis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StopBuildBatch" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/*" ] } ] }

RetryBuildBatch

Sumber daya statis

Run a Job (.sync)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:RetryBuildBatch", "codebuild:StopBuildBatch", "codebuild:BatchGetBuildBatches" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:RetryBuildBatch" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] } ] }

Sumber daya dinamis

Run a Job (.sync)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:RetryBuildBatch", "codebuild:StopBuildBatch", "codebuild:BatchGetBuildBatches" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/*" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:RetryBuildBatch" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/*" ] } ] }

DeleteBuildBatch

Sumber daya statis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:DeleteBuildBatch" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/[[projectName]]" ] } ] }

Sumber daya dinamis

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:DeleteBuildBatch" ], "Resource": [ "arn:aws:codebuild:[[region]]:[[accountId]]:project/*" ] } ] }