Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat proyek build di AWS CodeBuild
Anda dapat menggunakan AWS CodeBuild konsol, AWS CLI, atau AWS SDKs untuk membuat proyek build.
Topik
Prasyarat
Sebelum membuat proyek build, jawab pertanyaan diRencanakan pembangunan.
Buat proyek build (konsol)
Buka AWS CodeBuild konsol di https://console.aws.amazon.com/codesuite/codebuild/home
Jika halaman CodeBuild informasi ditampilkan, pilih Buat proyek build. Jika tidak, pada panel navigasi, perluas Build, pilih Build projects, lalu pilih Create build project.
Pilih Buat proyek build.
Isi bagian berikut. Setelah selesai, pilih Buat proyek build di bagian bawah halaman.
Konfigurasi proyek
- Nama proyek
-
Masukkan nama untuk proyek build ini. Membangun nama proyek harus unik di setiap AWS akun.
- Deskripsi
-
Masukkan deskripsi opsional proyek build untuk membantu pengguna lain memahami untuk apa proyek ini digunakan.
- Membangun lencana
-
(Opsional) Pilih Aktifkan lencana build untuk membuat status build proyek Anda terlihat dan dapat disematkan. Untuk informasi selengkapnya, lihat Membangun sampel lencana.
catatan
Build badge tidak berlaku jika penyedia sumber Anda adalah Amazon S3.
- Aktifkan batas build bersamaan
-
(Opsional) Jika Anda ingin membatasi jumlah build bersamaan untuk proyek ini, lakukan langkah-langkah berikut:
-
Pilih Batasi jumlah build bersamaan yang dapat dimulai proyek ini.
-
Dalam batas build bersamaan, masukkan jumlah maksimum build bersamaan yang diizinkan untuk project ini. Batas ini tidak boleh lebih besar dari batas build bersamaan yang ditetapkan untuk akun. Jika Anda mencoba memasukkan angka yang lebih besar dari batas akun, pesan kesalahan akan ditampilkan.
Pembuatan baru hanya dimulai jika jumlah pembuatan saat ini kurang dari atau sama dengan batas ini. Jika jumlah pembuatan saat ini memenuhi batas ini, pembuatan baru ditutup dan tidak dijalankan.
-
- Informasi tambahan
-
(Opsional) Untuk Tag, masukkan nama dan nilai tag apa pun yang ingin digunakan AWS layanan pendukung. Gunakan Tambah baris untuk menambahkan tag. Anda dapat menambahkan hingga 50 tanda.
Sumber
- Penyedia sumber
-
Pilih jenis penyedia kode sumber. Gunakan daftar berikut untuk membuat pilihan yang sesuai untuk penyedia sumber Anda:
catatan
CodeBuild tidak mendukung Bitbucket Server.
Environment
- Model penyediaan
-
Lakukan salah satu hal berikut ini:
-
Untuk menggunakan armada sesuai permintaan yang dikelola oleh AWS CodeBuild, pilih On-Demand. Dengan armada sesuai permintaan, CodeBuild menyediakan komputasi untuk build Anda. Mesin-mesin dihancurkan saat build selesai. Armada sesuai permintaan dikelola sepenuhnya, dan mencakup kemampuan penskalaan otomatis untuk menangani lonjakan permintaan.
-
Untuk menggunakan armada kapasitas cadangan yang dikelola oleh AWS CodeBuild, pilih Kapasitas cadangan, lalu pilih nama Armada. Dengan armada kapasitas cadangan, Anda mengonfigurasi satu set instans khusus untuk lingkungan build Anda. Mesin ini tetap menganggur, siap untuk memproses build atau pengujian segera dan mengurangi durasi build. Dengan armada kapasitas cadangan, mesin Anda selalu berjalan dan akan terus mengeluarkan biaya selama disediakan.
Untuk informasi, lihat Jalankan build di atas armada kapasitas cadangan.
-
- Citra lingkungan
-
Lakukan salah satu hal berikut ini:
-
Untuk menggunakan image Docker yang dikelola oleh AWS CodeBuild, pilih Managed image, lalu buat pilihan dari Sistem operasi, Runtime, Image, dan versi Image. Buat pilihan dari jenis Lingkungan jika tersedia.
-
Untuk menggunakan gambar Docker lain, pilih Custom image. Untuk jenis Lingkungan, pilih ARM, Linux, Linux GPU, atau Windows. Jika Anda memilih Registri lain, untuk registri Eksternal URL, masukkan nama dan tag gambar Docker di Docker Hub, menggunakan format.
Jika Anda memilih Amazon ECR, gunakan ECRrepositori Amazon dan ECRgambar Amazon untuk memilih gambar Docker di akun Anda. AWSdocker repository
/docker image name
-
Untuk menggunakan image Docker pribadi, pilih Custom image. Untuk jenis Lingkungan, pilih ARM, Linux, Linux GPU, atau Windows. Untuk registri Image, pilih Registri lain, lalu masukkan ARN kredensi untuk image Docker pribadi Anda. Kredensialnya harus dibuat oleh Secrets Manager. Untuk informasi lebih lanjut, lihat Apa itu AWS Secrets Manager? di Panduan Pengguna AWS Secrets Manager .
catatan
CodeBuild mengganti
ENTRYPOINT
untuk gambar Docker khusus. -
- Hitung
-
Lakukan salah satu hal berikut ini:
-
Untuk menggunakan EC2 komputasi, pilih EC2. EC2komputasi menawarkan fleksibilitas yang dioptimalkan selama tindakan berjalan.
-
Untuk menggunakan komputasi Lambda, pilih Lambda. Lambda compute menawarkan kecepatan start-up yang dioptimalkan untuk build Anda. Lambda mendukung build yang lebih cepat karena latensi start-up yang lebih rendah. Lambda juga secara otomatis menskalakan, jadi build tidak menunggu dalam antrian untuk dijalankan. Untuk informasi, lihat Jalankan build pada komputasi AWS Lambda.
-
- Peran layanan
Lakukan salah satu hal berikut ini:
-
Jika Anda tidak memiliki peran CodeBuild layanan, pilih Peran layanan baru. Di Nama peran, masukkan nama untuk peran baru.
-
Jika Anda memiliki peran CodeBuild layanan, pilih Peran layanan yang ada. Dalam Peran ARN, pilih peran layanan.
catatan
Saat menggunakan konsol untuk membuat proyek build, Anda dapat membuat peran CodeBuild layanan secara bersamaan. Secara default, peran hanya berfungsi dengan proyek build tersebut. Jika Anda menggunakan konsol untuk mengaitkan peran layanan ini dengan proyek build lain, peran akan diperbarui agar berfungsi dengan proyek build lainnya. Peran layanan dapat bekerja dengan hingga 10 proyek pembangunan.
-
- Konfigurasi tambahan
-
- Batas coba ulang otomatis
-
Tentukan jumlah percobaan ulang otomatis tambahan setelah build gagal. Misalnya, jika batas coba ulang otomatis disetel ke 2, CodeBuild akan memanggil
RetryBuild
API untuk secara otomatis mencoba ulang build Anda hingga 2 kali tambahan. - Batas waktu
-
Tentukan nilai, antara 5 menit dan 36 jam, setelah itu CodeBuild menghentikan build jika tidak selesai. Jika jam dan menit dibiarkan kosong, nilai default 60 menit digunakan.
- Diistimewakan
-
(Opsional) Pilih Aktifkan bendera ini jika Anda ingin membuat gambar Docker atau ingin build Anda mendapatkan hak istimewa yang ditingkatkan hanya jika Anda berencana menggunakan proyek build ini untuk membuat gambar Docker. Jika tidak, semua build terkait yang mencoba berinteraksi dengan daemon Docker gagal. Anda juga harus memulai daemon Docker sehingga build Anda dapat berinteraksi dengannya. Salah satu cara untuk melakukannya adalah dengan menginisialisasi daemon Docker di
install
fase spesifikasi build Anda dengan menjalankan perintah build berikut. Jangan jalankan perintah ini jika Anda memilih image lingkungan build yang disediakan oleh CodeBuild dukungan Docker.catatan
Secara default, daemon Docker diaktifkan untuk non-build. VPC Jika Anda ingin menggunakan kontainer Docker untuk VPC build, lihat Runtime Privilege dan Kemampuan Linux
di situs web Docker Docs dan aktifkan mode istimewa. Juga, Windows tidak mendukung mode istimewa. - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
- VPC
Jika Anda CodeBuild ingin bekerja denganVPC:
-
Untuk VPC, pilih VPC ID yang CodeBuild menggunakan.
-
Untuk VPCSubnet, pilih subnet yang menyertakan sumber daya yang CodeBuild digunakan.
-
Untuk grup VPC Keamanan, pilih grup keamanan yang CodeBuild digunakan untuk mengizinkan akses ke sumber daya diVPCs.
Untuk informasi selengkapnya, lihat Gunakan AWS CodeBuild dengan Amazon Virtual Private Cloud.
-
- Hitung
-
Pilih salah satu opsi yang tersedia.
- Variabel lingkungan
-
Masukkan nama dan nilai, lalu pilih jenis setiap variabel lingkungan untuk build yang akan digunakan.
catatan
CodeBuild menetapkan variabel lingkungan untuk AWS Wilayah Anda secara otomatis. Anda harus menyetel variabel lingkungan berikut jika Anda belum menambahkannya ke buildspec.ymlmu:
-
AWS_ACCOUNT_ID
-
IMAGE_REPO_NAME
-
IMAGE_TAG
Konsol dan AWS CLI pengguna dapat melihat variabel lingkungan. Jika Anda tidak memiliki kekhawatiran tentang visibilitas variabel lingkungan Anda, atur bidang Nama dan Nilai, lalu setel Type ke Plaintext.
Kami menyarankan Anda menyimpan variabel lingkungan dengan nilai sensitif, seperti ID kunci AWS akses, kunci akses AWS rahasia, atau kata sandi sebagai parameter di Amazon EC2 Systems Manager Parameter Store atau AWS Secrets Manager.
Jika Anda menggunakan Amazon EC2 Systems Manager Parameter Store, lalu untuk Type, pilih Parameter. Untuk Nama, masukkan pengenal CodeBuild untuk referensi. Untuk Nilai, masukkan nama parameter seperti yang disimpan di Amazon EC2 Systems Manager Parameter Store. Menggunakan parameter bernama
/CodeBuild/dockerLoginPassword
sebagai contoh, untuk Type, pilih Parameter. Untuk Nama, masukkanLOGIN_PASSWORD
. Untuk Nilai, masukkan/CodeBuild/dockerLoginPassword
.penting
Jika Anda menggunakan Amazon EC2 Systems Manager Parameter Store, kami sarankan Anda menyimpan parameter dengan nama parameter yang dimulai dengan
/CodeBuild/
(misalnya,/CodeBuild/dockerLoginPassword
). Anda dapat menggunakan CodeBuild konsol untuk membuat parameter di Amazon EC2 Systems Manager. Pilih Buat parameter, lalu ikuti instruksi di kotak dialog. (Di kotak dialog itu, untuk KMSkunci, Anda dapat menentukan AWS KMS kunci di akun Anda. ARN Amazon EC2 Systems Manager menggunakan kunci ini untuk mengenkripsi nilai parameter selama penyimpanan dan mendekripsi selama pengambilan.) Jika Anda menggunakan CodeBuild konsol untuk membuat parameter, konsol memulai nama parameter dengan/CodeBuild/
saat sedang disimpan. Untuk informasi selengkapnya, lihat Systems Manager Parameter Store dan Systems Manager Parameter Store Console Walkthrough di Panduan Pengguna Amazon EC2 Systems Manager.Jika project build Anda mengacu pada parameter yang disimpan di Amazon EC2 Systems Manager Parameter Store, peran layanan project build harus mengizinkan
ssm:GetParameters
tindakan tersebut. Jika Anda memilih Peran layanan baru lebih awal, CodeBuild sertakan tindakan ini dalam peran layanan default untuk proyek build Anda. Namun, jika Anda memilih Peran layanan yang ada, Anda harus menyertakan tindakan ini ke peran layanan secara terpisah.Jika project build Anda merujuk ke parameter yang disimpan di Amazon EC2 Systems Manager Parameter Store dengan nama parameter yang tidak dimulai
/CodeBuild/
, dan Anda memilih Peran layanan baru, Anda harus memperbarui peran layanan tersebut untuk mengizinkan akses ke nama parameter yang tidak dimulai/CodeBuild/
. Ini karena peran layanan itu memungkinkan akses hanya ke nama parameter yang dimulai dengan/CodeBuild/
.Jika Anda memilih Peran layanan baru, peran layanan menyertakan izin untuk mendekripsi semua parameter di bawah
/CodeBuild/
namespace di Amazon EC2 Systems Manager Parameter Store.Variabel lingkungan yang Anda tetapkan menggantikan variabel lingkungan yang ada. Misalnya, jika image Docker sudah berisi variabel lingkungan bernama
MY_VAR
dengan nilaimy_value
, dan Anda menetapkan variabel lingkungan bernamaMY_VAR
dengan nilaiother_value
,my_value
maka diganti denganother_value
. Demikian pula, jika image Docker sudah berisi variabel lingkungan bernamaPATH
dengan nilai/usr/local/sbin:/usr/local/bin
, dan Anda menetapkan variabel lingkungan bernamaPATH
dengan nilai$PATH:/usr/share/ant/bin
,/usr/local/sbin:/usr/local/bin
maka digantikan oleh nilai$PATH:/usr/share/ant/bin
literal.Jangan mengatur variabel lingkungan apa pun dengan nama yang dimulai dengan
CODEBUILD_
. Awalan ini dicadangkan untuk penggunaan internal .Jika variabel lingkungan dengan nama yang sama didefinisikan di beberapa tempat, nilainya ditentukan sebagai berikut:
-
Nilai dalam panggilan operasi start build lebih diutamakan.
-
Nilai dalam definisi proyek build akan diutamakan berikutnya.
-
Nilai dalam deklarasi buildspec diutamakan paling rendah.
Jika Anda menggunakan Secrets Manager, untuk Type, pilih Secrets Manager. Untuk Nama, masukkan pengenal CodeBuild untuk referensi. Untuk Nilai, masukkan
reference-key
menggunakan pola
. Untuk informasi, lihat Secrets Manager reference-key in the buildspec file.secret-id
:json-key
:version-stage
:version-id
penting
Jika Anda menggunakan Secrets Manager, kami sarankan Anda menyimpan rahasia dengan nama yang dimulai dengan
/CodeBuild/
(misalnya,/CodeBuild/dockerLoginPassword
). Untuk informasi lebih lanjut, lihat Apa itu AWS Secrets Manager? di Panduan Pengguna AWS Secrets Manager .Jika proyek build Anda mengacu pada rahasia yang disimpan di Secrets Manager, peran layanan proyek build harus mengizinkan
secretsmanager:GetSecretValue
tindakan tersebut. Jika Anda memilih Peran layanan baru lebih awal, CodeBuild sertakan tindakan ini dalam peran layanan default untuk proyek build Anda. Namun, jika Anda memilih Peran layanan yang ada, Anda harus menyertakan tindakan ini ke peran layanan secara terpisah.Jika proyek build mengacu pada rahasia yang disimpan di Secrets Manager dengan nama rahasia yang tidak dimulai
/CodeBuild/
, dan Anda memilih Peran layanan baru, Anda harus memperbarui peran layanan untuk mengizinkan akses ke nama rahasia yang tidak dimulai/CodeBuild/
. Ini karena peran layanan memungkinkan akses hanya ke nama rahasia yang dimulai dengan/CodeBuild/
.Jika Anda memilih Peran layanan baru, peran layanan menyertakan izin untuk mendekripsi semua rahasia di bawah
/CodeBuild/
namespace di Secrets Manager. -
Buildspec
- Membangun spesifikasi
-
Lakukan salah satu hal berikut ini:
-
Jika kode sumber Anda menyertakan file buildspec, pilih Gunakan file buildspec. Secara default, CodeBuild mencari file bernama
buildspec.yml
di direktori root kode sumber. Jika file buildspec Anda menggunakan nama atau lokasi yang berbeda, masukkan jalurnya dari root sumber dalam nama Buildspec (misalnya, atau.buildspec-two.yml
configuration/buildspec.yml
Jika file buildspec ada di bucket S3, file tersebut harus berada di AWS Region yang sama dengan project build Anda. Tentukan file buildspec menggunakan nya ARN (misalnya,).arn:aws:s3:::
<my-codebuild-sample2>
/buildspec.yml -
Jika kode sumber Anda tidak menyertakan file buildspec, atau jika Anda ingin menjalankan perintah build yang berbeda dari yang ditentukan untuk
build
fase dalambuildspec.yml
file di direktori root kode sumber, pilih Sisipkan perintah build. Untuk perintah Build, masukkan perintah yang ingin Anda jalankan dalambuild
fase. Untuk beberapa perintah, pisahkan setiap perintah dengan&&
(misalnya,mvn test && mvn package
). Untuk menjalankan perintah di fase lain, atau jika Anda memiliki daftar panjang perintah untukbuild
fase tersebut, tambahkanbuildspec.yml
file ke direktori root kode sumber, tambahkan perintah ke file, lalu pilih Gunakan buildspec.ymldi direktori root kode sumber.
Untuk informasi selengkapnya, lihat Referensi Buildspec.
-
Konfigurasi Batch
Anda dapat menjalankan grup build sebagai satu operasi. Untuk informasi selengkapnya, lihat Jalankan build dalam batch.
- Tentukan konfigurasi batch
-
Pilih untuk mengizinkan pembuatan batch dalam proyek ini.
- Peran layanan Batch
-
Menyediakan peran layanan untuk build batch.
Pilih salah satu cara berikut:
-
Jika Anda tidak memiliki peran layanan batch, pilih Peran layanan baru. Di peran Layanan, masukkan nama untuk peran baru.
-
Jika Anda memiliki peran layanan batch, pilih Peran layanan yang ada. Dalam peran Layanan, pilih peran layanan.
Batch build memperkenalkan peran keamanan baru dalam konfigurasi batch. Peran baru ini diperlukan karena CodeBuild harus dapat memanggil
StartBuild
,StopBuild
, danRetryBuild
tindakan atas nama Anda untuk menjalankan build sebagai bagian dari batch. Pelanggan harus menggunakan peran baru, dan bukan peran yang sama yang mereka gunakan dalam build mereka, karena dua alasan:-
Memberikan peran build
StartBuild
,StopBuild
, danRetryBuild
izin akan memungkinkan satu build untuk memulai lebih banyak build melalui buildspec. -
CodeBuild build batch memberikan batasan yang membatasi jumlah build dan tipe komputasi yang dapat digunakan untuk build dalam batch. Jika peran build memiliki izin ini, kemungkinan build itu sendiri dapat melewati batasan ini.
-
- Jenis komputasi yang diizinkan untuk batch
-
Pilih jenis komputasi yang diizinkan untuk batch. Pilih semua yang berlaku.
- Build maksimum yang diizinkan dalam batch
-
Masukkan jumlah maksimum build yang diizinkan dalam batch. Jika batch melebihi batas ini, batch akan gagal.
- Batas waktu Batch
-
Masukkan jumlah waktu maksimum untuk menyelesaikan batch build.
- Gabungkan artefak
-
Pilih Gabungkan semua artefak dari batch ke satu lokasi agar semua artefak dari batch digabungkan menjadi satu lokasi.
- Mode laporan Batch
-
Pilih mode laporan status build yang diinginkan untuk build batch.
catatan
Bidang ini hanya tersedia jika sumber proyek adalah Bitbucket, GitHub, atau GitHub Enterprise, dan Laporkan status build ke penyedia sumber saat build Anda mulai dan selesai dipilih di bawah Sumber.
- Build agregat
-
Pilih agar status untuk semua build dalam batch digabungkan menjadi satu laporan status.
- Membangun individu
-
Pilih agar status build untuk semua build dalam batch dilaporkan secara terpisah.
Artifacts
- Jenis
-
Lakukan salah satu hal berikut ini:
-
Jika Anda tidak ingin membuat artefak keluaran build apa pun, pilih Tidak ada artefak. Anda mungkin ingin melakukan ini jika Anda hanya menjalankan pengujian build atau Anda ingin mendorong image Docker ke ECR repositori Amazon.
-
Untuk menyimpan output build dalam bucket S3, pilih Amazon S3, lalu lakukan hal berikut:
-
Jika Anda ingin menggunakan nama proyek untuk ZIP file atau folder keluaran build, biarkan Nama kosong. Jika tidak, masukkan nama. (Jika Anda ingin menampilkan ZIP file, dan Anda ingin ZIP file memiliki ekstensi file, pastikan untuk memasukkannya setelah nama ZIP file.)
-
Pilih Aktifkan versi semantik jika Anda ingin nama yang ditentukan dalam file buildspec untuk mengganti nama apa pun yang ditentukan di konsol. Nama dalam file buildspec dihitung pada waktu pembuatan dan menggunakan bahasa perintah Shell. Misalnya, Anda dapat menambahkan tanggal dan waktu untuk nama artefak Anda sehingga selalu unik. Nama artefak unik mencegah artefak ditimpa. Untuk informasi selengkapnya, lihat Sintaks Buildspec.
-
Untuk nama Bucket, pilih nama bucket keluaran.
-
Jika Anda memilih Insert build perintah sebelumnya dalam prosedur ini, maka untuk file Output, masukkan lokasi file dari build yang ingin Anda masukkan ke dalam ZIP file atau folder keluaran build. Untuk beberapa lokasi, pisahkan setiap lokasi dengan koma (misalnya,
appspec.yml, target/my-app.jar
). Untuk informasi lebih lanjut, lihat deskripsifiles
diSintaks Buildspec. -
Jika Anda tidak ingin artefak build Anda dienkripsi, pilih Hapus enkripsi artefak.
-
Untuk setiap set artefak sekunder yang Anda inginkan:
-
Untuk pengenal Artifact, masukkan nilai yang kurang dari 128 karakter dan hanya berisi karakter alfanumerik dan garis bawah.
-
Pilih Tambahkan artefak.
-
Ikuti langkah-langkah sebelumnya untuk mengonfigurasi artefak sekunder Anda.
-
Pilih Simpan artefak.
-
- Konfigurasi tambahan
-
- Kunci enkripsi
-
(Opsional) Lakukan salah satu langkah berikut:
-
Untuk menggunakan Amazon S3 di akun Anda untuk mengenkripsi artefak keluaran build, biarkan kunci Enkripsi kosong. Kunci yang dikelola AWS Ini adalah opsi default.
-
Untuk menggunakan kunci yang dikelola pelanggan untuk mengenkripsi artefak keluaran build, di kunci Enkripsi, masukkan ARN kunci. KMS Gunakan format
arn:aws:kms:
.region-ID
:account-ID
:key/key-ID
-
- Jenis cache
Untuk jenis Cache, pilih salah satu dari berikut ini:
-
Jika Anda tidak ingin menggunakan cache, pilih Tidak ada cache.
-
Jika Anda ingin menggunakan cache Amazon S3, pilih Amazon S3, lalu lakukan hal berikut:
-
Untuk Bucket, pilih nama bucket S3 tempat cache disimpan.
-
(Opsional) Untuk awalan jalur Cache, masukkan awalan jalur Amazon S3. Nilai awalan jalur Cache mirip dengan nama direktori. Itu memungkinkan Anda untuk menyimpan cache di bawah direktori yang sama dalam ember.
penting
Jangan menambahkan garis miring (/) ke ujung awalan jalur.
-
-
Jika Anda ingin menggunakan cache lokal, pilih Lokal, lalu pilih satu atau beberapa mode cache lokal.
catatan
Mode cache lapisan Docker hanya tersedia untuk Linux. Jika Anda memilihnya, proyek Anda harus berjalan dalam mode istimewa.
Menggunakan cache menghemat banyak waktu pembuatan karena bagian lingkungan build yang dapat digunakan kembali disimpan dalam cache dan digunakan di seluruh build. Untuk informasi tentang menentukan cache dalam file buildspec, lihat. Sintaks Buildspec Untuk informasi lebih lanjut tentang caching, lihatCache dibangun untuk meningkatkan kinerja.
-
Log
Pilih log yang ingin Anda buat. Anda dapat membuat CloudWatch Log Amazon, log Amazon S3, atau keduanya.
- CloudWatch
-
Jika Anda ingin CloudWatch log Amazon Log:
- CloudWatch log
-
Pilih CloudWatch log.
- Nama grup
-
Masukkan nama grup CloudWatch log Amazon Logs Anda.
- Nama aliran
-
Masukkan nama aliran CloudWatch log Amazon Logs Anda.
- S3
-
Jika Anda ingin log Amazon S3:
- Log S3
-
Pilih log S3.
- Bucket
-
Pilih nama bucket S3 untuk log Anda.
- Awalan jalur
-
Masukkan awalan untuk log Anda.
- Nonaktifkan enkripsi log S3
-
Pilih jika Anda tidak ingin log S3 Anda dienkripsi.
Buat proyek build (AWS CLI)
Untuk informasi lebih lanjut tentang menggunakan AWS CLI with CodeBuild, lihatReferensi baris perintah.
Untuk membuat proyek CodeBuild build menggunakan AWS CLI, Anda membuat struktur Proyek JSON berformat -, mengisi struktur, dan memanggil create-project
perintah untuk membuat proyek.
Buat JSON file
Buat JSON file kerangka dengan create-project
perintah, menggunakan --generate-cli-skeleton
opsi:
aws codebuild create-project --generate-cli-skeleton >
<json-file>
Ini membuat JSON file dengan path dan nama file yang ditentukan oleh <json-file>
.
Isi JSON file
Ubah JSON data sebagai berikut dan simpan hasil Anda.
{ "name": "
<project-name>
", "description": "<description>
", "source": { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>
", "gitCloneDepth": "<git-clone-depth>
", "buildspec": "<buildspec>
", "InsecureSsl": "<insecure-ssl>
", "reportBuildStatus": "<report-build-status>
", "buildStatusConfig": { "context": "<context>
", "targetUrl": "<target-url>
" }, "gitSubmodulesConfig": { "fetchSubmodules": "<fetch-submodules>
" }, "auth": { "type": "<auth-type>
", "resource": "<auth-resource>
" }, "sourceIdentifier": "<source-identifier>
" }, "secondarySources": [ { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>
", "gitCloneDepth": "<git-clone-depth>
", "buildspec": "<buildspec>
", "InsecureSsl": "<insecure-ssl>
", "reportBuildStatus": "<report-build-status>
", "auth": { "type": "<auth-type>
", "resource": "<auth-resource>
" }, "sourceIdentifier": "<source-identifier>
" } ], "secondarySourceVersions": [ { "sourceIdentifier": "<secondary-source-identifier>
", "sourceVersion": "<secondary-source-version>
" } ], "sourceVersion": "<source-version>"
, "artifacts": { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<artifacts-location>
", "path": "<artifacts-path>
", "namespaceType": "<artifacts-namespacetype>
", "name": "<artifacts-name>
", "overrideArtifactName": "<override-artifact-name>
", "packaging": "<artifacts-packaging>
" }, "secondaryArtifacts": [ { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<secondary-artifact-location>
", "path": "<secondary-artifact-path>
", "namespaceType": "<secondary-artifact-namespaceType>
", "name": "<secondary-artifact-name>
", "packaging": "<secondary-artifact-packaging>
", "artifactIdentifier": "<secondary-artifact-identifier>
" } ], "cache": { "type": "<cache-type>
", "location": "<cache-location>
", "mode": [ "<cache-mode>
" ] }, "environment": { "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER" | "WINDOWS_SERVER_2022_CONTAINER", "image": "<image>
", "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE", "certificate": "<certificate>
", "environmentVariables": [ { "name": "<environmentVariable-name>
", "value": "<environmentVariable-value>
", "type": "<environmentVariable-type>
" } ], "registryCredential": [ { "credential": "<credential-arn-or-name>
", "credentialProvider": "<credential-provider>
" } ], "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE", "privilegedMode": "<privileged-mode>
" }, "serviceRole": "<service-role>
", "autoRetryLimit":<auto-retry-limit>
, "timeoutInMinutes":<timeout>
, "queuedTimeoutInMinutes":<queued-timeout>
, "encryptionKey": "<encryption-key>
", "tags": [ { "key": "<tag-key>
", "value": "<tag-value>
" } ], "vpcConfig": { "securityGroupIds": [ "<security-group-id>
" ], "subnets": [ "<subnet-id>
" ], "vpcId": "<vpc-id>
" }, "badgeEnabled": "<badge-enabled>
", "logsConfig": { "cloudWatchLogs": { "status": "<cloudwatch-logs-status>
", "groupName": "<group-name>
", "streamName": "<stream-name>
" }, "s3Logs": { "status": "<s3-logs-status>
", "location": "<s3-logs-location>
", "encryptionDisabled": "<s3-logs-encryption-disabled>
" } }, "fileSystemLocations": [ { "type": "EFS", "location": "<EFS-DNS-name-1>
:/<directory-path>
", "mountPoint": "<mount-point>
", "identifier": "<efs-identifier>
", "mountOptions": "<efs-mount-options>
" } ], "buildBatchConfig": { "serviceRole": "<batch-service-role>
", "combineArtifacts":<combine-artifacts>
, "restrictions": { "maximumBuildsAllowed":<max-builds>
, "computeTypesAllowed": [ "<compute-type>
" ] }, "timeoutInMins":<batch-timeout>
, "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS" }, "concurrentBuildLimit":<concurrent-build-limit>
}
Ganti yang berikut ini:
name
Wajib. Nama untuk proyek pembangunan ini. Nama ini harus unik di semua proyek build di AWS akun Anda.
deskripsi
Tidak wajib. Deskripsi untuk proyek pembangunan ini.
sumber
Wajib. ProjectSourceObjek yang berisi informasi tentang pengaturan kode sumber proyek build ini. Setelah Anda menambahkan source
objek, Anda dapat menambahkan hingga 12 sumber lagi menggunakan filesecondarySources. Pengaturan ini meliputi yang berikut:
- sumber/jenis
-
Wajib. Jenis repositori yang berisi kode sumber untuk membangun. Nilai yang valid meliputi:
-
CODECOMMIT
-
CODEPIPELINE
-
GITHUB
-
GITHUB_ENTERPRISE
-
GITLAB
-
GITLAB_SELF_MANAGED
-
BITBUCKET
-
S3
-
NO_SOURCE
Jika Anda menggunakan
NO_SOURCE
, buildspec tidak dapat berupa file karena proyek tidak memiliki sumber. Sebagai gantinya, Anda harus menggunakanbuildspec
atribut untuk menentukan string YAML -formatted untuk buildspec Anda. Untuk informasi selengkapnya, lihat Buat proyek build tanpa sumber. -
- sumber/lokasi
-
Diperlukan kecuali Anda menetapkan
<source-type>
keCODEPIPELINE
. Lokasi kode sumber untuk jenis repositori yang ditentukan.-
Untuk CodeCommit, HTTPS kloning URL ke repositori yang berisi kode sumber dan file buildspec (misalnya,).
https://git-codecommit.
<region-id>
.amazonaws.com/v1/repos/<repo-name>
-
Untuk Amazon S3, nama bucket input build, diikuti dengan path dan nama ZIP file yang berisi kode sumber dan buildspec. Sebagai contoh:
-
Untuk ZIP file yang terletak di root bucket input:
.<bucket-name>
/<object-name>
.zip -
Untuk ZIP file yang terletak di subfolder di bucket input:
.<bucket-name>
/<subfoler-path>
/<object-name>
.zip
-
-
Untuk GitHub, HTTPS kloning URL ke repositori yang berisi kode sumber dan file buildspec. URLHarus berisi github.com. Anda harus menghubungkan AWS akun Anda ke GitHub akun Anda. Untuk melakukan ini, gunakan CodeBuild konsol untuk membuat proyek build.
-
Pilih Otorisasi aplikasi. (Setelah Anda terhubung ke GitHub akun Anda, Anda tidak perlu menyelesaikan pembuatan proyek build. Anda dapat menutup CodeBuild konsol.)
-
-
Untuk GitHub Enterprise Server, HTTP atau HTTPS kloning URL ke repositori yang berisi kode sumber dan file buildspec. Anda juga harus menghubungkan AWS akun Anda ke akun GitHub Enterprise Server Anda. Untuk melakukan ini, gunakan CodeBuild konsol untuk membuat proyek build.
-
Buat token akses pribadi di Server GitHub Perusahaan.
-
Salin token ini ke clipboard Anda sehingga Anda dapat menggunakannya saat membuat proyek Anda. CodeBuild Untuk informasi selengkapnya, lihat Membuat token akses pribadi untuk baris perintah
di situs web GitHub Bantuan. -
Saat Anda menggunakan konsol untuk membuat CodeBuild proyek, di Sumber, untuk penyedia Sumber, pilih GitHubEnterprise.
-
Untuk Token Akses Pribadi, tempel token yang disalin ke clipboard Anda. Pilih Simpan Token. CodeBuild Akun Anda sekarang terhubung ke akun GitHub Enterprise Server Anda.
-
-
Untuk GitLab dan GitLab dikelola sendiri, HTTPS kloning URL ke repositori yang berisi kode sumber dan file buildspec. Perhatikan bahwa jika Anda menggunakan GitLab, URL harus berisi gitlab.com. Jika Anda menggunakan GitLab self-managed, URL tidak perlu berisi gitlab.com. Anda harus menghubungkan AWS akun Anda ke akun Anda GitLab atau yang GitLab dikelola sendiri. Untuk melakukan ini, gunakan CodeBuild konsol untuk membuat proyek build.
-
Di panel navigasi Alat Pengembang, pilih Pengaturan, Koneksi, lalu Buat koneksi. Di halaman ini, buat koneksi yang GitLab dikelola sendiri GitLab atau yang dikelola sendiri, lalu pilih Connect to GitLab.
-
-
Untuk Bitbucket, HTTPS kloning URL ke repositori yang berisi kode sumber dan file buildspec. URLHarus mengandung bitbucket.org. Anda juga harus menghubungkan AWS akun Anda ke akun Bitbucket Anda. Untuk melakukan ini, gunakan CodeBuild konsol untuk membuat proyek build.
-
Ketika Anda menggunakan konsol untuk menghubungkan (atau menghubungkan kembali) dengan Bitbucket, pada halaman Mengonfirmasi akses ke akun Anda di Bitbucket, pilih Berikan akses. (Setelah Anda terhubung ke akun Bitbucket Anda, Anda tidak perlu menyelesaikan pembuatan proyek build. Anda dapat menutup CodeBuild konsol.)
-
-
Untuk AWS CodePipeline, jangan tentukan
location
nilai untuksource
. CodePipeline mengabaikan nilai ini karena saat Anda membuat pipeline CodePipeline, Anda menentukan lokasi kode sumber di tahap Sumber pipeline.
-
- sumber/ gitCloneDepth
-
Tidak wajib. Kedalaman riwayat yang akan diunduh. Nilai minimum adalah 0. Jika nilai ini adalah 0, lebih besar dari 25, atau tidak disediakan, maka riwayat penuh diunduh dengan setiap proyek build. Jika jenis sumber Anda adalah Amazon S3, nilai ini tidak didukung.
- sumber/buildspec
-
Tidak wajib. Definisi spesifikasi build atau file yang akan digunakan. Jika nilai ini tidak disediakan atau diatur ke string kosong, kode sumber harus berisi
buildspec.yml
file dalam direktori root nya. Jika nilai ini disetel, itu bisa berupa definisi buildspec sebaris, jalur ke file buildspec alternatif relatif terhadap direktori root sumber utama Anda, atau jalur ke bucket S3. Bucket harus berada di AWS Wilayah yang sama dengan proyek pembangunan. Tentukan file buildspec menggunakan nya ARN (misalnya,).arn:aws:s3:::
Untuk informasi selengkapnya, lihat Nama file Buildspec dan lokasi penyimpanan.<my-codebuild-sample2>
/buildspec.yml - sumber/autentikasi
-
Berisi informasi tentang pengaturan otorisasi CodeBuild untuk mengakses kode sumber yang akan dibangun.
- sumber/auth/ jenis
-
Wajib. Tipe otorisasi yang digunakan. Nilai yang valid adalah:
-
OAUTH
-
CODECONNECTIONS
-
SECRETS_MANAGER
-
- sumber/auth/ sumber daya
-
Tidak wajib. Nilai sumber daya yang berlaku untuk jenis otorisasi yang ditentukan. Ini bisa menjadi Secrets Manager ARN atau CodeConnections ARN.
- sumber/ reportBuildStatus
-
Menentukan apakah akan mengirim status awal dan penyelesaian build kepada penyedia sumber Anda. Jika Anda mengatur ini dengan penyedia sumber selain GitHub, GitHub Enterprise Server, atau Bitbucket, akan
invalidInputException
dilemparkan.Untuk dapat melaporkan status build ke penyedia sumber, pengguna yang terkait dengan penyedia sumber harus memiliki akses tulis ke repo. Jika pengguna tidak memiliki akses tulis, status build tidak dapat diperbarui. Untuk informasi selengkapnya, lihat Akses penyedia sumber.
- sumber/ buildStatusConfig
-
Berisi informasi yang menentukan cara proyek CodeBuild build melaporkan status build ke penyedia sumber. Opsi ini hanya digunakan ketika jenis sumbernya
GITHUB
,GITHUB_ENTERPRISE
, atauBITBUCKET
.- sumber//konteks buildStatusConfig
-
Untuk sumber Bitbucket, parameter ini digunakan untuk
name
parameter dalam status komit Bitbucket. Untuk GitHub sumber, parameter ini digunakan untukcontext
parameter dalam status GitHub komit.Misalnya, Anda dapat memiliki
context
berisi nomor build dan pemicu webhook menggunakan variabel CodeBuild lingkungan:AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
Ini menghasilkan konteks yang muncul seperti ini untuk build #24 yang dipicu oleh peristiwa permintaan tarik webhook:
AWS CodeBuild sample-project Build #24 - pr/8
- sumber//buildStatusConfigtargetUrl
-
Untuk sumber Bitbucket, parameter ini digunakan untuk
url
parameter dalam status komit Bitbucket. Untuk GitHub sumber, parameter ini digunakan untuktarget_url
parameter dalam status GitHub komit.Misalnya, Anda dapat mengatur
targetUrl
kehttps://aws.amazon.com/codebuild/
dan status komit akan menautkan ke iniURL.<path to build>
Anda juga dapat menyertakan variabel CodeBuild lingkungan
targetUrl
untuk menambahkan informasi tambahan ke fileURL. Misalnya, untuk menambahkan wilayah build keURL, seteltargetUrl
ke:"targetUrl": "https://aws.amazon.com/codebuild/
<path to build>
?region=$AWS_REGION"Jika wilayah build adalah
us-east-2
, ini akan berkembang menjadi:https://aws.amazon.com/codebuild/
<path to build>
?region=us-east-2
- sumber/ gitSubmodulesConfig
-
Tidak wajib. Informasi tentang konfigurasi submodul Git. Digunakan dengan CodeCommit, GitHub, Server GitHub Perusahaan, dan Bitbucket saja.
- sumber//gitSubmodulesConfigfetchSubmodules
-
Setel
fetchSubmodules
ketrue
jika Anda ingin menyertakan submodul Git dalam repositori Anda. Submodul Git yang disertakan harus dikonfigurasi sebagaiHTTPS.
- sumber/ InsecureSsl
-
Tidak wajib. Digunakan dengan GitHub Enterprise Server saja. Tetapkan nilai ini
true
untuk mengabaikan TLS peringatan saat menghubungkan ke repositori proyek GitHub Enterprise Server Anda. Nilai default adalahfalse
.InsecureSsl
harus digunakan hanya untuk tujuan pengujian. Ini tidak boleh digunakan di lingkungan produksi. - sumber/ sourceIdentifier
-
Pengidentifikasi yang ditentukan pengguna untuk sumber proyek. Opsional untuk sumber utama. Diperlukan untuk sumber sekunder.
secondarySources
Tidak wajib. Array ProjectSourceobjek yang berisi informasi tentang sumber sekunder untuk proyek build. Anda dapat menambahkan hingga 12 sumber sekunder. secondarySources
Objek menggunakan properti yang sama yang digunakan oleh sumber objek. Dalam objek sumber sekunder, sourceIdentifier
diperlukan.
secondarySourceVersions
Tidak wajib. Sebuah array ProjectSourceVersionobjek. Jika secondarySourceVersions
ditentukan pada level build, maka mereka lebih diutamakan daripada ini.
sourceVersion
Tidak wajib. Versi input build yang akan dibangun untuk proyek ini. Jika tidak ditentukan, versi terbaru digunakan. Jika ditentukan, itu harus berupa salah satu dari:
-
Untuk CodeCommit, ID komit, cabang, atau tag Git yang akan digunakan.
-
Untuk GitHub, ID komit, ID permintaan tarik, nama cabang, atau nama tag yang sesuai dengan versi kode sumber yang ingin Anda buat. Jika ID permintaan tarik ditentukan, itu harus menggunakan format
pr/pull-request-ID
(misalnyapr/25
). Jika nama cabang ditentukan, ID HEAD komit cabang digunakan. Jika tidak ditentukan, ID HEAD komit cabang default digunakan. -
Untuk GitLab, ID komit, ID permintaan tarik, nama cabang, nama tag, atau referensi, dan ID komit. Untuk informasi selengkapnya, lihat Contoh versi sumber dengan AWS CodeBuild.
-
Untuk Bitbucket, ID komit, nama cabang, atau nama tag yang sesuai dengan versi kode sumber yang ingin Anda buat. Jika nama cabang ditentukan, ID HEAD komit cabang digunakan. Jika tidak ditentukan, ID HEAD komit cabang default digunakan.
-
Untuk Amazon S3, ID versi objek yang mewakili ZIP file input build yang akan digunakan.
Jika sourceVersion
ditentukan pada tingkat pembuatan, maka versi tersebut akan mengambil alih sourceVersion
ini (di tingkat proyek). Untuk informasi selengkapnya, lihat Contoh versi sumber dengan AWS CodeBuild.
artefak
Wajib. ProjectArtifactsObjek yang berisi informasi tentang pengaturan artefak keluaran proyek build ini. Setelah Anda menambahkan artifacts
objek, Anda dapat menambahkan hingga 12 artefak lagi menggunakan. secondaryArtifacts Pengaturan ini meliputi yang berikut:
- artefak/jenis
-
Wajib. Jenis artefak output build. Nilai yang valid adalah:
-
CODEPIPELINE
-
NO_ARTIFACTS
-
S3
-
- artefak/lokasi
-
Hanya digunakan dengan tipe
S3
artefak. Tidak digunakan untuk jenis artefak lainnya.Nama bucket keluaran yang Anda buat atau identifikasi dalam prasyarat.
- artefak/jalur
-
Hanya digunakan dengan tipe
S3
artefak. Tidak digunakan untuk jenis artefak lainnya.Jalur di bucket output untuk menempatkan ZIP file atau folder. Jika Anda tidak menentukan nilai untuk
path
, CodeBuild gunakannamespaceType
(jika ditentukan) danname
untuk menentukan jalur dan nama ZIP file atau folder keluaran build. Misalnya, jika Anda menentukanMyPath
untukpath
danMyArtifact.zip
untukname
, jalur dan nama akan menjadiMyPath/MyArtifact.zip
. - artefak/ namespaceType
-
Hanya digunakan dengan tipe
S3
artefak. Tidak digunakan untuk jenis artefak lainnya.Namespace dari ZIP file atau folder keluaran build. Nilai yang valid mencakup
BUILD_ID
danNONE
. GunakanBUILD_ID
untuk menyisipkan ID build ke jalur ZIP file atau folder keluaran build. Jika tidak sesuai, gunakanNONE
. Jika Anda tidak menentukan nilai untuknamespaceType
, CodeBuild gunakanpath
(jika ditentukan) danname
untuk menentukan jalur dan nama ZIP file atau folder keluaran build. Misalnya, jika Anda menentukanMyPath
untukpath
,BUILD_ID
untuknamespaceType
, danMyArtifact.zip
untukname
, jalur dan nama akan menjadiMyPath/
.build-ID
/MyArtifact.zip - artefak/nama
-
Hanya digunakan dengan tipe
S3
artefak. Tidak digunakan untuk jenis artefak lainnya.Nama ZIP file atau folder keluaran build di dalam file
location
. Misalnya, jika Anda menentukanMyPath
untukpath
danMyArtifact.zip
untukname
, jalur dan nama akan menjadiMyPath/MyArtifact.zip
. - artefak/ overrideArtifactName
-
Hanya digunakan dengan tipe artefak S3. Tidak digunakan untuk jenis artefak lainnya.
Tidak wajib. Jika disetel ke
true
, nama yang ditentukan dalamartifacts
blok file buildspec akan diganti.name
Untuk informasi selengkapnya, lihat Buat referensi spesifikasi untuk CodeBuild. - artefak/kemasan
-
Hanya digunakan dengan tipe
S3
artefak. Tidak digunakan untuk jenis artefak lainnya.Tidak wajib. Menentukan bagaimana untuk paket artefak. Nilai yang diizinkan adalah:
- NONE
-
Buat folder yang berisi artefak build. Ini adalah nilai default.
- ZIP
-
Buat ZIP file yang berisi artefak build.
secondaryArtifacts
Tidak wajib. Array ProjectArtifactsobjek yang berisi informasi tentang pengaturan artefak sekunder untuk proyek build. Anda dapat menambahkan hingga 12 artefak sekunder. secondaryArtifacts
Menggunakan banyak pengaturan yang sama yang digunakan oleh artefak objek.
cache
Wajib. ProjectCacheObjek yang berisi informasi tentang pengaturan cache proyek build ini. Untuk informasi selengkapnya, lihat Cache dibangun.
lingkungan
Wajib. ProjectEnvironmentObjek yang berisi informasi tentang pengaturan lingkungan build proyek ini. Pengaturan ini meliputi:
- lingkungan/tipe
-
Wajib. Jenis lingkungan bangunan. Untuk informasi selengkapnya, lihat ketik CodeBuild APIReferensi.
- lingkungan/gambar
-
Wajib. Pengidentifikasi gambar Docker yang digunakan oleh lingkungan build ini. Biasanya, pengenal ini dinyatakan sebagai
image-name
:tag
. Misalnya, di repositori Docker yang CodeBuild digunakan untuk mengelola gambar Docker-nya, ini bisa jadi.aws/codebuild/standard:5.0
Di Docker Hub,maven:3.3.9-jdk-8
. Di AmazonECR,
. Untuk informasi selengkapnya, lihat Gambar Docker disediakan oleh CodeBuild.account-id
.dkr.ecr.region-id
.amazonaws.com/your-Amazon-ECR-repo-name
:tag
- lingkungan/ computeType
-
Wajib. Menentukan sumber daya komputasi yang digunakan oleh lingkungan build ini. Untuk informasi lebih lanjut, lihat computeTypedi CodeBuild APIReferensi.
- lingkungan/sertifikat
-
Tidak wajib. Bucket Amazon S3, awalan jalur, dan kunci objek yang berisi sertifikat -encoded. ARN PEM Kunci objek dapat berupa file.pem atau file.zip yang berisi sertifikat -encoded. PEM Misalnya, jika nama bucket Amazon S3 Anda, awalan jalur Anda adalah
, dan nama kunci objek Anda<my-bucket>
<cert>
, maka format yang dapat diterima untuk<certificate.pem>
certificate
are atau.<my-bucket/cert/certificate.pem>
arn:aws:s3:::
<my-bucket/cert/certificate.pem>
- lingkungan/ environmentVariables
-
Tidak wajib. Array EnvironmentVariableobjek yang berisi variabel lingkungan yang ingin Anda tentukan untuk lingkungan build ini. Setiap variabel lingkungan dinyatakan sebagai objek yang berisi
name
,value
, dantype
dariname
,value
, dantype
.Konsol dan AWS CLI pengguna dapat melihat semua variabel lingkungan. Jika Anda tidak memiliki kekhawatiran tentang visibilitas variabel lingkungan Anda, atur
name
danvalue
, dan aturtype
kePLAINTEXT
.Kami menyarankan Anda menyimpan variabel lingkungan dengan nilai sensitif, seperti ID kunci AWS akses, kunci akses AWS rahasia, atau kata sandi, sebagai parameter di Amazon EC2 Systems Manager Parameter Store atau AWS Secrets Manager. Untuk
name
, untuk parameter yang disimpan itu, tetapkan pengenal CodeBuild untuk referensi.Jika Anda menggunakan Amazon EC2 Systems Manager Parameter Store
value
, untuk, tetapkan nama parameter sebagai disimpan di Parameter Store. Aturtype
kePARAMETER_STORE
. Menggunakan parameter bernama/CodeBuild/dockerLoginPassword
sebagai contoh, aturname
keLOGIN_PASSWORD
. Aturvalue
ke/CodeBuild/dockerLoginPassword
. Aturtype
kePARAMETER_STORE
.penting
Jika Anda menggunakan Amazon EC2 Systems Manager Parameter Store, kami sarankan Anda menyimpan parameter dengan nama parameter yang dimulai dengan
/CodeBuild/
(misalnya,/CodeBuild/dockerLoginPassword
). Anda dapat menggunakan CodeBuild konsol untuk membuat parameter di Amazon EC2 Systems Manager. Pilih Buat parameter, lalu ikuti instruksi di kotak dialog. (Di kotak dialog itu, untuk KMSkunci, Anda dapat menentukan AWS KMS kunci di akun Anda. ARN Amazon EC2 Systems Manager menggunakan kunci ini untuk mengenkripsi nilai parameter selama penyimpanan dan mendekripsi selama pengambilan.) Jika Anda menggunakan CodeBuild konsol untuk membuat parameter, konsol memulai nama parameter dengan/CodeBuild/
saat sedang disimpan. Untuk informasi selengkapnya, lihat Systems Manager Parameter Store dan Systems Manager Parameter Store Console Walkthrough di Panduan Pengguna Amazon EC2 Systems Manager.Jika project build Anda mengacu pada parameter yang disimpan di Amazon EC2 Systems Manager Parameter Store, peran layanan project build harus mengizinkan
ssm:GetParameters
tindakan tersebut. Jika Anda memilih Peran layanan baru lebih awal, CodeBuild sertakan tindakan ini dalam peran layanan default untuk proyek build Anda. Namun, jika Anda memilih Peran layanan yang ada, Anda harus menyertakan tindakan ini ke peran layanan secara terpisah.Jika project build Anda merujuk ke parameter yang disimpan di Amazon EC2 Systems Manager Parameter Store dengan nama parameter yang tidak dimulai
/CodeBuild/
, dan Anda memilih Peran layanan baru, Anda harus memperbarui peran layanan tersebut untuk mengizinkan akses ke nama parameter yang tidak dimulai/CodeBuild/
. Ini karena peran layanan itu memungkinkan akses hanya ke nama parameter yang dimulai dengan/CodeBuild/
.Jika Anda memilih Peran layanan baru, peran layanan menyertakan izin untuk mendekripsi semua parameter di bawah
/CodeBuild/
namespace di Amazon EC2 Systems Manager Parameter Store.Variabel lingkungan yang Anda tetapkan menggantikan variabel lingkungan yang ada. Misalnya, jika image Docker sudah berisi variabel lingkungan bernama
MY_VAR
dengan nilaimy_value
, dan Anda menetapkan variabel lingkungan bernamaMY_VAR
dengan nilaiother_value
,my_value
maka diganti denganother_value
. Demikian pula, jika image Docker sudah berisi variabel lingkungan bernamaPATH
dengan nilai/usr/local/sbin:/usr/local/bin
, dan Anda menetapkan variabel lingkungan bernamaPATH
dengan nilai$PATH:/usr/share/ant/bin
,/usr/local/sbin:/usr/local/bin
maka digantikan oleh nilai$PATH:/usr/share/ant/bin
literal.Jangan mengatur variabel lingkungan apa pun dengan nama yang dimulai dengan
CODEBUILD_
. Awalan ini dicadangkan untuk penggunaan internal .Jika variabel lingkungan dengan nama yang sama didefinisikan di beberapa tempat, nilainya ditentukan sebagai berikut:
-
Nilai dalam panggilan operasi start build lebih diutamakan.
-
Nilai dalam definisi proyek build akan diutamakan berikutnya.
-
Nilai dalam deklarasi buildspec diutamakan paling rendah.
Jika Anda menggunakan Secrets Manager, untuk
value
, tetapkan nama parameter sebagai disimpan di Secrets Manager. Aturtype
keSECRETS_MANAGER
. Menggunakan rahasia bernama/CodeBuild/dockerLoginPassword
sebagai contoh, aturname
keLOGIN_PASSWORD
. Aturvalue
ke/CodeBuild/dockerLoginPassword
. Aturtype
keSECRETS_MANAGER
.penting
Jika Anda menggunakan Secrets Manager, kami sarankan Anda menyimpan rahasia dengan nama yang dimulai dengan
/CodeBuild/
(misalnya,/CodeBuild/dockerLoginPassword
). Untuk informasi lebih lanjut, lihat Apa itu AWS Secrets Manager? di Panduan Pengguna AWS Secrets Manager .Jika proyek build Anda mengacu pada rahasia yang disimpan di Secrets Manager, peran layanan proyek build harus mengizinkan
secretsmanager:GetSecretValue
tindakan tersebut. Jika Anda memilih Peran layanan baru lebih awal, CodeBuild sertakan tindakan ini dalam peran layanan default untuk proyek build Anda. Namun, jika Anda memilih Peran layanan yang ada, Anda harus menyertakan tindakan ini ke peran layanan secara terpisah.Jika proyek build mengacu pada rahasia yang disimpan di Secrets Manager dengan nama rahasia yang tidak dimulai
/CodeBuild/
, dan Anda memilih Peran layanan baru, Anda harus memperbarui peran layanan untuk mengizinkan akses ke nama rahasia yang tidak dimulai/CodeBuild/
. Ini karena peran layanan memungkinkan akses hanya ke nama rahasia yang dimulai dengan/CodeBuild/
.Jika Anda memilih Peran layanan baru, peran layanan menyertakan izin untuk mendekripsi semua rahasia di bawah
/CodeBuild/
namespace di Secrets Manager. -
- lingkungan/ registryCredential
-
Tidak wajib. RegistryCredentialObjek yang menentukan kredensil yang menyediakan akses ke registri Docker pribadi.
- lingkungan// registryCredential kredensi
-
Menentukan ARN atau nama kredensil dibuat menggunakan. AWS Managed Services Anda dapat menggunakan nama kredensialnya hanya jika ada di Wilayah Anda saat ini.
- lingkungan//registryCredentialcredentialProvider
-
Satu-satunya nilai yang valid adalah
SECRETS_MANAGER
.
Ketika ini diatur:
-
imagePullCredentials
harus diatur keSERVICE_ROLE
. -
Gambar tidak dapat berupa gambar yang dikuratori atau ECR gambar Amazon.
- lingkungan/Jenis imagePullCredentials
-
Tidak wajib. Jenis kredensil yang CodeBuild digunakan untuk menarik gambar di build Anda. Ada dua nilai yang valid:
- CODEBUILD
-
CODEBUILD
menentukan yang CodeBuild menggunakan kredensialnya sendiri. Anda harus mengedit kebijakan ECR repositori Amazon Anda untuk mempercayai prinsip CodeBuild layanan. - SERVICE_ROLE
-
Menentukan yang CodeBuild menggunakan peran layanan proyek build Anda.
Saat Anda menggunakan gambar registri lintas akun atau pribadi, Anda harus menggunakan
SERVICE_ROLE
kredensional. Saat Anda menggunakan gambar yang CodeBuild dikuratori, Anda harus menggunakanCODEBUILD
kredensil. - lingkungan/ privilegedMode
-
Setel ke
true
hanya jika Anda berencana menggunakan proyek build ini untuk membangun image Docker. Jika tidak, semua build terkait yang mencoba berinteraksi dengan daemon Docker gagal. Anda juga harus memulai daemon Docker sehingga build Anda dapat berinteraksi dengannya. Salah satu cara untuk melakukannya adalah dengan menginisialisasi daemon Docker diinstall
fase file buildspec Anda dengan menjalankan perintah build berikut. Jangan jalankan perintah ini jika Anda menentukan image lingkungan build yang disediakan oleh CodeBuild dengan dukungan Docker.catatan
Secara default, daemon Docker diaktifkan untuk non-build. VPC Jika Anda ingin menggunakan kontainer Docker untuk VPC build, lihat Runtime Privilege dan Kemampuan Linux
di situs web Docker Docs dan aktifkan mode istimewa. Juga, Windows tidak mendukung mode istimewa. - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
serviceRole
Wajib. Peran layanan CodeBuild digunakan untuk berinteraksi dengan layanan atas nama pengguna (misalnya,arn:aws:iam::
). ARNaccount-id
:role/role-name
autoRetryLimit
Tidak wajib. Jumlah percobaan ulang otomatis tambahan setelah build gagal. Misalnya, jika batas coba ulang otomatis disetel ke 2, CodeBuild akan memanggil RetryBuild
API untuk secara otomatis mencoba ulang build Anda hingga 2 kali tambahan.
timeoutInMinutes
Tidak wajib. Jumlah menit, antara 5 hingga 2160 (36 jam), setelah itu CodeBuild menghentikan build jika tidak selesai. Jika tidak ditentukan, default 60 digunakan. Untuk menentukan apakah dan kapan CodeBuild menghentikan build karena batas waktu, jalankan batch-get-builds
perintah. Untuk menentukan apakah build telah berhenti, lihat output untuk buildStatus
nilaiFAILED
. Untuk menentukan kapan waktu build habis, lihat di output untuk endTime
nilai yang terkait dengan phaseStatus
nilai. TIMED_OUT
queuedTimeoutInMenit
Tidak wajib. Jumlah menit, antara 5 hingga 480 (8 jam), setelah itu CodeBuild menghentikan build jika masih antri. Jika tidak ditentukan, default 60 digunakan.
encryptionKey
Tidak wajib. Alias atau ARN yang AWS KMS key digunakan oleh CodeBuild untuk mengenkripsi output build. Jika Anda menentukan alias, gunakan format arn:aws:kms:
atau, jika ada alias, gunakan formatnya. region-ID
:account-ID
:key/key-ID
alias/
Jika tidak ditentukan, KMS kunci AWS-managed untuk Amazon S3 digunakan.key-alias
tag
Tidak wajib. Array objek Tag yang menyediakan tag yang ingin Anda kaitkan dengan proyek build ini. Anda dapat menentukan hingga 50 tag. Tag ini dapat digunakan oleh AWS layanan apa pun yang mendukung tag proyek CodeBuild build. Setiap tag dinyatakan sebagai objek dengan a key
dan avalue
.
vpcConfig
Tidak wajib. VpcConfigObjek yang berisi informasi informasi tentang VPC konfigurasi untuk proyek Anda. Untuk informasi selengkapnya, lihat Gunakan AWS CodeBuild dengan Amazon Virtual Private Cloud.
Properti ini meliputi:
- vpcId
-
Wajib. VPCID yang CodeBuild menggunakan Jalankan perintah ini untuk mendapatkan daftar semua VPC IDs di Wilayah Anda:
aws ec2 describe-vpcs --region
<region-ID>
- subnet
-
Wajib. Array subnet IDs yang mencakup sumber daya yang digunakan oleh CodeBuild. Jalankan perintah ini untuk mendapatkan iniIDs:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region
<region-ID>
- securityGroupIds
-
Wajib. Array grup keamanan yang IDs digunakan oleh CodeBuild untuk memungkinkan akses ke sumber daya di fileVPC. Jalankan perintah ini untuk mendapatkan iniIDs:
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=
<vpc-id>
" --<region-ID>
badgeEnabled
Tidak wajib. Menentukan apakah akan menyertakan lencana build dengan proyek Anda CodeBuild . Setel true
untuk mengaktifkan lencana build, atau false
lainnya. Untuk informasi selengkapnya, lihat Buat sampel lencana dengan CodeBuild.
logsConfig
LogsConfigObjek yang berisi informasi tentang lokasi log build ini.
- logsConfig/cloudWatchLogs
-
CloudWatchLogsConfigObjek yang berisi informasi tentang mendorong log ke CloudWatch Log.
- logsConfig/S3log
-
LogsConfigObjek S3 yang berisi informasi tentang mendorong log ke Amazon S3.
fileSystemLocations
Tidak wajib. Array ProjectFileSystemsLocationobjek yang berisi informasi tentang konfigurasi Amazon EFS Anda.
buildBatchConfig
Tidak wajib. buildBatchConfig
Objek adalah ProjectBuildBatchConfigstruktur yang berisi informasi konfigurasi build batch untuk proyek.
- buildBatchConfig/serviceRole
-
Peran layanan ARN untuk proyek pembuatan batch.
- buildBatchConfig/combineArtifacts
-
Nilai Boolean yang menentukan apakah akan menggabungkan artefak build untuk batch build menjadi satu lokasi artefak.
- buildBatchConfig/batasan/ maximumBuildsAllowed
-
Jumlah maksimum build yang diizinkan.
- buildBatchConfig/batasan/ computeTypesAllowed
-
Array string yang menentukan jenis komputasi yang diizinkan untuk pembangunan batch. Lihat Membangun tipe komputasi lingkungan untuk nilai ini.
- buildBatchConfig/timeoutInMinutes
-
Jumlah waktu maksimum, dalam hitungan menit, pembuatan batch harus diselesaikan.
- buildBatchConfig/batchReportMode
-
Menentukan cara laporan status build dikirim ke penyedia sumber untuk build batch. Nilai yang valid meliputi:
REPORT_AGGREGATED_BATCH
-
(Default) Gabungkan semua status build ke dalam satu laporan status.
REPORT_INDIVIDUAL_BUILDS
-
Kirim laporan status terpisah untuk setiap build individu.
concurrentBuildLimit
Jumlah maksimum membangun bersamaan yang diizinkan untuk proyek ini.
Pembuatan baru hanya dimulai jika jumlah pembuatan saat ini kurang dari atau sama dengan batas ini. Jika jumlah pembuatan saat ini memenuhi batas ini, pembuatan baru ditutup dan tidak dijalankan.
Buat proyek
Untuk membuat proyek, jalankan create-project
perintah lagi, meneruskan JSON file Anda:
aws codebuild create-project --cli-input-json file://
<json-file>
Jika berhasil, JSON representasi objek Project muncul di output konsol. Lihat Sintaks CreateProject Respons untuk contoh data ini.
Kecuali untuk nama proyek build, Anda dapat mengubah pengaturan proyek build apa pun nanti. Untuk informasi selengkapnya, lihat Mengubah pengaturan proyek build (AWS CLI).
Untuk mulai menjalankan build, lihatJalankan build (AWS CLI).
Jika kode sumber Anda disimpan dalam GitHub repositori, dan Anda CodeBuild ingin membangun kembali kode sumber setiap kali perubahan kode didorong ke repositori, lihat. Mulai menjalankan build secara otomatis ()AWS CLI
Buat proyek build (AWS SDKs)
Untuk informasi tentang menggunakan AWS CodeBuild dengan AWS SDKs, lihatAWSReferensi SDK dan alat.
Buat proyek build (AWS CloudFormation)
Untuk informasi tentang menggunakan AWS CodeBuild with AWS CloudFormation, lihat AWS CloudFormation template untuk CodeBuild di Panduan AWS CloudFormation Pengguna.