

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
<a name="sample-efs"></a>

 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?](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) 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](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) dalam perjalanan. 

**Topics**
+ [Gunakan AWS CodeBuild dengan Amazon Elastic File System](#sample-efs-high-level-steps)
+ [Memecahkan masalah integrasi Amazon EFS](sample-efs-troubleshooting.md)

## Gunakan AWS CodeBuild dengan Amazon Elastic File System
<a name="sample-efs-high-level-steps"></a>

Sampel mencakup empat langkah tingkat tinggi yang diperlukan untuk menggunakan Amazon EFS dengan AWS CodeBuild. File tersebut adalah: 

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

1. Buat sistem file yang menggunakan VPC ini. 

1. 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.

1. Tinjau proyek build untuk memastikan bahwa file dan variabel proyek yang benar dihasilkan.

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

 

**Topics**
+ [Langkah 1: Buat VPC menggunakan CloudFormation](#sample-efs-create-vpc)
+ [Langkah 2: Buat sistem file Amazon Elastic File System dengan VPC Anda](#sample-efs-create-efs)
+ [Langkah 3: Buat CodeBuild proyek untuk digunakan dengan Amazon EFS](#sample-efs-create-acb)
+ [Langkah 4: Tinjau proyek pembangunan](#sample-efs-summary)

### Langkah 1: Buat VPC menggunakan CloudFormation
<a name="sample-efs-create-vpc"></a>

 Buat VPC Anda dengan template. CloudFormation 

1.  Ikuti petunjuk yang digunakan [CloudFormation Templat VPC](cloudformation-vpc-template.md) CloudFormation untuk membuat VPC. 
**catatan**  
 VPC yang dibuat oleh 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. 

1. Masuk ke Konsol Manajemen AWS dan buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1.  Pilih VPC yang Anda buat dengan. CloudFormation

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

### Langkah 2: Buat sistem file Amazon Elastic File System dengan VPC Anda
<a name="sample-efs-create-efs"></a>

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

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon EFS di [ https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/).

1.  Pilih **Buat sistem file**. 

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

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

1.  Pilih **Langkah Selanjutnya.** 

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

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

1. Untuk **Konfigurasi akses klien**, pilih **Langkah Berikutnya**.

1.  Pilih **Buat Sistem File**. 

1.  (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.**

### Langkah 3: Buat CodeBuild proyek untuk digunakan dengan Amazon EFS
<a name="sample-efs-create-acb"></a>

 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](https://console.aws.amazon.com/codesuite/codebuild/home).

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

1.  Dalam **Nama proyek**, masukkan nama untuk proyek Anda. 

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

1.  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](create-project.md#create-project-source-provider). 

1.  Dari **gambar Lingkungan**, pilih **Gambar terkelola**. 

1.  Dari **Sistem operasi**, pilih **Amazon Linux 2**. 

1. Dari **Runtime (s)**, pilih **Standard**. 

1.  Dari **Gambar**, pilih **aws/codebuild/amazonlinux-x86\$164-standard:4.0**. 

1.  Dari **jenis Lingkungan**, pilih **Linux**. 

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

1. Perluas **Additional configuration** (Konfigurasi tambahan).

1.  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](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) aktifkan mode istimewa. Juga, Windows tidak mendukung mode istimewa.

1.  Dari **VPC**, pilih ID VPC. 

1.  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. 

1.  Dari **Grup Keamanan**, pilih grup keamanan default.

1.  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 masuk`my_efs`, variabel lingkungan adalah`CODEBUILD_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](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html) di *Panduan Pengguna Amazon Elastic File System*. 

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

1.  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>
   ```

1.  Gunakan nilai default untuk semua pengaturan lainnya, lalu pilih **Buat proyek build**. Ketika build Anda selesai, halaman konsol untuk project Anda akan ditampilkan. 

1.  Pilih **Mulai membangun**. 

### Langkah 4: Tinjau proyek pembangunan
<a name="sample-efs-summary"></a>



 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](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) di *Panduan Pengguna Amazon Elastic File System*. 

# Memecahkan masalah integrasi Amazon EFS
<a name="sample-efs-troubleshooting"></a>

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

**Topics**
+ [CLIENT\$1ERROR: pemasangan '127.0.0.1: /' gagal. izin ditolak](#sample-efs-troubleshooting.permission-denied)
+ [CLIENT\$1ERROR: pemasangan '127.0.0.1: /' gagal. koneksi diatur ulang oleh rekan](#sample-efs-troubleshooting.connection-reset)
+ [VPC\$1CLIENT\$1ERROR: Kesalahan EC2 yang tidak terduga: UnauthorizedOperation](#sample-efs-troubleshooting.unauthorized-operation)

## CLIENT\$1ERROR: pemasangan '127.0.0.1: /' gagal. izin ditolak
<a name="sample-efs-troubleshooting.permission-denied"></a>

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. Contoh:

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

## CLIENT\$1ERROR: pemasangan '127.0.0.1: /' gagal. koneksi diatur ulang oleh rekan
<a name="sample-efs-troubleshooting.connection-reset"></a>

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\$1CLIENT\$1ERROR: Kesalahan EC2 yang tidak terduga: UnauthorizedOperation
<a name="sample-efs-troubleshooting.unauthorized-operation"></a>

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. 