View a markdown version of this page

Memulai dengan CodeBuild - AWS CodeBuild

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

Memulai dengan CodeBuild

Dalam tutorial berikut, Anda menggunakan AWS CodeBuild untuk membangun kumpulan file input kode sumber sampel ke dalam versi kode sumber yang dapat digunakan.

Kedua tutorial memiliki input dan hasil yang sama, tetapi satu menggunakan AWS CodeBuild konsol dan yang lainnya menggunakan AWS CLI.

penting

Kami tidak menyarankan Anda menggunakan akun AWS root Anda untuk menyelesaikan tutorial ini.

Memulai dengan AWS CodeBuild menggunakan konsol

Dalam tutorial ini, Anda menggunakan AWS CodeBuild untuk membangun kumpulan file input kode sumber sampel (membangun artefak masukan atau membangun input) ke dalam versi kode sumber yang dapat digunakan (membangun artefak keluaran atau membangun output). Secara khusus, Anda menginstruksikan CodeBuild untuk menggunakan Apache Maven, alat build umum, untuk membangun satu set file kelas Java ke dalam file Java Archive (JAR). Anda tidak perlu terbiasa dengan Apache Maven atau Java untuk menyelesaikan tutorial ini.

Anda dapat bekerja dengan CodeBuild melalui CodeBuild konsol AWS CodePipeline,, AWS CLI, atau AWS SDK. Tutorial ini menunjukkan cara menggunakan CodeBuild konsol. Untuk informasi tentang penggunaan CodePipeline, lihatGunakan CodeBuild dengan CodePipeline.

penting

Langkah-langkah dalam tutorial ini mengharuskan Anda membuat sumber daya (misalnya, bucket S3) yang dapat mengakibatkan tagihan ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk CodeBuild dan untuk AWS sumber daya dan tindakan yang terkait dengan Amazon S3, AWS KMS, dan CloudWatch Log. Untuk informasi selengkapnya, lihat AWS CodeBuild harga, harga Amazon S3, AWS Key Management Service harga, dan CloudWatch harga Amazon.

Langkah 1: Buat kode sumber

(Bagian dari:Memulai dengan AWS CodeBuild menggunakan konsol)

Pada langkah ini, Anda membuat kode sumber yang ingin Anda CodeBuild bangun ke bucket keluaran. Kode sumber ini terdiri dari dua file kelas Java dan file Apache Maven Project Object Model (POM).

  1. Dalam direktori kosong di komputer atau instance lokal Anda, buat struktur direktori ini.

    (root directory name) `-- src |-- main | `-- java `-- test `-- java
  2. Menggunakan editor teks pilihan Anda, buat file ini, beri namaMessageUtil.java, lalu simpan di src/main/java direktori.

    public class MessageUtil { private String message; public MessageUtil(String message) { this.message = message; } public String printMessage() { System.out.println(message); return message; } public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; } }

    File kelas ini membuat sebagai output string karakter yang diteruskan ke dalamnya. MessageUtilKonstruktor menetapkan string karakter. printMessageMetode ini menciptakan output. Out salutationMessage put metode Hi! diikuti oleh string karakter.

  3. Buat file ini, beri namaTestMessageUtil.java, lalu simpan di /src/test/java direktori.

    import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestMessageUtil { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message,messageUtil.printMessage()); } @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); } }

    File kelas ini menetapkan message variabel di MessageUtil kelas keRobert. Kemudian menguji untuk melihat apakah message variabel berhasil diatur dengan memeriksa apakah string Robert dan Hi!Robert muncul di output.

  4. Buat file ini, beri namapom.xml, lalu simpan di direktori root (tingkat atas).

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>messageUtil</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>Message Utility Java Sample App</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> </plugins> </build> </project>

    Apache Maven menggunakan instruksi dalam file ini untuk mengonversi TestMessageUtil.java file MessageUtil.java dan menjadi file bernama messageUtil-1.0.jar dan kemudian menjalankan pengujian yang ditentukan.

Pada titik ini, struktur direktori Anda akan terlihat seperti ini.

(root directory name) |-- pom.xml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Langkah 2: Buat file buildspec

(Langkah sebelumnya: Langkah 1: Buat kode sumber)

Pada langkah ini, Anda membuat file spesifikasi build (spesifikasi build). Buildspec adalah kumpulan perintah build dan pengaturan terkait, dalam format YAML, yang digunakan untuk menjalankan CodeBuild build. Tanpa spesifikasi build, CodeBuild tidak dapat berhasil mengonversi input build Anda menjadi output build atau menemukan artefak keluaran build di lingkungan build untuk diunggah ke bucket keluaran Anda.

Buat file ini, beri namabuildspec.yml, lalu simpan di direktori root (tingkat atas).

version: 0.2 phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar
penting

Karena deklarasi spesifikasi build harus YAML yang valid, spasi dalam deklarasi spesifikasi build penting. Jika jumlah spasi dalam deklarasi spesifikasi build Anda tidak cocok dengan yang ini, build mungkin segera gagal. Anda dapat menggunakan validator YAML untuk menguji apakah deklarasi spesifikasi build Anda adalah YAML yang valid.

catatan

Alih-alih menyertakan file spesifikasi build dalam kode sumber Anda, Anda dapat mendeklarasikan perintah build secara terpisah saat Anda membuat proyek build. Ini sangat membantu jika Anda ingin membangun kode sumber Anda dengan perintah build yang berbeda tanpa memperbarui repositori kode sumber Anda setiap kali. Untuk informasi selengkapnya, lihat Sintaks Buildspec.

Dalam deklarasi spesifikasi build ini:

  • versionmewakili versi standar spesifikasi build yang digunakan. Deklarasi spesifikasi build ini menggunakan versi terbaru,0.2.

  • phasesmewakili fase build di mana Anda dapat menginstruksikan CodeBuild untuk menjalankan perintah. Fase build ini tercantum di sini sebagai installpre_build,build,, danpost_build. Anda tidak dapat mengubah ejaan nama fase build ini, dan Anda tidak dapat membuat lebih banyak nama fase build.

    Dalam contoh ini, selama build fase, CodeBuild jalankan mvn install perintah. Perintah ini menginstruksikan Apache Maven untuk mengkompilasi, menguji, dan mengemas file kelas Java yang dikompilasi ke dalam artefak keluaran build. Untuk kelengkapan, beberapa echo perintah ditempatkan di setiap fase build dalam contoh ini. Ketika Anda melihat informasi build terperinci nanti dalam tutorial ini, output dari echo perintah ini dapat membantu Anda lebih memahami bagaimana CodeBuild menjalankan perintah dan dalam urutan mana. (Meskipun semua fase build disertakan dalam contoh ini, Anda tidak diharuskan untuk menyertakan fase build jika Anda tidak berencana untuk menjalankan perintah apa pun selama fase itu.) Untuk setiap fase build, CodeBuild jalankan setiap perintah yang ditentukan, satu per satu, dalam urutan yang tercantum, dari awal hingga akhir.

  • artifactsmewakili kumpulan artefak keluaran build yang di CodeBuild unggah ke bucket keluaran. filesmewakili file untuk disertakan dalam output build. CodeBuild mengunggah messageUtil-1.0.jar file tunggal yang ditemukan di direktori target relatif di lingkungan build. Nama file messageUtil-1.0.jar dan nama direktori target didasarkan pada cara Apache Maven membuat dan menyimpan artefak keluaran build hanya untuk contoh ini. Dalam build Anda sendiri, nama file dan direktori ini berbeda.

Untuk informasi selengkapnya, lihat Referensi Buildspec.

Pada titik ini, struktur direktori Anda akan terlihat seperti ini.

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Langkah 3: Buat dua bucket S3

(Langkah sebelumnya: Langkah 2: Buat file buildspec)

Meskipun Anda dapat menggunakan satu bucket untuk tutorial ini, dua bucket membuatnya lebih mudah untuk melihat dari mana input build berasal dan ke mana output build pergi.

  • Salah satu bucket ini (bucket input) menyimpan input build. Dalam tutorial ini, nama bucket input ini adalahcodebuild-region-ID-account-ID-input-bucket, di mana region-ID adalah AWS Region dari bucket dan account-ID merupakan ID AWS akun Anda.

  • Bucket lainnya (bucket keluaran) menyimpan output build. Dalam tutorial ini, nama bucket keluaran ini adalahcodebuild-region-ID-account-ID-output-bucket.

Jika Anda memilih nama yang berbeda untuk bucket ini, pastikan untuk menggunakannya di seluruh tutorial ini.

Kedua bucket ini harus berada di Wil AWS ayah yang sama dengan bangunan Anda. Misalnya, jika Anda menginstruksikan CodeBuild untuk menjalankan build di Wilayah AS Timur (Ohio), bucket ini juga harus berada di Wilayah AS Timur (Ohio).

Untuk informasi selengkapnya, lihat Membuat Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

catatan

Meskipun CodeBuild juga mendukung input build yang disimpan di CodeCommit GitHub,, dan repositori Bitbucket, tutorial ini tidak menunjukkan cara menggunakannya. Untuk informasi selengkapnya, lihat Merencanakan build.

Langkah 4: Unggah kode sumber dan file buildspec

(Langkah sebelumnya: Langkah 3: Buat dua bucket S3)

Pada langkah ini, Anda menambahkan kode sumber dan membangun file spesifikasi ke bucket input.

Menggunakan utilitas zip sistem operasi Anda, buat file bernama MessageUtil.zip yang mencakupMessageUtil.java,TestMessageUtil.java,pom.xml, danbuildspec.yml.

Struktur direktori MessageUtil.zip file harus terlihat seperti ini.

MessageUtil.zip |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java
penting

Jangan sertakan (root directory name) direktori, hanya direktori dan file di (root directory name) direktori.

Unggah MessageUtil.zip file ke bucket input bernamacodebuild-region-ID-account-ID-input-bucket.

penting

Untuk repositori CodeCommit GitHub,, dan Bitbucket, menurut konvensi, Anda harus menyimpan file spesifikasi build yang dinamai buildspec.yml di root (tingkat atas) setiap repositori atau menyertakan deklarasi spesifikasi build sebagai bagian dari definisi proyek build. Jangan membuat file ZIP yang berisi kode sumber repositori dan membangun file spesifikasi.

Untuk input build yang disimpan di bucket S3 saja, Anda harus membuat file ZIP yang berisi kode sumber dan, menurut konvensi, file spesifikasi build yang dinamai buildspec.yml di root (tingkat atas) atau menyertakan deklarasi spesifikasi build sebagai bagian dari definisi proyek build.

Jika Anda ingin menggunakan nama yang berbeda untuk file spesifikasi build Anda, atau Anda ingin mereferensikan spesifikasi build di lokasi selain root, Anda dapat menentukan penggantian spesifikasi build sebagai bagian dari definisi proyek build. Untuk informasi selengkapnya, lihat Nama file buildspec dan lokasi penyimpanan.

Langkah 5: Buat proyek pembangunan

(Langkah sebelumnya: Langkah 4: Unggah kode sumber dan file buildspec)

Pada langkah ini, Anda membuat proyek build yang AWS CodeBuild digunakan untuk menjalankan build. Proyek build mencakup informasi tentang cara menjalankan build, termasuk di mana mendapatkan kode sumber, lingkungan build mana yang akan digunakan, perintah build mana yang akan dijalankan, dan tempat menyimpan output build. Lingkungan build mewakili kombinasi sistem operasi, runtime bahasa pemrograman, dan alat CodeBuild yang digunakan untuk menjalankan build. Lingkungan build diekspresikan sebagai gambar Docker. Untuk informasi selengkapnya, lihat ik htisar Docker di situs Docker Docker.

Untuk lingkungan build ini, Anda menginstruksikan CodeBuild untuk menggunakan image Docker yang berisi versi Java Development Kit (JDK) dan Apache Maven.

Untuk membuat proyek pembangunan
  1. Masuk ke Konsol Manajemen AWS dan buka AWS CodeBuild konsol di https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Gunakan pemilih AWS wilayah untuk memilih Wil AWS ayah yang CodeBuild didukung. Untuk informasi selengkapnya, lihat AWS CodeBuild titik akhir dan kuota di Referensi Umum Amazon Web Services.

  3. Jika halaman CodeBuild informasi ditampilkan, pilih Buat proyek build. Jika tidak, pada panel navigasi, per luas Bang un, pilih Bang un proyek, lalu pilih Buat proyek build.

  4. Pada halaman Buat proyek build, di konfigurasi proyek, untuk nama proyek, masukkan nama untuk proyek build ini (dalam contoh ini,codebuild-demo-project). Nama proyek build harus unik di setiap AWS akun. Jika Anda menggunakan nama yang berbeda, pastikan untuk menggunakannya di seluruh tutorial ini.

    catatan

    Pada halaman Buat proyek build, Anda mungkin melihat pesan kesalahan yang mirip dengan berikut ini: Anda tidak berwenang untuk melakukan operasi ini. . Ini kemungkinan besar karena Anda masuk Konsol Manajemen AWS sebagai pengguna yang tidak memiliki izin untuk membuat proyek build. Untuk memperbaikinya, keluar dari Konsol Manajemen AWS, lalu masuk kembali dengan kredensibilitas milik salah satu entitas IAM berikut:

    • Pengguna administrator di AWS akun Anda. Untuk informasi selengkapnya, lihat Membuat pengguna dan grup Akun AWS root pertama Anda di Panduan pengguna.

    • Pengguna di AWS akun Anda dengan kebijakanAWSCodeBuildAdminAccess,AmazonS3ReadOnlyAccess, dan ter IAMFullAccess kelola yang dilampirkan ke pengguna tersebut atau grup IAM tempat pengguna tersebut berada. Jika Anda tidak memiliki pengguna atau grup di AWS akun Anda dengan izin ini, dan Anda tidak dapat menambahkan izin ini ke pengguna atau grup Anda, hubungi administrator AWS akun Anda untuk mendapatkan bantuan. Untuk informasi selengkapnya, lihat AWS kebijakan yang dikelola (telah ditentukan sebelumnya) untuk AWS CodeBuild.

    Kedua opsi menyertakan izin administrator yang memungkinkan Anda membuat proyek build sehingga Anda dapat menyelesaikan tutorial ini. Sebaiknya Anda selalu menggunakan izin minimum yang diperlukan untuk menyelesaikan tugas Anda. Untuk informasi selengkapnya, lihat AWS CodeBuild referensi izin.

  5. Di Sumber, untuk Penyedia Sumber, pilih Amazon S3.

  6. Untuk Bucket, pilih codebuild- region-ID - account-ID -input- bucket.

  7. Untuk kunci objek S3, masukkanMessageUtil.zip.

  8. Di Lingkungan, untuk gambar Lingkungan, biarkan gambar terkelola dipilih.

  9. Untuk Sistem operasi, pilih Amazon Linux.

  10. Untuk Runtime (s), pilih Standar.

  11. Untuk Gambar, pilih aws/codebuild /amaz onlinux-x86_64-standard:corretto11.

  12. Di Peran Layanan, biarkan Peran layanan baru dipilih, dan biarkan nama Peran tidak berubah.

  13. Untuk Buildspec, biarkan Gunakan file buildspec dipilih.

  14. Di Artifacts, untuk Type, pilih Amazon S3.

  15. Untuk nama Bucket, pilih codebuild- region-ID - account-ID -output- bucket.

  16. Biarkan Nama dan Jalur kosong.

  17. Pilih Buat proyek pembangunan.

Langkah 6: Jalankan build

(Langkah sebelumnya: Langkah 5: Buat proyek pembangunan)

Pada langkah ini, Anda menginstruksikan AWS CodeBuild untuk menjalankan build dengan pengaturan dalam proyek build.

Untuk menjalankan build
  1. Buka AWS CodeBuild konsol di https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Di panel navigasi, pilih Bangun proyek.

  3. Dalam daftar proyek build, pilih codebuild-demo-project, lalu pilih Mulai build. Pembangunan dimulai segera.

Langkah 7: Lihat informasi build yang diringkas

(Langkah sebelumnya: Langkah 6: Jalankan build)

Pada langkah ini, Anda melihat informasi ringkasan tentang status build Anda.

Untuk melihat informasi build yang diringkas

  1. Jika <build-ID> halaman codebuild-demo-project: tidak ditampilkan, di bilah navigasi, pilih Build history. Selanjutnya, dalam daftar proyek build, untuk Project, pilih tautan Buil d run untuk codebuil d-demo-project. Seharusnya hanya ada satu tautan yang cocok. (Jika Anda telah menyelesaikan tutorial ini sebelumnya, pilih tautan dengan nilai terbaru di kolom Selesai.)

  2. Pada halaman status Build, di Detail T ahap, fase build berikut harus ditampilkan, dengan Ber hasil di kolom Status:

    • DISERAHKAN

    • ANTRI

    • PENYEDIAAN

    • UNDUH_SUMBER

    • MENGINSTAL

    • PRE_BUILD

    • MEMBANGUN

    • POST_BUILD

    • UNGGAH_ARTEFAK

    • MENYELESAIKAN

    • SELESAI

    Di Status Bang un, Suk ses harus ditampilkan.

    Jika Anda melihat Sed ang Ber jalan sebagai gantinya, pilih tombol refresh.

  3. Di samping setiap fase build, nilai Durasi menunjukkan berapa lama fase build berlangsung. Nilai Waktu akhir menunjukkan kapan fase build itu berakhir.

Langkah 8: Lihat informasi build terperinci

(Langkah sebelumnya: Langkah 7: Lihat informasi build yang diringkas)

Pada langkah ini, Anda melihat informasi terperinci tentang build Anda di CloudWatch Log.

catatan

Untuk melindungi informasi sensitif, berikut ini disembunyikan di CodeBuild log:

Untuk melihat informasi build terperinci
  1. Dengan halaman detail build yang masih ditampilkan dari langkah sebelumnya, 10.000 baris terakhir dari log build ditampilkan di log build. Untuk melihat seluruh log CloudWatch log build, pilih tautan Lihat seluruh log.

  2. Di aliran CloudWatch log log, Anda dapat menelusuri peristiwa log. Secara default, hanya set terakhir dari peristiwa log yang ditampilkan. Untuk melihat peristiwa log sebelumnya, gulir ke awal daftar.

  3. Dalam tutorial ini, sebagian besar peristiwa log berisi informasi verbose tentang CodeBuild mengunduh dan menginstal file ketergantungan build ke lingkungan build-nya, yang mungkin tidak Anda pedulikan. Anda dapat menggunakan kotak Filter peristiwa untuk mengurangi informasi yang ditampilkan. Misalnya, jika Anda memasukkan "[INFO]" peristiwa Filter, hanya peristiwa yang berisi yang [INFO] ditampilkan. Untuk informasi selengkapnya, lihat Filter dan sintaks pola di Panduan CloudWatch Pengguna Amazon.

Langkah 9: Dapatkan artefak keluaran build

(Langkah sebelumnya: Langkah 8: Lihat informasi build terperinci)

Pada langkah ini, Anda mendapatkan messageUtil-1.0.jar file yang CodeBuild dibangun dan diunggah ke bucket keluaran.

Anda dapat menggunakan CodeBuild konsol atau konsol Amazon S3 untuk menyelesaikan langkah ini.

Untuk mendapatkan artefak keluaran build (AWS CodeBuild konsol)
  1. Dengan CodeBuild konsol masih terbuka dan halaman detail build masih ditampilkan dari langkah sebelumnya, pilih tab Detail build dan gulir ke bawah ke bagian Artifacts.

    catatan

    Jika halaman detail build tidak ditampilkan, di bilah navigasi, pilih Ri wayat build, lalu pilih tautan Build run.

  2. Tautan ke folder Amazon S3 berada di bawah lokasi ungg ahan Artifacts. Tautan ini membuka folder di Amazon S3 tempat Anda menemukan file artefak keluaran messageUtil-1.0.jar build.

Untuk mendapatkan artefak keluaran build (konsol Amazon S3)
  1. Buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Buka codebuild-region-ID-account-ID-output-bucket.

  3. Buka folder codebuild-demo-project.

  4. Buka target folder, tempat Anda menemukan file artefak keluaran messageUtil-1.0.jar build.

Langkah 10: Hapus bucket S3

(Langkah sebelumnya: Langkah 9: Dapatkan artefak keluaran build)

Untuk mencegah tagihan berkelanjutan ke AWS akun Anda, Anda dapat menghapus bucket input dan output yang digunakan dalam tutorial ini. Untuk petunjuk, lihat Menghapus atau Mengosongkan Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Jika Anda menggunakan pengguna IAM atau pengguna IAM administrator untuk menghapus bucket ini, pengguna harus memiliki lebih banyak izin akses. Tambahkan pernyataan berikut antara penanda (### BEGIN ADDING STATEMENT HERE ###dan### END ADDING STATEMENTS HERE ###) ke kebijakan akses yang ada untuk pengguna.

Elips (...) dalam pernyataan ini digunakan untuk singkatnya. Jangan menghapus pernyataan apa pun dalam kebijakan akses yang ada. Jangan masukkan elips ini ke dalam kebijakan.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:DeleteBucket", "s3:DeleteObject" ], "Resource": "*" } ] }

Membungkus

Dalam tutorial ini, Anda AWS CodeBuild biasa membangun satu set file kelas Java ke dalam file JAR. Anda kemudian melihat hasil build.

Anda sekarang dapat mencoba menggunakan CodeBuild dalam skenario Anda sendiri. Ikuti petunjuk dalam Merencanakan build. Jika Anda belum merasa siap, Anda mungkin ingin mencoba membangun beberapa sampel. Untuk informasi selengkapnya, lihat Gunakan sampel berbasis kasus untuk CodeBuild.

Memulai dengan AWS CodeBuild menggunakan AWS CLI

Dalam tutorial ini, Anda menggunakan AWS CodeBuild untuk membangun kumpulan file input kode sumber sampel (disebut membangun artefak input atau membangun input) ke dalam versi kode sumber yang dapat digunakan (disebut artefak keluaran build atau output build). Secara khusus, Anda menginstruksikan CodeBuild untuk menggunakan Apache Maven, alat build umum, untuk membangun satu set file kelas Java ke dalam file Java Archive (JAR). Anda tidak perlu terbiasa dengan Apache Maven atau Java untuk menyelesaikan tutorial ini.

Anda dapat bekerja dengan CodeBuild melalui CodeBuild konsol AWS CodePipeline,, AWS CLI, atau AWS SDK. Tutorial ini menunjukkan cara menggunakan CodeBuild dengan AWS CLI. Untuk informasi tentang penggunaan CodePipeline, lihatGunakan CodeBuild dengan CodePipeline.

penting

Langkah-langkah dalam tutorial ini mengharuskan Anda membuat sumber daya (misalnya, bucket S3) yang dapat mengakibatkan tagihan ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk CodeBuild dan untuk AWS sumber daya dan tindakan yang terkait dengan Amazon S3, AWS KMS, dan CloudWatch Log. Untuk informasi selengkapnya, lihat CodeBuild harga, harga Amazon S3, AWS Key Management Service harga, dan CloudWatch harga Amazon.

Langkah 1: Buat kode sumber

(Bagian dari:Memulai dengan AWS CodeBuild menggunakan AWS CLI)

Pada langkah ini, Anda membuat kode sumber yang ingin Anda CodeBuild bangun ke bucket keluaran. Kode sumber ini terdiri dari dua file kelas Java dan file Apache Maven Project Object Model (POM).

  1. Dalam direktori kosong di komputer atau instance lokal Anda, buat struktur direktori ini.

    (root directory name) `-- src |-- main | `-- java `-- test `-- java
  2. Menggunakan editor teks pilihan Anda, buat file ini, beri namaMessageUtil.java, lalu simpan di src/main/java direktori.

    public class MessageUtil { private String message; public MessageUtil(String message) { this.message = message; } public String printMessage() { System.out.println(message); return message; } public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; } }

    File kelas ini membuat sebagai output string karakter yang diteruskan ke dalamnya. MessageUtilKonstruktor menetapkan string karakter. printMessageMetode ini menciptakan output. Out salutationMessage put metode Hi! diikuti oleh string karakter.

  3. Buat file ini, beri namaTestMessageUtil.java, lalu simpan di /src/test/java direktori.

    import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestMessageUtil { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message,messageUtil.printMessage()); } @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); } }

    File kelas ini menetapkan message variabel di MessageUtil kelas keRobert. Kemudian menguji untuk melihat apakah message variabel berhasil diatur dengan memeriksa apakah string Robert dan Hi!Robert muncul di output.

  4. Buat file ini, beri namapom.xml, lalu simpan di direktori root (tingkat atas).

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>messageUtil</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>Message Utility Java Sample App</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> </plugins> </build> </project>

    Apache Maven menggunakan instruksi dalam file ini untuk mengonversi TestMessageUtil.java file MessageUtil.java dan menjadi file bernama messageUtil-1.0.jar dan kemudian menjalankan pengujian yang ditentukan.

Pada titik ini, struktur direktori Anda akan terlihat seperti ini.

(root directory name) |-- pom.xml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Langkah 2: Buat file buildspec

(Langkah sebelumnya: Langkah 1: Buat kode sumber)

Pada langkah ini, Anda membuat file spesifikasi build (spesifikasi build). Buildspec adalah kumpulan perintah build dan pengaturan terkait, dalam format YAML, yang digunakan untuk menjalankan CodeBuild build. Tanpa spesifikasi build, CodeBuild tidak dapat berhasil mengonversi input build Anda menjadi output build atau menemukan artefak keluaran build di lingkungan build untuk diunggah ke bucket keluaran Anda.

Buat file ini, beri namabuildspec.yml, lalu simpan di direktori root (tingkat atas).

version: 0.2 phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar
penting

Karena deklarasi spesifikasi build harus YAML yang valid, spasi dalam deklarasi spesifikasi build penting. Jika jumlah spasi dalam deklarasi spesifikasi build Anda tidak cocok dengan yang ini, build mungkin segera gagal. Anda dapat menggunakan validator YAML untuk menguji apakah deklarasi spesifikasi build Anda adalah YAML yang valid.

catatan

Alih-alih menyertakan file spesifikasi build dalam kode sumber Anda, Anda dapat mendeklarasikan perintah build secara terpisah saat Anda membuat proyek build. Ini sangat membantu jika Anda ingin membangun kode sumber Anda dengan perintah build yang berbeda tanpa memperbarui repositori kode sumber Anda setiap kali. Untuk informasi selengkapnya, lihat Sintaks Buildspec.

Dalam deklarasi spesifikasi build ini:

  • versionmewakili versi standar spesifikasi build yang digunakan. Deklarasi spesifikasi build ini menggunakan versi terbaru,0.2.

  • phasesmewakili fase build di mana Anda dapat menginstruksikan CodeBuild untuk menjalankan perintah. Fase build ini tercantum di sini sebagai installpre_build,build,, danpost_build. Anda tidak dapat mengubah ejaan nama fase build ini, dan Anda tidak dapat membuat lebih banyak nama fase build.

    Dalam contoh ini, selama build fase, CodeBuild jalankan mvn install perintah. Perintah ini menginstruksikan Apache Maven untuk mengkompilasi, menguji, dan mengemas file kelas Java yang dikompilasi ke dalam artefak keluaran build. Untuk kelengkapan, beberapa echo perintah ditempatkan di setiap fase build dalam contoh ini. Ketika Anda melihat informasi build terperinci nanti dalam tutorial ini, output dari echo perintah ini dapat membantu Anda lebih memahami bagaimana CodeBuild menjalankan perintah dan dalam urutan mana. (Meskipun semua fase build disertakan dalam contoh ini, Anda tidak diharuskan untuk menyertakan fase build jika Anda tidak berencana untuk menjalankan perintah apa pun selama fase itu.) Untuk setiap fase build, CodeBuild jalankan setiap perintah yang ditentukan, satu per satu, dalam urutan yang tercantum, dari awal hingga akhir.

  • artifactsmewakili kumpulan artefak keluaran build yang di CodeBuild unggah ke bucket keluaran. filesmewakili file untuk disertakan dalam output build. CodeBuild mengunggah messageUtil-1.0.jar file tunggal yang ditemukan di direktori target relatif di lingkungan build. Nama file messageUtil-1.0.jar dan nama direktori target didasarkan pada cara Apache Maven membuat dan menyimpan artefak keluaran build hanya untuk contoh ini. Dalam build Anda sendiri, nama file dan direktori ini berbeda.

Untuk informasi selengkapnya, lihat Referensi Buildspec.

Pada titik ini, struktur direktori Anda akan terlihat seperti ini.

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Langkah 3: Buat dua bucket S3

(Langkah sebelumnya: Langkah 2: Buat file buildspec)

Meskipun Anda dapat menggunakan satu bucket untuk tutorial ini, dua bucket membuatnya lebih mudah untuk melihat dari mana input build berasal dan ke mana output build pergi.

  • Salah satu bucket ini (bucket input) menyimpan input build. Dalam tutorial ini, nama bucket input ini adalahcodebuild-region-ID-account-ID-input-bucket, di mana region-ID adalah AWS Region dari bucket dan account-ID merupakan ID AWS akun Anda.

  • Bucket lainnya (bucket keluaran) menyimpan output build. Dalam tutorial ini, nama bucket keluaran ini adalahcodebuild-region-ID-account-ID-output-bucket.

Jika Anda memilih nama yang berbeda untuk bucket ini, pastikan untuk menggunakannya di seluruh tutorial ini.

Kedua bucket ini harus berada di Wil AWS ayah yang sama dengan bangunan Anda. Misalnya, jika Anda menginstruksikan CodeBuild untuk menjalankan build di Wilayah AS Timur (Ohio), bucket ini juga harus berada di Wilayah AS Timur (Ohio).

Untuk informasi selengkapnya, lihat Membuat Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

catatan

Meskipun CodeBuild juga mendukung input build yang disimpan di CodeCommit GitHub,, dan repositori Bitbucket, tutorial ini tidak menunjukkan cara menggunakannya. Untuk informasi selengkapnya, lihat Merencanakan build.

Langkah 4: Unggah kode sumber dan file buildspec

(Langkah sebelumnya: Langkah 3: Buat dua bucket S3)

Pada langkah ini, Anda menambahkan kode sumber dan membangun file spesifikasi ke bucket input.

Menggunakan utilitas zip sistem operasi Anda, buat file bernama MessageUtil.zip yang mencakupMessageUtil.java,TestMessageUtil.java,pom.xml, danbuildspec.yml.

Struktur direktori MessageUtil.zip file harus terlihat seperti ini.

MessageUtil.zip |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java
penting

Jangan sertakan (root directory name) direktori, hanya direktori dan file di (root directory name) direktori.

Unggah MessageUtil.zip file ke bucket input bernamacodebuild-region-ID-account-ID-input-bucket.

penting

Untuk repositori CodeCommit GitHub,, dan Bitbucket, menurut konvensi, Anda harus menyimpan file spesifikasi build yang dinamai buildspec.yml di root (tingkat atas) setiap repositori atau menyertakan deklarasi spesifikasi build sebagai bagian dari definisi proyek build. Jangan membuat file ZIP yang berisi kode sumber repositori dan membangun file spesifikasi.

Untuk input build yang disimpan di bucket S3 saja, Anda harus membuat file ZIP yang berisi kode sumber dan, menurut konvensi, file spesifikasi build yang dinamai buildspec.yml di root (tingkat atas) atau menyertakan deklarasi spesifikasi build sebagai bagian dari definisi proyek build.

Jika Anda ingin menggunakan nama yang berbeda untuk file spesifikasi build Anda, atau Anda ingin mereferensikan spesifikasi build di lokasi selain root, Anda dapat menentukan penggantian spesifikasi build sebagai bagian dari definisi proyek build. Untuk informasi selengkapnya, lihat Nama file buildspec dan lokasi penyimpanan.

Langkah 5: Buat proyek pembangunan

(Langkah sebelumnya: Langkah 4: Unggah kode sumber dan file buildspec)

Pada langkah ini, Anda membuat proyek build yang AWS CodeBuild digunakan untuk menjalankan build. Proyek build mencakup informasi tentang cara menjalankan build, termasuk di mana mendapatkan kode sumber, lingkungan build mana yang akan digunakan, perintah build mana yang akan dijalankan, dan tempat menyimpan output build. Lingkungan build mewakili kombinasi sistem operasi, runtime bahasa pemrograman, dan alat CodeBuild yang digunakan untuk menjalankan build. Lingkungan build diekspresikan sebagai gambar Docker. Untuk informasi selengkapnya, lihat ik htisar Docker di situs Docker Docker.

Untuk lingkungan build ini, Anda menginstruksikan CodeBuild untuk menggunakan image Docker yang berisi versi Java Development Kit (JDK) dan Apache Maven.

Untuk membuat proyek pembangunan
  1. Gunakan AWS CLI untuk menjalankan create-project perintah:

    aws codebuild create-project --generate-cli-skeleton

    JSON-formatted data muncul di output. Salin data ke file bernama create-project.json di lokasi di komputer lokal atau instance tempat AWS CLI diinstal. Jika Anda memilih untuk menggunakan nama file yang berbeda, pastikan untuk menggunakannya di seluruh tutorial ini.

    Ubah data yang disalin untuk mengikuti format ini, lalu simpan hasil Anda:

    { "name": "codebuild-demo-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "serviceIAMRole" }

    Ganti serviceIAMRole dengan Nama Sumber Daya Amazon (ARN) dari peran CodeBuild layanan (misalnya,arn:aws:iam::account-ID:role/role-name). Untuk membuatnya, lihat Memungkinkan CodeBuild untuk berinteraksi dengan orang lain AWS layanan.

    Dalam data ini:

    • namemewakili pengidentifikasi yang diperlukan untuk proyek build ini (dalam contoh ini,codebuild-demo-project). Nama proyek build harus unik di semua proyek build di akun Anda.

    • Forsource, type adalah nilai wajib yang mewakili jenis repositori kode sumber (dalam contoh ini, S3 untuk bucket Amazon S3).

    • Untuksource, location mewakili jalur ke kode sumber (dalam contoh ini, nama bucket input diikuti oleh nama file ZIP).

    • Forartifacts, type adalah nilai wajib yang mewakili jenis repositori artefak keluaran build (dalam contoh ini, S3 untuk bucket Amazon S3).

    • Forartifacts, location mewakili nama bucket keluaran yang Anda buat atau identifikasi sebelumnya (dalam contoh ini,codebuild-region-ID-account-ID-output-bucket).

    • Forenvironment, type adalah nilai yang diperlukan yang mewakili jenis lingkungan build (dalam contoh ini,LINUX_CONTAINER).

    • Forenvironment, image adalah nilai yang diperlukan yang mewakili nama gambar Docker dan kombinasi tag yang digunakan proyek build ini, seperti yang ditentukan oleh jenis repositori gambar Docker (dalam contoh ini, aws/codebuild/standard:5.0 untuk gambar Docker di repositori gambar CodeBuild Docker). aws/codebuild/standardadalah nama gambar Docker. 5.0adalah tag gambar Docker.

      Untuk menemukan lebih banyak gambar Docker yang dapat Anda gunakan dalam skenario Anda, lihat. Membangun referensi lingkungan

    • Untukenvironment, computeType adalah nilai yang diperlukan yang mewakili CodeBuild penggunaan sumber daya komputasi (dalam contoh ini,BUILD_GENERAL1_SMALL).

    catatan

    Nilai lain yang tersedia dalam JSON-formatted data asli, sepertidescription,buildspec, auth (termasuk type danresource),, pathnamespaceType, name (untukartifacts),packaging, environmentVariables (termasuk name danvalue),, timeoutInMinutesencryptionKey, dan tags (termasuk key danvalue) bersifat opsional. Mereka tidak digunakan dalam tutorial ini, jadi mereka tidak ditampilkan di sini. Untuk informasi selengkapnya, lihat Buat proyek build (AWS CLI).

  2. Beralih ke direktori yang berisi file yang baru saja Anda simpan, lalu jalankan create-project perintah lagi.

    aws codebuild create-project --cli-input-json file://create-project.json

    Jika berhasil, data yang mirip dengan ini muncul di output.

    { "project": { "name": "codebuild-demo-project", "serviceRole": "serviceIAMRole", "tags": [], "artifacts": { "packaging": "NONE", "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "name": "message-util.zip" }, "lastModified": 1472661575.244, "timeoutInMinutes": 60, "created": 1472661575.244, "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "encryptionKey": "arn:aws:kms:region-ID:account-ID:alias/aws/s3", "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project" } }
    • projectmewakili informasi tentang proyek pembangunan ini.

      • tagsmewakili setiap tag yang dideklarasikan.

      • packagingmewakili bagaimana artefak keluaran build disimpan dalam bucket keluaran. NONEberarti bahwa folder dibuat di bucket keluaran. Artefak keluaran build disimpan di folder itu.

      • lastModifiedmewakili waktu, dalam format waktu Unix, ketika informasi tentang proyek build terakhir diubah.

      • timeoutInMinutesmewakili jumlah menit setelah CodeBuild itu menghentikan build jika build belum selesai. (Defaultnya adalah 60 menit.)

      • createdmewakili waktu, dalam format waktu Unix, ketika proyek build dibuat.

      • environmentVariablesmewakili variabel lingkungan apa pun yang dideklarasikan dan tersedia CodeBuild untuk digunakan selama pembuatan.

      • encryptionKeymewakili ARN dari kunci yang dikelola pelanggan yang CodeBuild digunakan untuk mengenkripsi artefak keluaran build.

      • arnmewakili ARN dari proyek pembangunan.

catatan

Setelah Anda menjalankan create-project perintah, pesan kesalahan yang mirip dengan berikut mungkin keluar: Pengguna: tidak user-ARN berwenang untuk melakukan: codebuild: CreateProject. Ini kemungkinan besar karena Anda mengonfigurasi AWS CLI dengan kredenSIAL pengguna yang tidak memiliki izin yang cukup untuk digunakan CodeBuild untuk membuat proyek build. Untuk memperbaikinya, konfigurasikan AWS CLI dengan kredenSIAL milik salah satu entitas IAM berikut:

  • Pengguna administrator di AWS akun Anda. Untuk informasi selengkapnya, lihat Membuat pengguna dan grup Akun AWS root pertama Anda di Panduan pengguna.

  • Pengguna di AWS akun Anda dengan kebijakanAWSCodeBuildAdminAccess,AmazonS3ReadOnlyAccess, dan ter IAMFullAccess kelola yang dilampirkan ke pengguna tersebut atau grup IAM tempat pengguna tersebut berada. Jika Anda tidak memiliki pengguna atau grup di AWS akun Anda dengan izin ini, dan Anda tidak dapat menambahkan izin ini ke pengguna atau grup Anda, hubungi administrator AWS akun Anda untuk mendapatkan bantuan. Untuk informasi selengkapnya, lihat AWS kebijakan yang dikelola (telah ditentukan sebelumnya) untuk AWS CodeBuild.

Langkah 6: Jalankan build

(Langkah sebelumnya: Langkah 5: Buat proyek pembangunan)

Pada langkah ini, Anda menginstruksikan AWS CodeBuild untuk menjalankan build dengan pengaturan dalam proyek build.

Untuk menjalankan build
  1. Gunakan AWS CLI untuk menjalankan start-build perintah:

    aws codebuild start-build --project-name project-name

    Ganti project-name dengan nama proyek build Anda dari langkah sebelumnya (misalnya,codebuild-demo-project).

  2. Jika berhasil, data yang mirip dengan berikut ini muncul di output:

    { "build": { "buildComplete": false, "initiator": "user-name", "artifacts": { "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip" }, "projectName": "codebuild-demo-project", "timeoutInMinutes": 60, "buildStatus": "IN_PROGRESS", "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "currentPhase": "SUBMITTED", "startTime": 1472848787.882, "id": "codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE", "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE" } }
    • buildmewakili informasi tentang build ini.

      • buildCompletemewakili apakah build telah selesai (true). Atau, false.

      • initiatormewakili entitas yang memulai pembangunan.

      • artifactsmewakili informasi tentang output build, termasuk lokasinya.

      • projectNamemewakili nama proyek pembangunan.

      • buildStatusmewakili status build saat ini saat start-build perintah dijalankan.

      • currentPhasemewakili fase build saat ini ketika start-build perintah dijalankan.

      • startTimemewakili waktu, dalam format waktu Unix, ketika proses pembuatan dimulai.

      • idmewakili ID build.

      • arnmewakili ARN bangunan.

    Catat nil id ainya. Anda membutuhkannya di langkah berikutnya.

Langkah 7: Lihat informasi build yang diringkas

(Langkah sebelumnya: Langkah 6: Jalankan build)

Pada langkah ini, Anda melihat informasi ringkasan tentang status build Anda.

Untuk melihat informasi build yang diringkas
  • Gunakan AWS CLI untuk menjalankan batch-get-builds perintah.

    aws codebuild batch-get-builds --ids id

    Ganti id dengan id nilai yang muncul di output langkah sebelumnya.

    Jika berhasil, data yang mirip dengan ini muncul di output.

    { "buildsNotFound": [], "builds": [ { "buildComplete": true, "phases": [ { "phaseStatus": "SUCCEEDED", "endTime": 1472848788.525, "phaseType": "SUBMITTED", "durationInSeconds": 0, "startTime": 1472848787.882 }, ... The full list of build phases has been omitted for brevity ... { "phaseType": "COMPLETED", "startTime": 1472848878.079 } ], "logs": { "groupName": "/aws/codebuild/codebuild-demo-project", "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE", "streamName": "38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE" }, "artifacts": { "md5sum": "MD5-hash", "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip", "sha256sum": "SHA-256-hash" }, "projectName": "codebuild-demo-project", "timeoutInMinutes": 60, "initiator": "user-name", "buildStatus": "SUCCEEDED", "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "currentPhase": "COMPLETED", "startTime": 1472848787.882, "endTime": 1472848878.079, "id": "codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE", "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE" } ] }
    • buildsNotFoundmewakili ID build untuk setiap build di mana informasi tidak tersedia. Dalam contoh ini, itu harus kosong.

    • buildsmewakili informasi tentang setiap build di mana informasi tersedia. Dalam contoh ini, informasi tentang hanya satu build muncul di output.

      • phasesmewakili serangkaian fase build yang CodeBuild berjalan selama proses build. Informasi tentang setiap fase build terdaftar secara terpisah sebagaistartTime,endTime, dan durationInSeconds (ketika fase build dimulai dan berakhir, dinyatakan dalam format waktu Unix, dan berapa lama berlangsung, dalam detik), dan phaseType seperti (SUBMITTED,PROVISIONING,DOWNLOAD_SOURCE,INSTALL,PRE_BUILD,BUILD,POST_BUILD,UPLOAD_ARTIFACTS,FINALIZING, atauCOMPLETED) dan phaseStatus (sepertiSUCCEEDED,,FAILED,FAULT, TIMED_OUTIN_PROGRESS, atauSTOPPED). Pertama kali Anda menjalankan batch-get-builds perintah, mungkin tidak ada banyak (atau apa pun) fase. Setelah menjalankan batch-get-builds perintah berikutnya dengan ID build yang sama, lebih banyak fase build akan muncul di output.

      • logsmewakili informasi di Amazon CloudWatch Logs tentang log build.

      • md5sumdan sha256sum mewakili MD5 dan SHA-256 hash dari artefak keluaran build. Ini muncul dalam output hanya jika packaging nilai proyek build disetel keZIP. (Anda tidak menetapkan nilai ini dalam tutorial ini.) Anda dapat menggunakan hash ini bersama dengan alat checksum untuk mengonfirmasi integritas dan keaslian file.

        catatan

        Anda juga dapat menggunakan konsol Amazon S3 untuk melihat hash ini. Pilih kotak di sebelah artefak keluaran build, pilih Ac tions, lalu pilih Proper ties. Di panel Properties, perluas Metadata, dan lihat nilai untuk x-amz-meta-codebuild-content-md5 dan x-amz-meta- codebuild-content-sha256. (Di konsol Amazon S3, nilai ETag artefak keluaran build tidak boleh ditafsirkan sebagai MD5 atau SHA-256 hash.)

        Jika Anda menggunakan AWS SDK untuk mendapatkan hash ini, nilainya diberi nama dan. codebuild-content-md5 codebuild-content-sha256

      • endTimemewakili waktu, dalam format waktu Unix, ketika proses pembuatan berakhir.

    catatan

    Metadata Amazon S3 memiliki CodeBuild header bernama x-amz-meta-codebuild-buildarn yang berisi buildArn CodeBuild build yang menerbitkan artefak ke Amazon S3. Dit buildArn ambahkan untuk memungkinkan pelacakan sumber untuk pemberitahuan dan referensi dari mana bangunan artefak dihasilkan.

Langkah 8: Lihat informasi build terperinci

(Langkah sebelumnya: Langkah 7: Lihat informasi build yang diringkas)

Pada langkah ini, Anda melihat informasi terperinci tentang build Anda di CloudWatch Log.

catatan

Untuk melindungi informasi sensitif, berikut ini disembunyikan di CodeBuild log:

Untuk melihat informasi build terperinci
  1. Gunakan browser web Anda untuk pergi ke deepLink lokasi yang muncul di output pada langkah sebelumnya (misalnya,https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE).

  2. Di aliran CloudWatch log log, Anda dapat menelusuri peristiwa log. Secara default, hanya set terakhir dari peristiwa log yang ditampilkan. Untuk melihat peristiwa log sebelumnya, gulir ke awal daftar.

  3. Dalam tutorial ini, sebagian besar peristiwa log berisi informasi verbose tentang CodeBuild mengunduh dan menginstal file ketergantungan build ke lingkungan build-nya, yang mungkin tidak Anda pedulikan. Anda dapat menggunakan kotak Filter peristiwa untuk mengurangi informasi yang ditampilkan. Misalnya, jika Anda memasukkan "[INFO]" peristiwa Filter, hanya peristiwa yang berisi yang [INFO] ditampilkan. Untuk informasi selengkapnya, lihat Filter dan sintaks pola di Panduan CloudWatch Pengguna Amazon.

Bagian-bagian dari aliran CloudWatch log log ini berkaitan dengan tutorial ini.

... [Container] 2016/04/15 17:49:42 Entering phase PRE_BUILD [Container] 2016/04/15 17:49:42 Running command echo Entering pre_build phase... [Container] 2016/04/15 17:49:42 Entering pre_build phase... [Container] 2016/04/15 17:49:42 Phase complete: PRE_BUILD Success: true [Container] 2016/04/15 17:49:42 Entering phase BUILD [Container] 2016/04/15 17:49:42 Running command echo Entering build phase... [Container] 2016/04/15 17:49:42 Entering build phase... [Container] 2016/04/15 17:49:42 Running command mvn install [Container] 2016/04/15 17:49:44 [INFO] Scanning for projects... [Container] 2016/04/15 17:49:44 [INFO] [Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:44 [INFO] Building Message Utility Java Sample App 1.0 [Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ ... [Container] 2016/04/15 17:49:55 ------------------------------------------------------- [Container] 2016/04/15 17:49:55 T E S T S [Container] 2016/04/15 17:49:55 ------------------------------------------------------- [Container] 2016/04/15 17:49:55 Running TestMessageUtil [Container] 2016/04/15 17:49:55 Inside testSalutationMessage() [Container] 2016/04/15 17:49:55 Hi!Robert [Container] 2016/04/15 17:49:55 Inside testPrintMessage() [Container] 2016/04/15 17:49:55 Robert [Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 sec [Container] 2016/04/15 17:49:55 [Container] 2016/04/15 17:49:55 Results : [Container] 2016/04/15 17:49:55 [Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 ... [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 [INFO] BUILD SUCCESS [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 [INFO] Total time: 11.845 s [Container] 2016/04/15 17:49:56 [INFO] Finished at: 2016-04-15T17:49:56+00:00 [Container] 2016/04/15 17:49:56 [INFO] Final Memory: 18M/216M [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 Phase complete: BUILD Success: true [Container] 2016/04/15 17:49:56 Entering phase POST_BUILD [Container] 2016/04/15 17:49:56 Running command echo Entering post_build phase... [Container] 2016/04/15 17:49:56 Entering post_build phase... [Container] 2016/04/15 17:49:56 Phase complete: POST_BUILD Success: true [Container] 2016/04/15 17:49:57 Preparing to copy artifacts [Container] 2016/04/15 17:49:57 Assembling file list [Container] 2016/04/15 17:49:57 Expanding target/messageUtil-1.0.jar [Container] 2016/04/15 17:49:57 Found target/messageUtil-1.0.jar [Container] 2016/04/15 17:49:57 Creating zip artifact

Dalam contoh ini, CodeBuild berhasil menyelesaikan fase pra-build, build, dan post-build. Itu menjalankan pengujian unit dan berhasil membangun messageUtil-1.0.jar file.

Langkah 9: Dapatkan artefak keluaran build

(Langkah sebelumnya: Langkah 8: Lihat informasi build terperinci)

Pada langkah ini, Anda mendapatkan messageUtil-1.0.jar file yang CodeBuild dibangun dan diunggah ke bucket keluaran.

Anda dapat menggunakan CodeBuild konsol atau konsol Amazon S3 untuk menyelesaikan langkah ini.

Untuk mendapatkan artefak keluaran build (AWS CodeBuild konsol)
  1. Dengan CodeBuild konsol masih terbuka dan halaman detail build masih ditampilkan dari langkah sebelumnya, pilih tab Detail build dan gulir ke bawah ke bagian Artifacts.

    catatan

    Jika halaman detail build tidak ditampilkan, di bilah navigasi, pilih Ri wayat build, lalu pilih tautan Build run.

  2. Tautan ke folder Amazon S3 berada di bawah lokasi ungg ahan Artifacts. Tautan ini membuka folder di Amazon S3 tempat Anda menemukan file artefak keluaran messageUtil-1.0.jar build.

Untuk mendapatkan artefak keluaran build (konsol Amazon S3)
  1. Buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Buka codebuild-region-ID-account-ID-output-bucket.

  3. Buka folder codebuild-demo-project.

  4. Buka target folder, tempat Anda menemukan file artefak keluaran messageUtil-1.0.jar build.

Langkah 10: Hapus bucket S3

(Langkah sebelumnya: Langkah 9: Dapatkan artefak keluaran build)

Untuk mencegah tagihan berkelanjutan ke AWS akun Anda, Anda dapat menghapus bucket input dan output yang digunakan dalam tutorial ini. Untuk petunjuk, lihat Menghapus atau Mengosongkan Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Jika Anda menggunakan pengguna IAM atau pengguna IAM administrator untuk menghapus bucket ini, pengguna harus memiliki lebih banyak izin akses. Tambahkan pernyataan berikut antara penanda (### BEGIN ADDING STATEMENT HERE ###dan### END ADDING STATEMENTS HERE ###) ke kebijakan akses yang ada untuk pengguna.

Elips (...) dalam pernyataan ini digunakan untuk singkatnya. Jangan menghapus pernyataan apa pun dalam kebijakan akses yang ada. Jangan masukkan elips ini ke dalam kebijakan.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:DeleteBucket", "s3:DeleteObject" ], "Resource": "*" } ] }

Membungkus

Dalam tutorial ini, Anda AWS CodeBuild biasa membangun satu set file kelas Java ke dalam file JAR. Anda kemudian melihat hasil build.

Anda sekarang dapat mencoba menggunakan CodeBuild dalam skenario Anda sendiri. Ikuti petunjuk dalam Merencanakan build. Jika Anda belum merasa siap, Anda mungkin ingin mencoba membangun beberapa sampel. Lihat informasi yang lebih lengkap di Gunakan sampel berbasis kasus untuk CodeBuild.