Mengonfigurasi pengaturan build - AWS Amplify Hosting

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

Mengonfigurasi pengaturan build

Saat Anda menerapkan aplikasi dengan Amplify Hosting, aplikasi ini secara otomatis mendeteksi kerangka kerja front end dan pengaturan build terkait dengan memeriksa file package.json di repositori Anda. Anda memiliki opsi berikut untuk menyimpan pengaturan build aplikasi:

  • Simpan pengaturan build di konsol Amplify - Konsol Amplify mendeteksi otomatis pengaturan build dan menyimpannya sehingga dapat diakses melalui konsol Amplify. Amplify menerapkan pengaturan ini ke semua cabang Anda, kecuali ada file amplify.yml yang disimpan di repositori Anda.

  • Simpan pengaturan build di repositori Anda - Unduh file amplify.yml dan tambahkan ke root repositori Anda.

Anda dapat mengedit setelan build aplikasi di Amplify console dengan memilih Hosting, lalu Build settings di panel navigasi. Pengaturan build diterapkan ke semua cabang di aplikasi Anda, kecuali untuk cabang dengan file amplify.yml yang disimpan di repositori.

catatan

Pengaturan build dapat dilihat di menu Hosting konsol Amplify hanya jika aplikasi disiapkan untuk penerapan berkelanjutan dan terhubung ke repositori git. Untuk petunjuk tentang jenis penerapan ini, lihat Memulai.

Buat perintah dan pengaturan spesifikasi

Spesifikasi build YAMAL berisi kumpulan perintah build dan setelan terkait yang Amplify gunakan untuk menjalankan build Anda. Daftar berikut menjelaskan pengaturan ini dan bagaimana mereka digunakan.

versi

Nomor versi Amplify YAMAL.

appRoot

Jalur dalam repositori tempat aplikasi ini berada. Diabaikan kecuali beberapa aplikasi didefinisikan.

env

Tambahkan variabel lingkungan ke bagian ini. Anda juga dapat menambahkan variabel lingkungan menggunakan konsol.

backend

Jalankan perintah Amplify CLI untuk menyediakan backend, memperbarui fungsi Lambda, atau skema GraphQL sebagai bagian dari penerapan berkelanjutan.

frontend

Jalankan perintah build frontend.

pengujian

Jalankan perintah selama fase pengujian. Pelajari cara menambahkan tes ke aplikasi.

membangun fase

Frontend, backend, dan tes terdiri dari tiga fase yang mewakili perintah yang dijalankan selama setiap urutan build.

  • PreBuild - Skrip preBuild berjalan sebelum build sebenarnya dimulai, tetapi setelah Amplify menginstal dependensi.

  • build - Perintah build Anda.

  • PostBuild - Skrip pasca-build berjalan setelah build selesai dan Amplify telah menyalin semua artefak yang diperlukan ke direktori output.

buildpath

Jalur yang digunakan untuk menjalankan build. Amplify menggunakan jalur ini untuk menemukan artefak build Anda. Jika Anda tidak menentukan jalur, Amplify menggunakan root aplikasi monorepo, misalnya. apps/app

artefak>direktori dasar

Direktori tempat artefak build Anda ada.

artefak>file

Tentukan file dari artefak yang ingin Anda terapkan. Masukkan **/* untuk memasukkan semua file.

cache

Bidang cache buildspec digunakan untuk menyimpan dependensi waktu pembuatan cache seperti folder node_modules, dan secara otomatis disarankan berdasarkan manajer paket dan kerangka kerja tempat aplikasi pelanggan dibangun. Selama build pertama, setiap path di sini disimpan di cache, dan pada build berikutnya kita kembali mengisi cache dan menggunakan dependensi yang disimpan di cache, jika mungkin, untuk mempercepat waktu build.

Contoh spesifikasi build berikut menunjukkan sintaks YAMAL dasar:

version: 1 env: variables: key: value backend: phases: preBuild: commands: - *enter command* build: commands: - *enter command* postBuild: commands: - *enter command* frontend: buildpath: phases: preBuild: commands: - cd react-app - npm ci build: commands: - npm run build artifacts: files: - location - location discard-paths: yes baseDirectory: location cache: paths: - path - path test: phases: preTest: commands: - *enter command* test: commands: - *enter command* postTest: commands: - *enter command* artifacts: files: - location - location configFilePath: *location* baseDirectory: *location*

Pengaturan build khusus cabang

Anda dapat menggunakan penulisan bash shell untuk menentukan pengaturan build khusus cabang. Misalnya, skrip berikut menggunakan variabel lingkungan sistem $AWS_BRANCH untuk menjalankan satu set perintah jika nama cabang utama dan kumpulan perintah yang berbeda jika nama cabang adalah dev.

frontend: phases: build: commands: - if [ "${AWS_BRANCH}" = "main" ]; then echo "main branch"; fi - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi

Untuk monorepos, pengguna ingin dapat cd masuk ke folder untuk menjalankan build. Setelah Anda menjalankan cd perintah, itu berlaku untuk semua tahapan build Anda sehingga Anda tidak perlu mengulangi perintah dalam fase terpisah.

version: 1 env: variables: key: value frontend: phases: preBuild: commands: - cd react-app - npm ci build: commands: - npm run build

Menerapkan backend dengan ujung depan untuk aplikasi Gen 1

catatan

Bagian ini hanya berlaku untuk aplikasi Amplify Gen 1. Backend Gen 1 dibuat menggunakan Amplify Studio dan antarmuka baris perintah Amplify (CLI).

amplifyPushPerintah adalah skrip pembantu yang membantu Anda dengan penerapan backend. Pengaturan build berikut secara otomatis menentukan lingkungan backend yang tepat untuk di-deploy di cabang saat ini.

version: 1 env: variables: key: value backend: phases: build: commands: - amplifyPush --simple

Menyiapkan folder output

Pengaturan build berikut mengatur direktori output ke folder publik.

frontend: phases: commands: build: - yarn run build artifacts: baseDirectory: public

Menginstal paket sebagai bagian dari build

Anda dapat menggunakan yarn perintah npm or untuk menginstal paket selama pembuatan.

frontend: phases: build: commands: - npm install -g <package> - <package> deploy - yarn run build artifacts: baseDirectory: public

Menggunakan registri npm privat

Anda dapat menambahkan referensi ke registri privat di pengaturan build Anda atau menambahkannya sebagai variabel lingkungan.

build: phases: preBuild: commands: - npm config set <key> <value> - npm config set registry https://registry.npmjs.org - npm config set always-auth true - npm config set email hello@amplifyapp.com - yarn install

Menginstal paket OS

Gambar AL2023 Amplify menjalankan kode Anda dengan nama pengguna yang tidak memiliki hak istimewa. amplify Amplify memberikan hak istimewa kepada pengguna ini untuk menjalankan perintah OS menggunakan perintah Linux. sudo Jika Anda ingin menginstal paket OS untuk dependensi yang hilang, Anda dapat menggunakan perintah seperti yum dan rpm dengan. sudo

Contoh bagian build berikut menunjukkan sintaks untuk menginstal paket OS menggunakan perintah. sudo

build: phases: preBuild: commands: - sudo yum install -y <package>

Penyimpanan kunci-nilai untuk setiap build

envCache menyediakan penyimpanan kunci-nilai pada waktu build. Nilai-nilai yang disimpan di envCache hanya dapat diubah selama build dan dapat digunakan kembali pada build berikutnya. Dengan envCache, informasi dapat disimpan di lingkungan yang di-deploy dan tersedia untuk kontainer build di build yang berturutan. Tidak seperti nilai yang disimpan di envCache, perubahan pada variabel lingkungan selama build tidak muncul pada build selanjutnya.

Contoh penggunaan:

envCache --set <key> <value> envCache --get <key>

Melompati build untuk penerapan

Untuk melompati build otomatis pada penerapan tertentu, sertakan teks [skip-cd] di akhir pesan penerapan.

Menonaktifkan build otomatis

Anda dapat mengonfigurasi Amplify untuk menonaktifkan build otomatis pada setiap komit kode. Untuk mengatur, pilih Pengaturan aplikasi, Pengaturan cabang, lalu cari bagian Cabang yang mencantumkan cabang yang terhubung. Pilih cabang, lalu pilih Tindakan, Nonaktifkan pembuatan otomatis. Komit baru ke cabang itu tidak akan lagi memulai build baru.

Mengaktifkan atau menonaktifkan build dan deploy frontend berbasis diff

Anda dapat mengonfigurasi Amplify untuk menggunakan build frontend berbasis diff. Jika diaktifkan, pada awal setiap build Amplify mencoba menjalankan diff di folder AndaappRoot, atau /src/ folder secara default. Jika tidak menemukan perbedaan apa pun, Amplify akan melompati langkah build, tes (jika dikonfigurasi), dan deploy frontend, serta tidak memperbarui aplikasi yang di-hosting.

Untuk mengonfigurasi build dan deploy frontend berbasis diff
  1. Masuk ke AWS Management Console dan buka konsol Amplify.

  2. Pilih aplikasi tempat konfigurasi build dan deploy frontend berbasis diff dilakukan.

  3. Di panel navigasi, pilih Hosting, variabel Lingkungan.

  4. Di bagian Variabel lingkungan, pilih Kelola variabel.

  5. Langkah untuk mengonfigurasi variabel lingkungan bervariasi, bergantung pada apakah Anda mengaktifkan atau menonaktifkan build dan deploy frontend berbasis diff.

    • Untuk mengaktifkan build dan deploy frontend berbasis diff

      1. Di bagian Kelola variabel, bagian Variabel, masukkan AMPLIFY_DIFF_DEPLOY.

      2. Untuk Nilai, masukkan true.

    • Untuk menonaktifkan build dan deploy frontend berbasis diff

      1. Lakukan salah satu dari berikut ini:

        • Di bagian Kelola variabel, cari AMPLIFY_DIFF_DEPLOY. Untuk Nilai, masukkan false.

        • Hapus variabel lingkungan AMPLIFY_DIFF_DEPLOY.

  6. Pilih Simpan.

Anda juga dapat mengatur variabel lingkungan AMPLIFY_DIFF_DEPLOY_ROOT agar menimpa path default dengan path yang berkaitan dengan root repo Anda, seperti dist.

Mengaktifkan atau menonaktifkan build backend berbasis diff untuk aplikasi Gen 1

catatan

Bagian ini hanya berlaku untuk aplikasi Amplify Gen 1. Backend Gen 1 dibuat menggunakan Amplify Studio dan antarmuka baris perintah Amplify (CLI).

Anda dapat mengonfigurasi Amplify Hosting untuk menggunakan build backend berbasis diff menggunakan variabel lingkungan. AMPLIFY_DIFF_BACKEND Saat Anda mengaktifkan build backend berbasis diff, pada awal setiap build Amplify mencoba menjalankan diff pada folder di repositori Anda. amplify Jika tidak menemukan perbedaan apa pun, Amplify akan melompati langkah build backend, dan tidak memperbarui sumber daya backend Anda. Jika proyek Anda tidak memiliki folder amplify di repositori, Amplify akan mengabaikan nilai variabel lingkungan AMPLIFY_DIFF_BACKEND.

Jika saat ini Anda memiliki perintah khusus yang ditentukan dalam pengaturan build fase backend Anda, build backend bersyarat tidak akan berfungsi. Jika Anda ingin perintah kustom tersebut berjalan, Anda harus memindahkannya ke fase frontend setelan build di amplify.yml file aplikasi Anda.

Untuk mengonfigurasi build backend berbasis diff
  1. Masuk ke AWS Management Console dan buka konsol Amplify.

  2. Pilih aplikasi tempat konfigurasi build backend berbasis diff dilakukan.

  3. Di panel navigasi, pilih Hosting, variabel Lingkungan.

  4. Di bagian Variabel lingkungan, pilih Kelola variabel.

  5. Langkah untuk mengonfigurasi variabel lingkungan bervariasi, bergantung pada apakah Anda mengaktifkan atau menonaktifkan build backend berbasis diff.

    • Untuk mengaktifkan build backend berbasis diff

      1. Di bagian Kelola variabel, bagian Variabel, masukkan AMPLIFY_DIFF_BACKEND.

      2. Untuk Nilai, masukkan true.

    • Untuk menonaktifkan build backend berbasis diff

      1. Lakukan salah satu dari berikut ini:

        • Di bagian Kelola variabel, cari AMPLIFY_DIFF_BACKEND. Untuk Nilai, masukkan false.

        • Hapus variabel lingkungan AMPLIFY_DIFF_BACKEND.

  6. Pilih Simpan.