Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Layanan App Runner berdasarkan kode sumber
Anda dapat menggunakan AWS App Runner untuk membuat dan mengelola layanan berdasarkan dua jenis sumber layanan yang berbeda secara fundamental: kode sumber dan gambar sumber. Terlepas dari jenis sumbernya, App Runner menangani memulai, menjalankan, menskalakan, dan menyeimbangkan beban layanan Anda. Anda dapat menggunakan kemampuan CI/CD dari App Runner untuk melacak perubahan pada gambar sumber atau kode Anda. Ketika App Runner menemukan perubahan, itu secara otomatis membangun (untuk kode sumber) dan menerapkan versi baru ke layanan App Runner Anda.
Bab ini membahas layanan berdasarkan kode sumber. Untuk informasi tentang layanan berdasarkan gambar sumber, lihatLayanan App Runner berdasarkan gambar sumber.
Kode sumber adalah kode aplikasi yang dibuat dan diterapkan oleh App Runner untuk Anda. Anda mengarahkan App Runner ke direktori sumber dalam repositori kode dan memilih runtime yang sesuai yang sesuai dengan versi platform pemrograman. App Runner membuat gambar yang didasarkan pada gambar dasar runtime dan kode aplikasi Anda. Kemudian memulai layanan yang menjalankan wadah berdasarkan gambar ini.
App Runner menyediakan runtime terkelola khusus platform yang nyaman. Masing-masing runtime ini membuat gambar kontainer dari kode sumber Anda, dan menambahkan dependensi runtime bahasa ke dalam gambar Anda. Anda tidak perlu menyediakan konfigurasi kontainer dan membangun instruksi seperti Dockerfile.
Subtopik dari bagian ini membahas berbagai platform yang didukung App Runner— platform terkelola yang menyediakan runtime terkelola untuk lingkungan dan versi pemrograman yang berbeda.
Topik
Penyedia repositori kode sumber
App Runner menyebarkan kode sumber Anda dengan membacanya dari repositori kode sumber. App Runner mendukung dua penyedia repositori kode sumber: GitHub
Menerapkan dari penyedia repositori kode sumber Anda
Untuk menerapkan kode sumber Anda ke layanan App Runner dari repositori kode sumber, App Runner membuat koneksi ke sana. Saat Anda menggunakan konsol App Runner untuk membuat layanan, Anda memberikan detail koneksi dan direktori sumber untuk App Runner untuk menerapkan kode sumber Anda.
Koneksi
Anda memberikan detail koneksi sebagai bagian dari prosedur pembuatan layanan. Saat Anda menggunakan App Runner API atau API AWS CLI, koneksi adalah sumber daya terpisah. Pertama, Anda membuat koneksi menggunakan aksi CreateConnectionAPI. Kemudian, Anda menyediakan ARN koneksi selama pembuatan layanan menggunakan tindakan CreateServiceAPI.
Direktori sumber
Saat Anda membuat layanan, Anda juga menyediakan direktori sumber. Secara default, App Runner menggunakan direktori root repositori Anda sebagai direktori sumber. Direktori sumber adalah lokasi di repositori kode sumber Anda yang menyimpan kode sumber dan file konfigurasi aplikasi Anda. Perintah build dan start juga dijalankan dari direktori sumber. Bila Anda menggunakan App Runner API atau AWS CLI untuk membuat atau memperbarui layanan, Anda menyediakan direktori sumber dalam tindakan CreateServicedan UpdateServiceAPI. Untuk informasi lebih lanjut, lihat Direktori sumber bagian berikut.
Untuk informasi selengkapnya tentang pembuatan layanan App Runner, lihatMembuat layanan App Runner. Untuk informasi selengkapnya tentang koneksi App Runner, lihatMengelola koneksi App Runner.
Direktori sumber
Saat membuat layanan App Runner, Anda dapat menyediakan direktori sumber, bersama dengan repositori dan cabang. Tetapkan nilai bidang direktori Sumber ke jalur direktori repositori yang menyimpan kode sumber dan file konfigurasi aplikasi. App Runner mengeksekusi perintah build dan start dari jalur direktori sumber yang Anda berikan.
Masukkan nilai untuk jalur direktori sumber sebagai absolut dari direktori repositori root. Jika Anda tidak menentukan nilai, itu default ke direktori tingkat atas repositori, juga dikenal sebagai direktori root repositori.
Anda juga memiliki opsi untuk menyediakan jalur direktori sumber yang berbeda selain direktori repositori tingkat atas. Ini mendukung arsitektur repositori monorepo, yang berarti kode sumber untuk beberapa aplikasi disimpan dalam satu repositori. Untuk membuat dan mendukung beberapa layanan App Runner dari satu monorepo, tentukan direktori sumber yang berbeda saat Anda membuat setiap layanan.
catatan
Jika Anda menentukan direktori sumber yang sama untuk beberapa layanan App Runner, kedua layanan akan menerapkan dan beroperasi secara individual.
Jika Anda memilih untuk menggunakan file apprunner.yaml
konfigurasi untuk menentukan parameter layanan Anda, letakkan di folder direktori sumber repositori.
Jika opsi pemicu Deployment disetel ke Otomatis, perubahan yang Anda lakukan di direktori sumber akan memicu penerapan otomatis. Hanya perubahan di jalur direktori sumber yang akan memicu penerapan otomatis. Penting untuk memahami bagaimana lokasi direktori sumber memengaruhi ruang lingkup penerapan otomatis. Untuk informasi selengkapnya, lihat penerapan otomatis di. Metode deployment
catatan
Jika layanan App Runner Anda menggunakan runtime terkelola PHP, dan Anda ingin menetapkan direktori sumber selain repositori root default, penting untuk menggunakan versi runtime PHP yang benar. Untuk informasi selengkapnya, lihat Menggunakan platform PHP.
Platform terkelola App Runner
Platform terkelola App Runner menyediakan runtime terkelola untuk berbagai lingkungan pemrograman. Setiap runtime terkelola memudahkan untuk membangun dan menjalankan container berdasarkan versi bahasa pemrograman atau lingkungan runtime. Bila Anda menggunakan runtime terkelola, App Runner dimulai dengan image runtime terkelola. Gambar ini didasarkan pada image Amazon Linux Docker
Anda menentukan runtime untuk layanan App Runner saat membuat layanan menggunakan konsol App Runner atau operasi API. CreateService Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan runtime
kata kunci dalam file konfigurasi App Runner yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan dari runtime terkelola adalah. <language-name><major-version>
App Runner memperbarui runtime untuk layanan Anda ke versi terbaru pada setiap penerapan atau pembaruan layanan. Jika aplikasi Anda memerlukan versi tertentu dari runtime terkelola, Anda dapat menentukannya menggunakan runtime-version
kata kunci dalam file konfigurasi App Runner. Anda dapat mengunci ke tingkat versi apa pun, termasuk versi mayor atau minor. App Runner hanya membuat pembaruan tingkat yang lebih rendah ke runtime layanan Anda.
Versi runtime terkelola dan build App Runner
App Runner sekarang menawarkan proses build yang diperbarui untuk aplikasi Anda. Saat ini memanggil build baru untuk layanan yang berjalan pada runtime terkelola Python 3.11 dan Node.js 18, terakhir dirilis pada 29 Desember 2023. Proses pembuatan yang direvisi ini lebih cepat dan lebih efisien. Ini juga membuat gambar akhir dengan footprint yang lebih kecil yang hanya berisi kode sumber Anda, membangun artefak, dan runtime yang diperlukan untuk menjalankan aplikasi Anda.
Kami menyebut proses build yang lebih baru sebagai build App Runner yang direvisi dan proses build asli sebagai build App Runner asli. Untuk menghindari perubahan pada platform runtime versi sebelumnya, App Runner hanya menerapkan build yang direvisi ke versi runtime tertentu, biasanya rilis utama yang baru dirilis.
Kami telah memperkenalkan komponen baru ke file apprunner.yaml
konfigurasi untuk membuat build yang direvisi kompatibel ke belakang untuk kasus penggunaan yang sangat spesifik dan juga memberikan lebih banyak fleksibilitas untuk mengonfigurasi build aplikasi Anda. Ini adalah pre-runparameter opsional. Kami menjelaskan kapan harus menggunakan parameter ini bersama dengan informasi berguna lainnya tentang build di bagian berikutnya.
Tabel berikut menunjukkan versi build App Runner mana yang berlaku untuk versi runtime terkelola tertentu. Kami akan terus memperbarui dokumen ini untuk memberi Anda informasi tentang runtime kami saat ini.
Platform | Build asli | Membangun yang direvisi |
---|---|---|
Python – Informasi rilis |
|
|
Node.js – Informasi rilis |
|
|
Corretto — Informasi rilis |
|
|
.NET – Informasi rilis |
|
|
PHP – Informasi rilis |
|
|
Ruby – Informasi rilis |
|
|
Go – Informasi rilis |
|
penting
Python 3.11 — Kami memiliki rekomendasi khusus untuk konfigurasi build layanan yang menggunakan runtime terkelola Python 3.11. Untuk informasi selengkapnya, lihat Callout untuk versi runtime tertentu di topik platform Python.
Selengkapnya tentang build dan migrasi App Runner
Saat memigrasikan aplikasi ke runtime yang lebih baru yang menggunakan build yang direvisi, Anda mungkin perlu sedikit mengubah konfigurasi build.
Untuk memberikan konteks pertimbangan migrasi, pertama-tama kami akan menjelaskan proses tingkat tinggi untuk build App Runner asli dan build yang direvisi. Kami akan mengikuti dengan bagian yang menjelaskan atribut spesifik tentang layanan Anda yang mungkin memerlukan beberapa pembaruan konfigurasi.
Versi App Runner asli
Proses pembuatan aplikasi App Runner asli memanfaatkan layanan. AWS CodeBuild Langkah awal didasarkan pada gambar yang dikuratori oleh CodeBuild layanan. Proses build Docker mengikuti yang menggunakan image runtime terkelola App Runner yang berlaku sebagai image dasar.
Langkah-langkah umum adalah sebagai berikut:
-
Jalankan
pre-build
perintah dalam gambar CodeBuild -curated.pre-build
Perintahnya opsional. Mereka hanya dapat ditentukan dalam fileapprunner.yaml
konfigurasi. -
Jalankan
build
perintah menggunakan CodeBuild pada gambar yang sama dari langkah sebelumnya.build
Perintah diperlukan. Mereka dapat ditentukan di konsol App Runner, App Runner API, atau dalam fileapprunner.yaml
konfigurasi. -
Jalankan build Docker untuk menghasilkan gambar berdasarkan image runtime terkelola App Runner untuk platform dan versi runtime spesifik Anda.
-
Salin
/app
direktori dari gambar yang kami hasilkan di Langkah 2. Tujuannya adalah gambar berdasarkan gambar runtime terkelola App Runner, yang kami buat di Langkah 3. -
Jalankan
build
perintah lagi pada image runtime terkelola App Runner yang dihasilkan. Kami menjalankan perintah build lagi untuk menghasilkan artefak build dari kode sumber di/app
direktori yang kami salin ke dalamnya di Langkah 4. Gambar ini nantinya akan digunakan oleh App Runner untuk menjalankan layanan web Anda dalam wadah.build
Perintah diperlukan. Mereka dapat ditentukan di konsol App Runner, App Runner API, atau dalam fileapprunner.yaml
konfigurasi. -
Jalankan
post-build
perintah dalam CodeBuild gambar dari Langkah 2.post-build
Perintahnya opsional. Mereka hanya dapat ditentukan dalam fileapprunner.yaml
konfigurasi.
Setelah build selesai, App Runner akan menerapkan image runtime terkelola App Runner yang dihasilkan dari Langkah 5 untuk menjalankan layanan web Anda dalam sebuah container.
Versi App Runner yang direvisi
Proses build yang direvisi lebih cepat dan lebih efisien daripada proses build asli yang dijelaskan di bagian sebelumnya. Ini menghilangkan duplikasi perintah build yang terjadi di build versi sebelumnya. Ini juga membuat gambar akhir dengan footprint yang lebih kecil yang hanya berisi kode sumber Anda, membangun artefak, dan runtime yang diperlukan untuk menjalankan aplikasi Anda.
Proses build ini menggunakan Docker multi-stage build. Langkah-langkah proses umum adalah sebagai berikut:
-
Build stage — Mulai proses docker build yang mengeksekusi
pre-build
danbuild
memerintahkan di atas image build App Runner.-
Salin kode sumber aplikasi ke
/app
direktori.catatan
/app
Direktori ini ditetapkan sebagai direktori kerja di setiap tahap build Docker. -
Jalankan perintah
pre-build
.pre-build
Perintahnya opsional. Mereka hanya dapat ditentukan dalam fileapprunner.yaml
konfigurasi. -
Jalankan
build
perintah.build
Perintah diperlukan. Mereka dapat ditentukan di konsol App Runner, App Runner API, atau dalam fileapprunner.yaml
konfigurasi.
-
-
Tahap pengemasan - Menghasilkan gambar kontainer pelanggan akhir, yang juga didasarkan pada image run App Runner.
-
Salin
/app
direktori dari tahap Build sebelumnya ke image Run baru. Ini termasuk kode sumber aplikasi Anda dan artefak build dari tahap sebelumnya. -
Jalankan
pre-run
perintah. Jika Anda perlu memodifikasi gambar runtime di luar/app
direktori dengan menggunakanbuild
perintah, tambahkan perintah yang sama atau yang diperlukan ke segmen fileapprunner.yaml
konfigurasi ini.Ini adalah parameter baru yang diperkenalkan untuk mendukung build App Runner yang direvisi.
pre-run
Perintahnya opsional. Mereka hanya dapat ditentukan dalam fileapprunner.yaml
konfigurasi.Catatan
-
pre-run
Perintah hanya didukung oleh build yang direvisi. Jangan menambahkannya ke file konfigurasi jika layanan Anda menggunakan versi runtime yang menggunakan build asli. -
Jika Anda tidak perlu memodifikasi apa pun di luar
/app
direktori denganbuild
perintah, maka Anda tidak perlu menentukanpre-run
perintah.
-
-
-
Tahap pasca-build - Tahap ini dilanjutkan dari tahap Build dan menjalankan perintah.
post-build
-
Jalankan
post-build
perintah di dalam/app
direktori.post-build
Perintahnya opsional. Mereka hanya dapat ditentukan dalam fileapprunner.yaml
konfigurasi.
-
Setelah build selesai, App Runner kemudian menerapkan image Run untuk menjalankan layanan web Anda dalam sebuah container.
catatan
Jangan disesatkan ke env
entri di bagian Jalankan apprunner.yaml
saat mengonfigurasi proses pembuatan. Meskipun parameter pre-run
perintah, yang direferensikan di Langkah 2 (b), berada di bagian Run, jangan gunakan env
parameter di bagian Run untuk mengonfigurasi build Anda. pre-run
Perintah hanya mereferensikan env
variabel yang ditentukan di bagian Build dari file konfigurasi. Untuk informasi selengkapnya, lihat Jalankan bagian di bagian file konfigurasi App Runner.
Persyaratan layanan untuk pertimbangan migrasi
Jika lingkungan aplikasi Anda memiliki salah satu dari dua persyaratan ini, maka Anda harus merevisi konfigurasi build Anda, dengan menambahkan pre-run
perintah.
Jika Anda perlu memodifikasi apa pun di luar
/app
direktori denganbuild
perintah.-
Jika Anda perlu menjalankan
build
perintah dua kali untuk membuat lingkungan yang diperlukan. Ini adalah persyaratan yang sangat tidak biasa. Sebagian besar build tidak akan melakukan ini.
Modifikasi di luar /app
direktori
-
Build App Runner yang direvisi mengasumsikan bahwa aplikasi Anda tidak memiliki dependensi di luar direktori.
/app
-
Perintah yang Anda berikan dengan
apprunner.yaml
file, API App Runner, atau konsol App Runner harus menghasilkan artefak build di direktori./app
-
Anda dapat memodifikasi
post-build
perintahpre-build
build
,, dan untuk memastikan semua artefak build ada di/app
direktori. -
Jika aplikasi Anda memerlukan build untuk memodifikasi lebih lanjut gambar yang dihasilkan untuk layanan Anda, di luar
/app
direktori, Anda dapat menggunakanpre-run
perintah baru di fileapprunner.yaml
. Untuk informasi selengkapnya, lihat Menyetel opsi layanan App Runner menggunakan file konfigurasi.
Menjalankan build
perintah dua kali
-
App Runner build asli menjalankan
build
perintah dua kali, pertama di Langkah 2, lalu lagi di Langkah 5. App Runner build yang direvisi memperbaiki redundansi ini dan hanya menjalankan perintah satu kali.build
Jika aplikasi Anda harus memiliki persyaratan yang tidak biasa agarbuild
perintah dijalankan dua kali, build App Runner yang direvisi menyediakan opsi untuk menentukan dan menjalankan perintah yang sama lagi menggunakan parameter.pre-run
Melakukannya mempertahankan perilaku build ganda yang sama.