Sampel Amazon Elastic File System untuk AWS CodeBuild - AWS CodeBuild

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

Sampel Amazon Elastic File System untuk AWS CodeBuild

Anda mungkin ingin membuat AWS CodeBuild build di Amazon Elastic File System, layanan file bersama yang dapat diskalakan untuk instans Amazon EC2. Kapasitas penyimpanan dengan Amazon EFS elastis, sehingga tumbuh atau menyusut saat file ditambahkan dan dihapus. Ini memiliki antarmuka layanan web sederhana yang dapat Anda gunakan untuk membuat dan mengkonfigurasi sistem file. Ini juga mengelola semua infrastruktur penyimpanan file untuk Anda, jadi Anda tidak perlu khawatir tentang menyebarkan, menambal, atau memelihara konfigurasi sistem file. Untuk informasi selengkapnya, lihat Apa itu Amazon Elastic File System? di Panduan Pengguna Amazon Elastic File System.

Contoh ini menunjukkan kepada Anda cara mengonfigurasi CodeBuild proyek sehingga dipasang dan kemudian membangun aplikasi Java ke sistem file Amazon EFS. Sebelum memulai, Anda harus memiliki aplikasi Java yang siap dibangun yang diunggah ke bucket input S3 atau, GitHub Enterprise Server AWS CodeCommit GitHub, atau repositori Bitbucket.

Data dalam perjalanan untuk sistem file Anda dienkripsi. Untuk mengenkripsi data dalam perjalanan menggunakan gambar yang berbeda, lihat Mengenkripsi data dalam perjalanan.

Langkah-langkah tingkat tinggi

Sampel ini mencakup tiga langkah tingkat tinggi yang diperlukan untuk menggunakan Amazon EFS dengan AWS CodeBuild:

  1. Buat virtual private cloud (VPC) di akun Anda AWS .

  2. Buat sistem file yang menggunakan VPC ini.

  3. Buat dan bangun CodeBuild proyek yang menggunakan VPC. CodeBuild Proyek ini menggunakan yang berikut ini untuk mengidentifikasi sistem file:

    • Pengidentifikasi sistem file yang unik. Anda memilih pengenal saat menentukan sistem file dalam proyek build Anda.

    • ID sistem file. ID ditampilkan saat Anda melihat sistem file di konsol Amazon EFS.

    • Titik pemasangan. Ini adalah direktori di wadah Docker Anda yang memasang sistem file.

    • Opsi pemasangan. Ini termasuk rincian tentang cara me-mount sistem file.

catatan

Sistem file yang dibuat di Amazon EFS hanya didukung pada platform Linux.

Buat VPC menggunakan AWS CloudFormation

Buat VPC Anda dengan template. AWS CloudFormation

  1. Ikuti petunjuk yang digunakan AWS CloudFormationTemplat VPC AWS CloudFormation untuk membuat VPC.

    catatan

    VPC yang dibuat oleh AWS CloudFormation template ini memiliki dua subnet pribadi dan dua subnet publik. Anda hanya boleh menggunakan subnet pribadi ketika Anda menggunakan AWS CodeBuild untuk me-mount sistem file yang Anda buat di Amazon EFS. Jika Anda menggunakan salah satu subnet publik, build gagal.

  2. Masuk ke AWS Management Console dan buka konsol VPC Amazon di https://console.aws.amazon.com/vpc/.

  3. Pilih VPC yang Anda buat dengan. AWS CloudFormation

  4. Pada tab Deskripsi, catat nama VPC Anda dan ID-nya. Keduanya diperlukan saat Anda membuat AWS CodeBuild proyek nanti dalam sampel ini.

Buat sistem file Amazon Elastic File System dengan VPC Anda

Buat sistem file Amazon EFS sederhana untuk sampel ini menggunakan VPC yang Anda buat sebelumnya.

  1. Masuk ke AWS Management Console dan buka konsol Amazon EFS di https://console.aws.amazon.com/efs/.

  2. Pilih Buat sistem file.

  3. Dari VPC, pilih nama VPC yang Anda catat sebelumnya dalam sampel ini.

  4. Biarkan Availability Zones yang terkait dengan subnet Anda dipilih.

  5. Pilih Langkah Selanjutnya.

  6. Di Tambahkan tag, untuk kunci Nama default, di Nilai, masukkan nama sistem file Amazon EFS Anda.

  7. Tetap pilih Bursting dan Tujuan Umum sebagai mode kinerja dan throughput default Anda, lalu pilih Langkah Berikutnya.

  8. Untuk Konfigurasi akses klien, pilih Langkah Berikutnya.

  9. Pilih Buat Sistem File.

  10. (Opsional) Sebaiknya tambahkan kebijakan ke sistem file Amazon EFS Anda yang memberlakukan enkripsi data dalam perjalanan. Di konsol Amazon EFS, pilih Kebijakan sistem file, pilih Edit, pilih kotak berlabel Terapkan enkripsi dalam perjalanan untuk semua klien, lalu pilih Simpan.

Buat CodeBuild proyek untuk digunakan dengan Amazon EFS

Buat AWS CodeBuild proyek yang menggunakan VPC yang Anda buat sebelumnya dalam contoh ini. Saat build dijalankan, ia memasang sistem file Amazon EFS yang dibuat sebelumnya. Selanjutnya, ia menyimpan file.jar yang dibuat oleh aplikasi Java Anda di direktori mount point sistem file Anda.

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

  2. Dari panel navigasi, pilih Build projects, lalu pilih Create build project.

  3. Dalam Nama proyek, masukkan nama untuk proyek Anda.

  4. Dari penyedia Sumber, pilih repositori yang berisi aplikasi Java yang ingin Anda bangun.

  5. Masukkan informasi, seperti URL repositori, yang CodeBuild digunakan untuk menemukan aplikasi Anda. Pilihannya berbeda untuk setiap penyedia sumber. Untuk informasi selengkapnya, lihat Choose source provider.

  6. Dari gambar Lingkungan, pilih Gambar terkelola.

  7. Dari Sistem operasi, pilih Amazon Linux 2.

  8. Dari Runtime, pilih Standar.

  9. Dari Gambar, pilih aws/codebuild/amazonlinux2-x86_64-standard:4.0.

  10. Dari jenis Lingkungan, pilih Linux.

  11. Di bawah Peran layanan, pilih Peran layanan baru. Di Nama peran, masukkan nama untuk peran yang CodeBuild dibuat untuk Anda.

  12. Perluas Additional configuration (Konfigurasi tambahan).

  13. Pilih Aktifkan bendera ini jika Anda ingin membuat gambar Docker atau ingin build Anda mendapatkan hak istimewa yang lebih tinggi.

    catatan

    Secara default, daemon Docker diaktifkan untuk build non-VPC. Jika Anda ingin menggunakan kontainer Docker untuk build VPC, lihat Runtime Privilege dan Kemampuan Linux di situs web Docker Docs dan aktifkan mode istimewa. Juga, Windows tidak mendukung mode istimewa.

  14. Dari VPC, pilih ID VPC.

  15. Dari Subnet, pilih satu atau beberapa subnet pribadi yang terkait dengan VPC Anda. Anda harus menggunakan subnet pribadi dalam build yang memasang sistem file Amazon EFS. Jika Anda menggunakan subnet publik, build gagal.

  16. Dari Grup Keamanan, pilih grup keamanan default.

  17. Dalam sistem File, masukkan informasi berikut:

    • Untuk Identifier, masukkan pengenal sistem file unik. Itu harus kurang dari 129 karakter dan hanya berisi karakter alfanumerik dan garis bawah. CodeBuild menggunakan pengenal ini untuk membuat variabel lingkungan yang mengidentifikasi sistem file elastis. Format variabel lingkungan CODEBUILD_<file_system_identifier> dalam huruf kapital. Misalnya, jika Anda masukmy_efs, variabel lingkungan adalahCODEBUILD_MY_EFS.

    • Untuk ID, pilih ID sistem file.

    • (Opsional) Masukkan direktori dalam sistem file. CodeBuild memasang direktori ini. Jika Anda membiarkan jalur Direktori kosong, CodeBuild pasang seluruh sistem file. Path relatif terhadap root sistem file.

    • Untuk Mount point, masukkan path absolut direktori di container build tempat sistem file dipasang. Jika direktori ini tidak ada, CodeBuild buat selama pembuatan.

    • (Opsional) Masukkan opsi pemasangan. Jika Anda membiarkan opsi Mount kosong, CodeBuild gunakan opsi pemasangan defaultnya:

      nfsvers=4.1 rsize=1048576 wsize=1048576 hard timeo=600 retrans=2

      Untuk informasi selengkapnya, lihat Opsi Pemasangan NFS yang Disarankan di Panduan Pengguna Amazon Elastic File System.

  18. Untuk spesifikasi Build, pilih Insert build command, lalu pilih Switch to editor.

  19. Masukkan perintah spesifikasi build berikut ke dalam editor. Ganti <file_system_identifier> dengan pengenal yang Anda masukkan pada langkah 17. Gunakan huruf kapital (misalnya,CODEBUILD_MY_EFS).

    version: 0.2 phases: install: runtime-versions: java: corretto11 build: commands: - mvn compile -Dgpg.skip=true -Dmaven.repo.local=$CODEBUILD_<file_system_identifier>
  20. Gunakan nilai default untuk semua pengaturan lainnya, lalu pilih Buat proyek build. Ketika build Anda selesai, halaman konsol untuk project Anda akan ditampilkan.

  21. Pilih Mulai membangun.

CodeBuild dan ringkasan sampel Amazon EFS

Setelah AWS CodeBuild proyek Anda dibangun:

  • Anda memiliki file.jar yang dibuat oleh aplikasi Java Anda yang dibangun ke sistem file Amazon EFS Anda di bawah direktori mount point Anda.

  • Variabel lingkungan yang mengidentifikasi sistem file Anda dibuat menggunakan pengenal sistem file yang Anda masukkan saat Anda membuat proyek.

Untuk informasi selengkapnya, lihat Memasang sistem file di Panduan Pengguna Amazon Elastic File System.

Pemecahan Masalah

Berikut ini adalah kesalahan yang mungkin Anda temui saat menyiapkan Amazon EFS dengan CodeBuild.

CLIENT_ERROR: pemasangan '127.0.0.1: /' gagal. izin ditolak

Otorisasi IAM tidak didukung untuk memasang Amazon EFS dengan. CodeBuild Jika Anda menggunakan kebijakan sistem file Amazon EFS khusus, Anda harus memberikan akses baca dan tulis ke semua prinsip IAM. Sebagai contoh:

"Principal": { "AWS": "*" }

CLIENT_ERROR: pemasangan '127.0.0.1: /' gagal. koneksi diatur ulang oleh rekan

Ada dua kemungkinan penyebab kesalahan ini:

  • Subnet CodeBuild VPC berada di zona ketersediaan yang berbeda dari target pemasangan Amazon EFS. Anda dapat mengatasinya dengan menambahkan subnet VPC di zona ketersediaan yang sama dengan target pemasangan Amazon EFS.

  • Grup keamanan tidak memiliki izin untuk berkomunikasi dengan Amazon EFS. Anda dapat mengatasinya dengan menambahkan aturan masuk untuk mengizinkan semua lalu lintas dari VPC (tambahkan blok CIDR utama untuk VPC Anda), atau grup keamanan itu sendiri.

VPC_CLIENT_ERROR: Kesalahan EC2 yang tidak terduga: UnauthorizedOperation

Kesalahan ini terjadi ketika semua subnet dalam konfigurasi VPC Anda untuk CodeBuild proyek adalah subnet publik. Anda harus memiliki setidaknya satu subnet pribadi di VPC untuk memastikan konektivitas jaringan.