Mengembangkan kode aplikasi untuk App Runner - AWS App Runner

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

Mengembangkan kode aplikasi untuk App Runner

Bab ini membahas informasi runtime dan pedoman pengembangan yang harus Anda pertimbangkan saat mengembangkan atau memigrasi kode aplikasi untuk penerapan. AWS App Runner

Informasi runtime

Baik Anda memberikan gambar kontainer atau App Runner membuatnya untuk Anda, App Runner menjalankan kode aplikasi Anda dalam instance container. Berikut adalah beberapa aspek kunci dari lingkungan runtime instance container.

  • Dukungan Framework — App Runner mendukung gambar apa pun yang mengimplementasikan aplikasi web. Ini agnostik untuk bahasa pemrograman yang Anda pilih dan ke server aplikasi web atau kerangka kerja yang Anda gunakan, jika Anda menggunakannya. Demi kenyamanan Anda, kami menyediakan runtime terkelola khusus platform untuk berbagai platform pemrograman, untuk merampingkan proses pembuatan aplikasi dan pembuatan gambar abstrak.

  • Permintaan web — App Runner menyediakan dukungan untuk HTTP 1.0 dan HTTP 1.1 ke instance container. Untuk informasi selengkapnya tentang mengonfigurasi layanan Anda, lihatMengonfigurasi layanan App Runner. Anda tidak perlu menerapkan penanganan lalu lintas aman HTTPS. App Runner mengalihkan semua permintaan HTTP yang masuk ke titik akhir HTTPS yang sesuai. Anda tidak perlu mengonfigurasi pengaturan apa pun untuk mengaktifkan pengalihan permintaan web HTTP. App Runner menghentikan TLS sebelum meneruskan permintaan ke instance container aplikasi Anda.

    catatan
    • Ada total batas waktu tunggu permintaan 120 detik pada permintaan HTTP. 120 detik termasuk waktu yang dibutuhkan aplikasi untuk membaca permintaan, termasuk isi, dan menyelesaikan penulisan respons HTTP.

    • Batas batas waktu baca dan respons permintaan bergantung pada aplikasi yang Anda gunakan. Aplikasi ini mungkin memiliki batas waktu internal mereka sendiri, seperti server HTTP untuk Python, Gunicorn, memiliki batas batas waktu default 30 detik. Dalam kasus seperti itu, batas waktu tunggu aplikasi mengesampingkan batas waktu 120 detik App Runner.

    • Anda tidak perlu mengonfigurasi rangkaian sandi TLS atau parameter lainnya karena App Runner menjadi layanan yang dikelola sepenuhnya, mengelola penghentian TLS untuk Anda.

  • Aplikasi stateless — Saat ini App Runner tidak mendukung aplikasi stateful. Oleh karena itu, App Runner tidak menjamin persistensi status di luar durasi pemrosesan satu permintaan web yang masuk.

  • Penyimpanan — App Runner secara otomatis menskalakan instans ke atas atau ke bawah untuk aplikasi App Runner Anda sesuai dengan volume lalu lintas yang masuk. Anda dapat mengonfigurasi opsi penskalaan Otomatis untuk aplikasi App Runner Anda. Karena jumlah instans yang saat ini aktif memproses permintaan web didasarkan pada volume lalu lintas yang masuk, App Runner tidak dapat menjamin bahwa file dapat bertahan di luar pemrosesan satu permintaan. Oleh karena itu, App Runner mengimplementasikan sistem file dalam instance container Anda sebagai penyimpanan sementara, yang mensyaratkan bahwa file bersifat sementara. Misalnya, file tidak bertahan saat Anda menjeda dan melanjutkan layanan App Runner.

    App Runner memberi Anda penyimpanan singkat 3 GB dan menggunakan bagian dari penyimpanan singkat 3 GB untuk gambar kontainer yang ditarik, dikompresi, dan tidak terkompresi pada instance. Penyimpanan sementara yang tersisa dapat digunakan oleh layanan App Runner Anda. Namun, ini bukan penyimpanan permanen karena sifatnya yang tanpa kewarganegaraan.

    catatan

    Mungkin ada skenario ketika file penyimpanan tetap ada di seluruh permintaan. Misalnya, jika permintaan berikutnya mendarat pada instance yang sama, file penyimpanan akan tetap ada. Persistensi file penyimpanan di seluruh permintaan dapat berguna dalam situasi tertentu. Misalnya, saat menangani permintaan, Anda dapat menyimpan file cache yang diunduh aplikasi jika permintaan future mungkin membutuhkannya. Ini mungkin mempercepat penanganan permintaan di masa depan, tetapi tidak dapat menjamin peningkatan kecepatan. Kode Anda seharusnya tidak berasumsi bahwa file yang telah diunduh dalam permintaan sebelumnya masih ada.

    Untuk jaminan caching menggunakan throughput tinggi, penyimpanan data dalam memori latensi rendah, gunakan layanan seperti Amazon. ElastiCache

  • Variabel lingkungan — Secara default, App Runner membuat variabel PORT lingkungan tersedia di instance container Anda. Anda dapat mengonfigurasi nilai variabel dengan informasi port, dan menambahkan variabel dan nilai lingkungan khusus. Anda juga dapat mereferensikan data sensitif yang disimpan di AWS Secrets Manageratau AWS Systems Manager Parameter Store sebagai variabel lingkungan. Untuk informasi selengkapnya tentang membuat variabel lingkungan, lihatMerujuk variabel lingkungan.

  • Peran instans — Jika kode aplikasi Anda membuat panggilan ke AWS layanan apa pun, menggunakan API layanan atau salah satu AWS SDK, buat peran instance menggunakan AWS Identity and Access Management (IAM). Kemudian, lampirkan ke layanan App Runner saat Anda membuatnya. Sertakan semua izin tindakan AWS layanan yang diperlukan kode Anda dalam peran instans Anda. Untuk informasi selengkapnya, lihat Peran contoh.

Pedoman pengembangan kode

Pertimbangkan panduan ini saat mengembangkan kode untuk aplikasi web App Runner.

  • Desain kode stateless - Rancang aplikasi web yang Anda terapkan ke layanan App Runner Anda menjadi tanpa kewarganegaraan. Kode Anda harus berasumsi bahwa tidak ada status yang bertahan di luar durasi pemrosesan satu permintaan web yang masuk.

  • Hapus file sementara — Saat Anda membuat file, file tersebut disimpan di sistem file, dan mengambil bagian dari alokasi penyimpanan layanan Anda. Untuk menghindari out-of-storage kesalahan, jangan menyimpan file sementara untuk waktu yang lama. Seimbangkan ukuran penyimpanan dengan kecepatan penanganan permintaan saat membuat keputusan caching file.

  • Instans startup — App Runner menyediakan lima menit waktu startup instans. Instans Anda harus mendengarkan permintaan pada port mendengarkan yang dikonfigurasi dan menjadi sehat dalam waktu lima menit setelah startup mereka. Selama waktu startup, instance App Runner dialokasikan CPU virtual (vCPU) berdasarkan konfigurasi vCPU Anda. Untuk informasi selengkapnya tentang konfigurasi vCPU yang tersedia, lihat. Konfigurasi yang didukung App Runner

    Setelah instance berhasil dijalankan, instance masuk ke keadaan idle dan menunggu permintaan. Anda membayar berdasarkan durasi startup instance, dengan biaya minimum satu menit per instans mulai. Untuk informasi lebih lanjut tenngenai harga, lihat harga AWS App Runner.