

AWS App Runner tidak akan lagi terbuka untuk pelanggan baru mulai 30 April 2026. Jika Anda ingin menggunakan App Runner, daftar sebelum tanggal tersebut. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Untuk informasi selengkapnya, lihat [perubahan AWS App Runner ketersediaan](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html).

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
<a name="service-source-code"></a>

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 CI/CD kemampuan 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, lihat[Layanan App Runner berdasarkan gambar sumber](service-source-image.md).

Kode sumber adalah kode aplikasi yang dibuat dan diterapkan oleh App Runner untuk Anda. Anda mengarahkan App Runner ke [direktori sumber](#service-source-code.source-directory) dalam repositori kode dan memilih *runtime* 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.

**Topics**
+ [Penyedia repositori kode sumber](#service-source-code.providers)
+ [Direktori sumber](#service-source-code.source-directory)
+ [Platform terkelola App Runner](#service-source-code.managed-platforms)
+ [Akhir dukungan untuk versi runtime terkelola](#service-source-code.managed-platforms.eos)
+ [Versi runtime terkelola dan build App Runner](#service-source-code.build-detail)
+ [Menggunakan platform Python](service-source-code-python.md)
+ [Menggunakan platform Node.js](service-source-code-nodejs.md)
+ [Menggunakan platform Java](service-source-code-java.md)
+ [Menggunakan platform.NET](service-source-code-net6.md)
+ [Menggunakan platform PHP](service-source-code-php.md)
+ [Menggunakan platform Ruby](service-source-code-ruby.md)
+ [Menggunakan platform Go](service-source-code-go1.md)

## Penyedia repositori kode sumber
<a name="service-source-code.providers"></a>

App Runner menyebarkan kode sumber Anda dengan membacanya dari repositori kode sumber. [App Runner mendukung dua penyedia repositori kode sumber: [GitHub](https://github.com/)dan Bitbucket.](https://bitbucket.org/)

### Menerapkan dari penyedia repositori kode sumber Anda
<a name="service-source-code.providers.github"></a>

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](manage-create.md), 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 [CreateConnection](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateConnection.html)API. Kemudian, Anda menyediakan ARN koneksi selama pembuatan layanan menggunakan tindakan [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)API.

**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 [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)dan [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Untuk informasi lebih lanjut, lihat [Direktori sumber](#service-source-code.source-directory) bagian berikut.

Untuk informasi selengkapnya tentang pembuatan layanan App Runner, lihat[Membuat layanan App Runner](manage-create.md). Untuk informasi selengkapnya tentang koneksi App Runner, lihat[Mengelola koneksi App Runner](manage-connections.md).

## Direktori sumber
<a name="service-source-code.source-directory"></a>

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](manage-deploy.md#manage-deploy.methods)

**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](service-source-code-php.md).

## Platform terkelola App Runner
<a name="service-source-code.managed-platforms"></a>

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](https://hub.docker.com/_/amazonlinux) dan berisi paket runtime bahasa serta beberapa alat dan paket ketergantungan populer. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

 Anda menentukan runtime untuk layanan App Runner saat [membuat layanan](manage-create.md) menggunakan konsol App Runner atau operasi API. [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan `runtime` kata kunci dalam [file konfigurasi App Runner](config-file.md) yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan 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](config-file.md). 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.

## Akhir dukungan untuk versi runtime terkelola
<a name="service-source-code.managed-platforms.eos"></a>

*Ketika penyedia resmi atau komunitas runtime bahasa terkelola secara resmi mendeklarasikan versi sebagai End of Life (EOL), App Runner mengikuti dengan mendeklarasikan status versi sebagai End of Support.* Jika layanan Anda berjalan pada versi runtime bahasa terkelola yang telah mencapai Akhir Dukungan, kebijakan dan rekomendasi berikut akan berlaku.

**Akhir dari Support untuk versi runtime bahasa:**
+ **Layanan yang ada** akan terus berjalan dan melayani lalu lintas bahkan jika mereka menggunakan runtime yang telah mencapai End of Support. Namun, mereka akan berjalan pada runtime yang tidak didukung yang tidak lagi menerima pembaruan, patch keamanan, atau dukungan teknis.
+ **Pembaruan untuk layanan yang ada** yang menggunakan runtime End of Support masih diperbolehkan, tetapi kami tidak menyarankan penggunaan runtime Akhir Support untuk layanan secara berkelanjutan.
+ **Layanan baru** tidak dapat dibuat menggunakan runtime yang telah mencapai tanggal Akhir Support.

**Tindakan yang Diperlukan untuk versi runtime bahasa dengan status End of Support:**
+ Jika layanan Anda **didasarkan pada gambar sumber**, tidak ada tindakan lebih lanjut yang diperlukan dari pihak Anda untuk layanan itu.
+ Jika layanan Anda **didasarkan pada kode sumber**, perbarui konfigurasi layanan Anda untuk menggunakan versi runtime yang didukung. Untuk melakukannya, pilih versi runtime yang didukung di [konsol App Runner](https://console.aws.amazon.com/apprunner), perbarui `runtime` bidang di file konfigurasi [apprunner.yaml](config-file.md), atau gunakan operasi [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)/[UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API atau alat IAc untuk menyetel parameter. `runtime` Untuk daftar runtime yang didukung, lihat halaman *Informasi rilis* untuk setiap runtime tertentu di Bab ini.
+ Atau, Anda dapat beralih ke opsi **sumber gambar kontainer** App Runner. Untuk detail selengkapnya, lihat [Layanan berbasis gambar](service-source-image.md).

**catatan**  
Jika Anda beralih dari Node.js 12, 14, atau 16 ke **Node.js 22**, atau dari Python 3.7 atau 3.8 ke Python 3.11, ketahuilah bahwa Node.js 22 dan **Python** 3.11 menggunakan proses pembuatan App Runner yang direvisi yang menawarkan build yang lebih cepat dan lebih efisien. Untuk memastikan kompatibilitas sebelum memutakhirkan, kami sarankan Anda meninjau [panduan proses pembuatan](#service-source-code.build-detail) di bagian berikutnya.

Tabel berikut mencantumkan versi runtime terkelola App Runner yang memiliki tanggal Akhir Dukungan yang ditentukan.


| **Versi Runtime** | **App Runner Tanggal Akhir Support** | 
| --- | --- | 
|  [Python 3.8 Runtime yang didukung](service-source-code-python-releases.md)  |  Desember 1, 2025  | 
|  [Python 3.7 Runtime yang didukung](service-source-code-python-releases.md)  |  Desember 1, 2025  | 
|  Node.js 18 [Runtime yang didukung](service-source-code-nodejs-releases.md)  |  Desember 1, 2025  | 
|  Node.js 16 [Runtime yang didukung](service-source-code-nodejs-releases.md)  |  Desember 1, 2025  | 
|  Node.js 14 [Runtime yang didukung](service-source-code-nodejs-releases.md)  |  Desember 1, 2025  | 
|  Node.js 12 [Runtime yang didukung](service-source-code-nodejs-releases.md)  |  Desember 1, 2025  | 
|  .NET 6 \$1  |  Desember 1, 2025  | 
|  PHP 8.1 \$1  |  Desember 31, 2025  | 
|  Ruby 3.1 \$1  |  Desember 1, 2025  | 
|  Pergi 1 \$1  | Desember 1, 2025 | 

**\$1** App Runner tidak akan merilis versi bahasa baru untuk runtime yang ditandai dengan tanda bintang (\$1). Runtime ini adalah sebagai berikut: .NET, PHP, Ruby, dan Go. Jika Anda memiliki layanan berbasis kode yang dikonfigurasi untuk runtime ini, kami merekomendasikan salah satu tindakan berikut:
+ Jika berlaku, alihkan konfigurasi layanan Anda ke runtime terkelola lain yang didukung.
+ Atau, buat image container kustom dengan versi runtime pilihan Anda dan terapkan menggunakan opsi App Runner. [Layanan berbasis gambar](service-source-image.md) Anda dapat meng-host gambar Anda di Amazon ECR.

## Versi runtime terkelola dan build App Runner
<a name="service-source-code.build-detail"></a>

App Runner menawarkan proses build yang diperbarui untuk aplikasi yang berjalan pada runtime versi utama yang lebih baru. 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-run`](config-file-ref.md#config-file-ref.run)parameter 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.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code.html)

**catatan**  
Beberapa runtime yang terdaftar termasuk tanggal **End of Support**. Untuk informasi selengkapnya, lihat [Akhir dukungan untuk versi runtime terkelola](#service-source-code.managed-platforms.eos).

**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](service-source-code-python.md#service-source-code-python.callouts) di *topik platform Python*.

### Selengkapnya tentang build dan migrasi App Runner
<a name="service-source-code.build-detail.builds-and-migr"></a>

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
<a name="service-source-code.build-detail.v1"></a>

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:

1. Jalankan `pre-build` perintah dalam gambar CodeBuild -curated. 

   `pre-build`Perintahnya opsional. Mereka hanya dapat ditentukan dalam file `apprunner.yaml` konfigurasi.

1. 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 file `apprunner.yaml` konfigurasi.

1. Jalankan build Docker untuk menghasilkan gambar berdasarkan image runtime terkelola App Runner untuk platform dan versi runtime spesifik Anda.

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

1. 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 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 file `apprunner.yaml` konfigurasi.

1. Jalankan `post-build` perintah dalam CodeBuild gambar dari **Langkah 2**. 

   `post-build`Perintahnya opsional. Mereka hanya dapat ditentukan dalam file `apprunner.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
<a name="service-source-code.build-detail.v2"></a>

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:

1. **Build stage** — Mulai proses docker build yang mengeksekusi `pre-build` dan `build` memerintahkan di atas image build App Runner.

   1. Salin kode sumber aplikasi ke `/app` direktori.
**catatan**  
`/app`Direktori ini ditetapkan sebagai direktori kerja di setiap tahap build Docker.

   1. Jalankan perintah `pre-build`. 

      `pre-build`Perintahnya opsional. Mereka hanya dapat ditentukan dalam file `apprunner.yaml` konfigurasi.

   1. Jalankan `build` perintah. 

      `build`Perintah diperlukan. Mereka dapat ditentukan di konsol App Runner, App Runner API, atau dalam file `apprunner.yaml` konfigurasi.

1. **Tahap pengemasan** - Menghasilkan gambar kontainer pelanggan akhir, yang juga didasarkan pada image run App Runner.

   1. Salin `/app` direktori dari **tahap Build** sebelumnya ke image Run baru. Ini termasuk kode sumber aplikasi Anda dan artefak build dari tahap sebelumnya.

   1. Jalankan `pre-run` perintah. Jika Anda perlu memodifikasi gambar runtime di luar `/app` direktori dengan menggunakan `build` perintah, tambahkan perintah yang sama atau diperlukan ke segmen file `apprunner.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 file `apprunner.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 dengan `build` perintah, maka Anda tidak perlu menentukan `pre-run` perintah.

1. **Tahap pasca-build** - Tahap ini dilanjutkan dari *tahap Build* dan menjalankan perintah. `post-build`

   1. Jalankan `post-build` perintah di dalam `/app` direktori. 

      `post-build`Perintahnya opsional. Mereka hanya dapat ditentukan dalam file `apprunner.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](config-file-ref.md#config-file-ref.run) di bagian *file konfigurasi App Runner.*

#### Persyaratan layanan untuk pertimbangan migrasi
<a name="service-source-code.build-detail.migrating"></a>

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 dengan `build` 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](#service-source-code.build-detail.v2) 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` perintah `pre-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 menggunakan `pre-run` perintah baru di file`apprunner.yaml`. Untuk informasi selengkapnya, lihat [Menyetel opsi layanan App Runner menggunakan file konfigurasi](config-file.md).

**Menjalankan `build` perintah dua kali**
+ [App Runner build asli](#service-source-code.build-detail.v1) 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 agar `build` 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.

# Menggunakan platform Python
<a name="service-source-code-python"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **Python 3.7 **dan Python**** 3.8 pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Platform AWS App Runner Python menyediakan runtime terkelola. Setiap runtime memudahkan untuk membangun dan menjalankan container dengan aplikasi web berdasarkan versi Python. Saat Anda menggunakan runtime Python, App Runner dimulai dengan image runtime Python yang dikelola. Gambar ini didasarkan pada image [Amazon Linux Docker](https://hub.docker.com/_/amazonlinux) dan berisi paket runtime untuk versi Python dan beberapa alat dan paket ketergantungan populer. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

 Anda menentukan runtime untuk layanan App Runner saat [membuat layanan](manage-create.md) menggunakan konsol App Runner atau operasi API. [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan `runtime` kata kunci dalam [file konfigurasi App Runner](config-file.md) yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan dari runtime terkelola adalah*<language-name><major-version>*. 

Untuk nama dan versi runtime Python yang valid, lihat. [Informasi rilis runtime Python](service-source-code-python-releases.md)

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](config-file.md). 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.

Sintaks versi untuk runtime Python: `major[.minor[.patch]]`

Misalnya: `3.8.5`

Contoh berikut menunjukkan penguncian versi:
+ `3.8`— Kunci versi mayor dan minor. App Runner hanya memperbarui versi tambalan.
+ `3.8.5`— Kunci ke versi patch tertentu. App Runner tidak memperbarui versi runtime Anda.

**Topics**
+ [Konfigurasi runtime Python](#service-source-code-python.config)
+ [Callout untuk versi runtime tertentu](#service-source-code-python.callouts)
+ [Contoh runtime Python](#service-source-code-python.examples)
+ [Informasi rilis runtime Python](service-source-code-python-releases.md)

## Konfigurasi runtime Python
<a name="service-source-code-python.config"></a>

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat [membuat](manage-create.md) atau [memperbarui](manage-configure.md) layanan App Runner. Anda dapat melakukan ini menggunakan salah satu metode berikut:
+ **Menggunakan konsol App Runner** — Tentukan perintah di bagian **Configure build** pada tab proses pembuatan atau konfigurasi.
+ **Menggunakan App Runner API** — Panggil operasi [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)atau [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Tentukan perintah menggunakan `BuildCommand` dan `StartCommand` anggota tipe [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html)data.
+ **Menggunakan [file konfigurasi](config-file.md)** — Tentukan satu atau beberapa perintah build hingga tiga fase build, dan satu perintah run yang berfungsi untuk memulai aplikasi Anda. Ada pengaturan konfigurasi opsional tambahan.

Menyediakan file konfigurasi adalah opsional. Saat membuat layanan App Runner menggunakan konsol atau API, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.

## Callout untuk versi runtime tertentu
<a name="service-source-code-python.callouts"></a>

**catatan**  
App Runner sekarang menjalankan proses build yang diperbarui untuk aplikasi berdasarkan versi runtime berikut: Python 3.11, Node.js 22, dan Node.js 18. Jika aplikasi Anda berjalan pada salah satu versi runtime ini, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail) untuk informasi selengkapnya tentang proses build yang direvisi. Aplikasi yang menggunakan semua versi runtime lainnya tidak terpengaruh, dan mereka terus menggunakan proses build asli. 

### Python 3.11 (build App Runner yang direvisi)
<a name="service-source-code-python.callouts.python311"></a>

Gunakan pengaturan berikut di *apprunner.yaml untuk runtime Python 3.11* yang dikelola.
+ Atur `runtime` kunci di bagian Atas ke `python311`   
**Example**  

  ```
  runtime: python311
  ```
+ Gunakan `pip3` alih-alih `pip` untuk menginstal dependensi.
+ Gunakan `python3` interpreter sebagai gantinya. `python`
+ Jalankan `pip3` installer sebagai `pre-run` perintah. Python menginstal dependensi di luar direktori. `/app` Karena App Runner menjalankan build App Runner yang direvisi untuk Python 3.11, apa pun yang diinstal di luar `/app` direktori melalui perintah di bagian Build file akan hilang. `apprunner.yaml` Untuk informasi selengkapnya, lihat [Versi App Runner yang direvisi](service-source-code.md#service-source-code.build-detail.v2).  
**Example**  

  ```
  run:
    runtime-version: 3.11
    pre-run:  
      - pip3 install pipenv
      - pipenv install
      - python3 copy-global-files.py
    command: pipenv run gunicorn django_apprunner.wsgi --log-file -
  ```

Untuk informasi selengkapnya, lihat juga [contoh file konfigurasi yang diperluas untuk Python 3.11](#service-source-code-python.examples.extended-v2) nanti dalam topik ini.

## Contoh runtime Python
<a name="service-source-code-python.examples"></a>

Contoh berikut menunjukkan file konfigurasi App Runner untuk membangun dan menjalankan layanan Python. Contoh terakhir adalah kode sumber untuk aplikasi Python lengkap yang dapat Anda gunakan ke layanan runtime Python.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah *3.7.7* dan*3.11*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Python terbaru yang didukung, lihat. [Informasi rilis runtime Python](service-source-code-python-releases.md)

### File konfigurasi Python minimal
<a name="service-source-code-python.examples.minimal"></a>

Contoh ini menunjukkan file konfigurasi minimal yang dapat Anda gunakan dengan runtime terkelola Python. Untuk asumsi yang dibuat oleh App Runner dengan file konfigurasi minimal, lihat. [Contoh file konfigurasi](config-file-examples.md#config-file-examples.managed)

Python 3.11 menggunakan perintah dan`pip3`. `python3` Untuk informasi selengkapnya, lihat [contoh file konfigurasi yang diperluas untuk Python 3.11](#service-source-code-python.examples.extended-v2) nanti dalam topik ini.

**Example apprunner.yaml**  

```
version: 1.0
runtime: python3 
build:
  commands:
    build:
      - pip install pipenv
      - pipenv install 
run: 
  command: python app.py
```

### File konfigurasi Python yang diperluas
<a name="service-source-code-python.examples.extended"></a>

Contoh ini menunjukkan penggunaan semua kunci konfigurasi dengan runtime terkelola Python.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*3.7.7*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Python terbaru yang didukung, lihat. [Informasi rilis runtime Python](service-source-code-python-releases.md)  
Python 3.11 menggunakan perintah dan`pip3`. `python3` Untuk informasi selengkapnya, lihat contoh file konfigurasi yang diperluas untuk Python 3.11 nanti dalam topik ini.

**Example apprunner.yaml**  

```
version: 1.0
runtime: python3 
build:
  commands:
    pre-build:
      - wget -c https://s3.amazonaws.com/amzn-s3-demo-bucket/test-lib.tar.gz -O - | tar -xz
    build:        
      - pip install pipenv
      - pipenv install
    post-build:
      - python manage.py test
  env:
    - name: DJANGO_SETTINGS_MODULE
      value: "django_apprunner.settings"
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 3.7.7
  command: pipenv run gunicorn django_apprunner.wsgi --log-file -
  network: 
    port: 8000
    env: MY_APP_PORT  
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
  secrets:
    - name: my-secret
      value-from: "arn:aws:secretsmanager:us-east-1:123456789012:secret:testingstackAppRunnerConstr-kJFXde2ULKbT-S7t8xR:username::"
    - name: my-parameter
      value-from: "arn:aws:ssm:us-east-1:123456789012:parameter/parameter-name"
    - name: my-parameter-only-name
      value-from: "parameter-name"
```

### File konfigurasi Python yang diperluas - Python 3.11 (menggunakan build yang direvisi)
<a name="service-source-code-python.examples.extended-v2"></a>

Contoh ini menunjukkan penggunaan semua kunci konfigurasi dengan runtime terkelola Python 3.11 di. `apprunner.yaml` Contoh ini menyertakan `pre-run` bagian, karena versi Python ini menggunakan build App Runner yang direvisi.

`pre-run`Parameter ini hanya didukung oleh build App Runner yang direvisi. Jangan masukkan parameter ini dalam file konfigurasi jika aplikasi Anda menggunakan versi runtime yang didukung oleh build App Runner asli. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*3.11*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Python terbaru yang didukung, lihat. [Informasi rilis runtime Python](service-source-code-python-releases.md)

**Example apprunner.yaml**  

```
version: 1.0
runtime: python311
build:
  commands:
    pre-build:
      - wget -c https://s3.amazonaws.com/amzn-s3-demo-bucket/test-lib.tar.gz -O - | tar -xz
    build:        
      - pip3 install pipenv
      - pipenv install
    post-build:
      - python3 manage.py test
  env:
    - name: DJANGO_SETTINGS_MODULE
      value: "django_apprunner.settings"
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 3.11
  pre-run:  
    - pip3 install pipenv
    - pipenv install
    - python3 copy-global-files.py
  command: pipenv run gunicorn django_apprunner.wsgi --log-file -
  network: 
    port: 8000
    env: MY_APP_PORT  
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
  secrets:
    - name: my-secret
      value-from: "arn:aws:secretsmanager:us-east-1:123456789012:secret:testingstackAppRunnerConstr-kJFXde2ULKbT-S7t8xR:username::"
    - name: my-parameter
      value-from: "arn:aws:ssm:us-east-1:123456789012:parameter/parameter-name"
    - name: my-parameter-only-name
      value-from: "parameter-name"
```

### Sumber aplikasi Python lengkap
<a name="service-source-code-python.examples.end2end"></a>

Contoh ini menunjukkan kode sumber untuk aplikasi Python lengkap yang dapat Anda gunakan ke layanan runtime Python.

**Example requirements.txt**  

```
pyramid==2.0
```

**Example server.py**  

```
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
import os

def hello_world(request):
    name = os.environ.get('NAME')
    if name == None or len(name) == 0:
        name = "world"
    message = "Hello, " + name + "!\n"
    return Response(message)

if __name__ == '__main__':
    port = int(os.environ.get("PORT"))
    with Configurator() as config:
        config.add_route('hello', '/')
        config.add_view(hello_world, route_name='hello')
        app = config.make_wsgi_app()
    server = make_server('0.0.0.0', port, app)
    server.serve_forever()
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: python3
build:
  commands:
    build:
      - pip install -r requirements.txt
run:
  command: python server.py
```

# Informasi rilis runtime Python
<a name="service-source-code-python-releases"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **Python 3.7 **dan Python**** 3.8 pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Topik ini mencantumkan detail lengkap untuk versi runtime Python yang didukung App Runner.


**Versi runtime yang didukung — build App Runner yang direvisi**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-python-releases.html)

**Catatan**  
**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](service-source-code-python.md#service-source-code-python.callouts) di *topik platform Python*.
App Runner menyediakan proses build yang direvisi untuk runtime utama tertentu yang telah dirilis baru-baru ini. Karena itu, Anda akan melihat referensi ke build *App Runner yang direvisi dan build* *App Runner asli* di bagian tertentu dari dokumen ini. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).


**Versi runtime yang didukung — build App Runner asli**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-python-releases.html)

**catatan**  
App Runner menyediakan proses build yang direvisi untuk runtime utama tertentu yang telah dirilis baru-baru ini. Karena itu, Anda akan melihat referensi ke build *App Runner yang direvisi dan build* *App Runner asli* di bagian tertentu dari dokumen ini. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).

# Menggunakan platform Node.js
<a name="service-source-code-nodejs"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **Node.js 12**, **Node.js 14**, **Node.js 16** dan **Node.js 18** pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Platform AWS App Runner Node.js menyediakan runtime terkelola. Setiap runtime memudahkan untuk membangun dan menjalankan container dengan aplikasi web berdasarkan versi Node.js. Saat Anda menggunakan runtime Node.js, App Runner dimulai dengan image runtime Node.js yang dikelola. Gambar ini didasarkan pada image [Amazon Linux Docker](https://hub.docker.com/_/amazonlinux) dan berisi paket runtime untuk versi Node.js dan beberapa alat. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

 Anda menentukan runtime untuk layanan App Runner saat [membuat layanan](manage-create.md) menggunakan konsol App Runner atau operasi API. [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan `runtime` kata kunci dalam [file konfigurasi App Runner](config-file.md) yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan dari runtime terkelola adalah*<language-name><major-version>*. 

Untuk nama dan versi runtime Node.js yang valid, lihat[Informasi rilis runtime Node.js](service-source-code-nodejs-releases.md).

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](config-file.md). 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.

Sintaks versi untuk runtime Node.js: `major[.minor[.patch]]`

Misalnya: `22.14.0`

Contoh berikut menunjukkan penguncian versi:
+ `22.14`— Kunci versi mayor dan minor. App Runner hanya memperbarui versi tambalan.
+ `22.14.0`— Kunci ke versi patch tertentu. App Runner tidak memperbarui versi runtime Anda.

**Topics**
+ [Konfigurasi runtime Node.js](#service-source-code-nodejs.config)
+ [Callout untuk versi runtime tertentu](#service-source-code-nodejs.callouts)
+ [Contoh runtime Node.js](#service-source-code-nodejs.examples)
+ [Informasi rilis runtime Node.js](service-source-code-nodejs-releases.md)

## Konfigurasi runtime Node.js
<a name="service-source-code-nodejs.config"></a>

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat [membuat](manage-create.md) atau [memperbarui](manage-configure.md) layanan App Runner. Anda dapat melakukan ini menggunakan salah satu metode berikut:
+ **Menggunakan konsol App Runner** — Tentukan perintah di bagian **Configure build** pada tab proses pembuatan atau konfigurasi.
+ **Menggunakan App Runner API** — Panggil operasi [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)atau [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Tentukan perintah menggunakan `BuildCommand` dan `StartCommand` anggota tipe [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html)data.
+ **Menggunakan [file konfigurasi](config-file.md)** — Tentukan satu atau beberapa perintah build hingga tiga fase build, dan satu perintah run yang berfungsi untuk memulai aplikasi Anda. Ada pengaturan konfigurasi opsional tambahan.

Menyediakan file konfigurasi adalah opsional. Saat membuat layanan App Runner menggunakan konsol atau API, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.

Dengan runtime Node.js secara khusus, Anda juga dapat mengonfigurasi build dan runtime menggunakan file JSON yang diberi nama `package.json` di root repositori sumber Anda. Dengan menggunakan file ini, Anda dapat mengonfigurasi versi mesin Node.js, paket ketergantungan, dan berbagai perintah (aplikasi baris perintah). Package manager seperti npm atau yarn menafsirkan file ini sebagai masukan untuk perintah mereka.

Contoh:
+ **npm install**menginstal paket yang ditentukan oleh `dependencies` dan `devDependencies` node di`package.json`.
+ **npm start**atau **npm run start** menjalankan perintah yang ditentukan oleh `scripts/start` node di`package.json`.

Berikut ini adalah contoh `package.json` file.

### package.json
<a name="service-source-code-nodejs.config.package-json-example"></a>

```
{
  "name": "node-js-getting-started",
  "version": "0.3.0",
  "description": "A sample Node.js app using Express 4",
  "engines": {
    "node": "22.14.0"
  },
  "scripts": {
    "start": "node index.js",
    "test": "node test.js"
  },
  "dependencies": {
    "cool-ascii-faces": "^1.3.4",
    "ejs": "^2.5.6",
    "express": "^4.15.2"
  },
  "devDependencies": {
    "got": "^11.3.0",
    "tape": "^4.7.0"
  }
}
```

*Untuk informasi selengkapnya`package.json`, lihat [Membuat file package.json](https://docs.npmjs.com/creating-a-package-json-file) di situs web npm Docs.* 

**Kiat**  
Jika `package.json` file Anda mendefinisikan **start** perintah, Anda dapat menggunakannya sebagai **run** perintah dalam file konfigurasi App Runner, seperti yang ditunjukkan contoh berikut.  

**Example**  
package.json  

  ```
  {
    "scripts": {
      "start": "node index.js"
    }
  }
  ```
apprunner.yaml  

  ```
  run:
    command: npm start
  ```
Ketika Anda menjalankan **npm install** di lingkungan pengembangan Anda, npm membuat file`package-lock.json`. File ini berisi snapshot dari versi paket npm yang baru saja diinstal. Setelah itu, ketika npm menginstal dependensi, ia menggunakan versi yang tepat ini. Jika Anda menginstal benang, itu akan membuat `yarn.lock` file. Komit file-file ini ke repositori kode sumber Anda untuk memastikan bahwa aplikasi Anda diinstal dengan versi dependensi yang Anda kembangkan dan uji.
Anda juga dapat menggunakan file konfigurasi App Runner untuk mengonfigurasi versi Node.js dan memulai perintah. Ketika Anda melakukan ini, definisi ini mengesampingkan yang masuk`package.json`. Konflik antara `node` versi masuk `package.json` dan `runtime-version` nilai dalam file konfigurasi App Runner menyebabkan fase build App Runner gagal.

## Callout untuk versi runtime tertentu
<a name="service-source-code-nodejs.callouts"></a>

### Node.js 22 dan Node.js 18 (build App Runner yang direvisi)
<a name="service-source-code-nodejs.callouts.nodejs18"></a>

App Runner sekarang menjalankan proses build yang diperbarui untuk aplikasi berdasarkan versi runtime berikut: Python 3.11, Node.js 22, dan Node.js 18. Jika aplikasi Anda berjalan pada salah satu versi runtime ini, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail) untuk informasi selengkapnya tentang proses build yang direvisi. Aplikasi yang menggunakan semua versi runtime lainnya tidak terpengaruh, dan mereka terus menggunakan proses build asli. 

## Contoh runtime Node.js
<a name="service-source-code-nodejs.examples"></a>

Contoh berikut menunjukkan file konfigurasi App Runner untuk membangun dan menjalankan layanan Node.js. 

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*22.14.0*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Node.js terbaru yang didukung, lihat[Informasi rilis runtime Node.js](service-source-code-nodejs-releases.md).

### File konfigurasi Node.js minimal
<a name="service-source-code-nodejs.examples.minimal"></a>

Contoh ini menunjukkan file konfigurasi minimal yang dapat Anda gunakan dengan runtime terkelola Node.js. Untuk asumsi yang dibuat oleh App Runner dengan file konfigurasi minimal, lihat. [Contoh file konfigurasi](config-file-examples.md#config-file-examples.managed)

**Example apprunner.yaml**  

```
version: 1.0
runtime: nodejs22
build:
  commands:    
    build:
      - npm install --production                                  
run:                              
  command: node app.js
```

### File konfigurasi Node.js yang diperluas
<a name="service-source-code-nodejs.examples.extended"></a>

Contoh ini menunjukkan penggunaan semua kunci konfigurasi dengan runtime terkelola Node.js.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*22.14.0*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Node.js terbaru yang didukung, lihat[Informasi rilis runtime Node.js](service-source-code-nodejs-releases.md).

**Example apprunner.yaml**  

```
version: 1.0
runtime: nodejs22
build:
  commands:
    pre-build:
      - npm install --only=dev
      - node test.js
    build:
      - npm install --production
    post-build:
      - node node_modules/ejs/postinstall.js
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 22.14.0
  command: node app.js
  network:
    port: 8000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### File konfigurasi Node.js yang diperluas - Node.js 22 (menggunakan build yang direvisi)
<a name="service-source-code-nodejs.examples.extended-v2"></a>

Contoh ini menunjukkan penggunaan semua kunci konfigurasi dengan runtime terkelola Node.js di. `apprunner.yaml` Contoh ini menyertakan `pre-run` bagian, karena versi Node.js ini menggunakan build App Runner yang direvisi.

`pre-run`Parameter ini hanya didukung oleh build App Runner yang direvisi. Jangan masukkan parameter ini dalam file konfigurasi jika aplikasi Anda menggunakan versi runtime yang didukung oleh build App Runner asli. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*22.14.0*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Node.js terbaru yang didukung, lihat[Informasi rilis runtime Node.js](service-source-code-nodejs-releases.md).

**Example apprunner.yaml**  

```
version: 1.0
runtime: nodejs22
build:
  commands:
    pre-build:
      - npm install --only=dev
      - node test.js
    build:
      - npm install --production
    post-build:
      - node node_modules/ejs/postinstall.js
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 22.14.0
  pre-run: 
    - node copy-global-files.js
  command: node app.js
  network:
    port: 8000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### Aplikasi Node.js dengan Grunt
<a name="service-source-code-nodejs.examples.grunt"></a>

Contoh ini menunjukkan cara mengkonfigurasi aplikasi Node.js yang dikembangkan dengan Grunt. [Grunt](https://gruntjs.com/) adalah runner JavaScript tugas baris perintah. Ini menjalankan tugas berulang dan mengelola otomatisasi proses untuk mengurangi kesalahan manusia. Plugin Grunt dan Grunt diinstal dan dikelola menggunakan npm. Anda mengkonfigurasi Grunt dengan memasukkan `Gruntfile.js` file di root repositori sumber Anda.

**Example package.json**  

```
{
  "scripts": {
    "build": "grunt uglify",
    "start": "node app.js"
  },
  "devDependencies": {
    "grunt": "~0.4.5",
    "grunt-contrib-jshint": "~0.10.0",
    "grunt-contrib-nodeunit": "~0.4.1",
    "grunt-contrib-uglify": "~0.5.0"
  },
  "dependencies": {
    "express": "^4.15.2"
  },
}
```

**Example Gruntfile.js**  

```
module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      build: {
        src: 'src/<%= pkg.name %>.js',
        dest: 'build/<%= pkg.name %>.min.js'
      }
    }
  });

  // Load the plugin that provides the "uglify" task.
  grunt.loadNpmTasks('grunt-contrib-uglify');

  // Default task(s).
  grunt.registerTask('default', ['uglify']);

};
```

**Example apprunner.yaml**  
Versi runtime yang digunakan dalam contoh ini adalah*22.14.0*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Node.js terbaru yang didukung, lihat[Informasi rilis runtime Node.js](service-source-code-nodejs-releases.md).

```
version: 1.0
runtime: nodejs22
build:
  commands:
    pre-build:
      - npm install grunt grunt-cli
      - npm install --only=dev
      - npm run build
    build:
      - npm install --production
run:
  runtime-version: 22.14.0
  command: node app.js
  network:
    port: 8000
    env: APP_PORT
```

# Informasi rilis runtime Node.js
<a name="service-source-code-nodejs-releases"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **Node.js 12**, **Node.js 14**, **Node.js 16** dan **Node.js 18** pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

**catatan**  
Kebijakan penghentian standar App Runner adalah menghentikan runtime ketika komponen utama runtime mencapai akhir dukungan jangka panjang komunitas (LTS) dan pembaruan keamanan tidak lagi tersedia. Dalam beberapa kasus, App Runner dapat menunda penghentian runtime untuk periode terbatas, di luar end-of-support tanggal versi bahasa yang didukung oleh runtime. Contoh kasus seperti itu adalah memperluas dukungan untuk runtime guna memungkinkan waktu pelanggan untuk migrasi.

Topik ini mencantumkan detail lengkap untuk versi runtime Node.js yang didukung App Runner.


**Versi runtime yang didukung — build App Runner yang direvisi**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-nodejs-releases.html)

**catatan**  
App Runner menyediakan proses build yang direvisi untuk runtime utama tertentu yang telah dirilis baru-baru ini. Karena itu, Anda akan melihat referensi ke build *App Runner yang direvisi dan build* *App Runner asli* di bagian tertentu dari dokumen ini. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).


**Versi runtime yang didukung — build App Runner yang direvisi**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-nodejs-releases.html)




**Versi runtime yang didukung — build App Runner asli**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-nodejs-releases.html)

# Menggunakan platform Java
<a name="service-source-code-java"></a>

Platform AWS App Runner Java menyediakan runtime terkelola. Setiap runtime memudahkan untuk membangun dan menjalankan kontainer dengan aplikasi web berdasarkan versi Java. Saat Anda menggunakan runtime Java, App Runner dimulai dengan image runtime Java yang dikelola. Gambar ini didasarkan pada image [Amazon Linux Docker](https://hub.docker.com/_/amazonlinux) dan berisi paket runtime untuk versi Java dan beberapa alat. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

 Anda menentukan runtime untuk layanan App Runner saat [membuat layanan](manage-create.md) menggunakan konsol App Runner atau operasi API. [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan `runtime` kata kunci dalam [file konfigurasi App Runner](config-file.md) yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan dari runtime terkelola adalah*<language-name><major-version>*. 

Saat ini, semua runtime Java yang didukung didasarkan pada Amazon Corretto. Untuk nama dan versi runtime Java yang valid, lihat[Informasi rilis runtime Java](service-source-code-java-releases.md).

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](config-file.md). 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.

Sintaks versi untuk runtime Amazon Corretto:


| **Runtime** | **Sintaksis** | **Contoh** | 
| --- | --- | --- | 
|  corretto11  |  `11.0[.openjdk-update[.openjdk-build[.corretto-specific-revision]]]`  |  `11.0.13.08.1`  | 
|  corretto8  |  `8[.openjdk-update[.openjdk-build[.corretto-specific-revision]]]`  |  `8.312.07.1`  | 

Contoh berikut menunjukkan penguncian versi:
+ `11.0.13`— Kunci versi pembaruan JDK Terbuka. App Runner hanya memperbarui Open JDK dan Amazon Corretto build tingkat rendah.
+ `11.0.13.08.1`— Kunci ke versi tertentu. App Runner tidak memperbarui versi runtime Anda.

**Topics**
+ [Konfigurasi runtime Java](#service-source-code-java.config)
+ [Contoh runtime Java](#service-source-code-java.examples)
+ [Informasi rilis runtime Java](service-source-code-java-releases.md)

## Konfigurasi runtime Java
<a name="service-source-code-java.config"></a>

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat [membuat](manage-create.md) atau [memperbarui](manage-configure.md) layanan App Runner. Anda dapat melakukan ini menggunakan salah satu metode berikut:
+ **Menggunakan konsol App Runner** — Tentukan perintah di bagian **Configure build** pada tab proses pembuatan atau konfigurasi.
+ **Menggunakan App Runner API** — Panggil operasi [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)atau [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Tentukan perintah menggunakan `BuildCommand` dan `StartCommand` anggota tipe [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html)data.
+ **Menggunakan [file konfigurasi](config-file.md)** — Tentukan satu atau beberapa perintah build hingga tiga fase build, dan satu perintah run yang berfungsi untuk memulai aplikasi Anda. Ada pengaturan konfigurasi opsional tambahan.

Menyediakan file konfigurasi adalah opsional. Saat membuat layanan App Runner menggunakan konsol atau API, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.

## Contoh runtime Java
<a name="service-source-code-java.examples"></a>

Contoh berikut menunjukkan file konfigurasi App Runner untuk membangun dan menjalankan layanan Java. Contoh terakhir adalah kode sumber untuk aplikasi Java lengkap yang dapat Anda gunakan ke layanan runtime Corretto 11.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*11.0.13.08.1*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Java terbaru yang didukung, lihat[Informasi rilis runtime Java](service-source-code-java-releases.md).

### File konfigurasi Corretto 11 minimal
<a name="service-source-code-java.examples.minimal"></a>

Contoh ini menunjukkan file konfigurasi minimal yang dapat Anda gunakan dengan runtime terkelola Corretto 11. Untuk asumsi yang dibuat oleh App Runner dengan file konfigurasi minimal, lihat.

**Example apprunner.yaml**  

```
version: 1.0
runtime: corretto11
build:
  commands:    
    build:
      - mvn clean package
run:                              
  command: java -Xms256m -jar target/MyApp-1.0-SNAPSHOT.jar .
```

### File konfigurasi Corretto 11 yang diperluas
<a name="service-source-code-java.examples.extended"></a>

Contoh ini menunjukkan bagaimana Anda dapat menggunakan semua kunci konfigurasi dengan runtime terkelola Corretto 11.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*11.0.13.08.1*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Java terbaru yang didukung, lihat[Informasi rilis runtime Java](service-source-code-java-releases.md).

**Example apprunner.yaml**  

```
version: 1.0
runtime: corretto11
build:
  commands:
    pre-build:
      - yum install some-package
      - scripts/prebuild.sh
    build:
      - mvn clean package
    post-build:
      - mvn clean test
  env:
    - name: M2
      value: "/usr/local/apache-maven/bin"
    - name: M2_HOME
      value: "/usr/local/apache-maven/bin"
run:
  runtime-version: 11.0.13.08.1
  command: java -Xms256m -jar target/MyApp-1.0-SNAPSHOT.jar .
  network:
    port: 8000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### Sumber aplikasi Corretto 11 lengkap
<a name="service-source-code-java.examples.end2end"></a>

Contoh ini menunjukkan kode sumber untuk aplikasi Java lengkap yang dapat Anda gunakan ke layanan runtime Corretto 11.

**Example src/main/java/com/HelloWorld/HelloWorld.jawa**  

```
package com.HelloWorld;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorld {

    @RequestMapping("/")
    public String index(){
        String s = "Hello World";
        return s;
    }
}
```

**Example src/main/java/com/HelloWorld/Main.jawa**  

```
package com.HelloWorld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Main {

    public static void main(String[] args) {

        SpringApplication.run(Main.class, args);
    }
}
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: corretto11
build:
  commands:    
    build:
      - mvn clean package
run:                              
  command: java -Xms256m -jar target/HelloWorldJavaApp-1.0-SNAPSHOT.jar .
  network:
    port: 8080
```

**Example pom.xml**  

```
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.1.RELEASE</version>
    <relativePath/>
  </parent>
  <groupId>com.HelloWorld</groupId>
  <artifactId>HelloWorldJavaApp</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <java.version>11</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <release>11</release>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
```

# Informasi rilis runtime Java
<a name="service-source-code-java-releases"></a>

Topik ini mencantumkan detail lengkap untuk versi runtime Java yang didukung App Runner.


**Versi runtime yang didukung — build App Runner asli**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-java-releases.html)

**catatan**  
App Runner menyediakan proses build yang direvisi untuk runtime utama tertentu yang telah dirilis baru-baru ini. Karena itu, Anda akan melihat referensi ke build *App Runner yang direvisi dan build* *App Runner asli* di bagian tertentu dari dokumen ini. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).

# Menggunakan platform.NET
<a name="service-source-code-net6"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **.NET 6** pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

 AWS App Runner Platform.NET menyediakan runtime terkelola. Setiap runtime memudahkan untuk membangun dan menjalankan container dengan aplikasi web berdasarkan versi.NET. Saat Anda menggunakan runtime.NET, App Runner dimulai dengan image runtime.NET yang dikelola. Gambar ini didasarkan pada image [Amazon Linux Docker](https://hub.docker.com/_/amazonlinux) dan berisi paket runtime untuk versi.NET dan beberapa alat dan paket ketergantungan populer. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

 Anda menentukan runtime untuk layanan App Runner saat [membuat layanan](manage-create.md) menggunakan konsol App Runner atau operasi API. [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan `runtime` kata kunci dalam [file konfigurasi App Runner](config-file.md) yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan dari runtime terkelola adalah*<language-name><major-version>*. 

Untuk nama dan versi runtime .NET yang valid, lihat[.NET informasi rilis runtime](service-source-code-dotnet-releases.md).

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](config-file.md). 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.

Sintaks versi untuk runtime.NET: `major[.minor[.patch]]`

Misalnya: `6.0.9`

Contoh berikut menunjukkan penguncian versi:
+ `6.0`— Kunci versi mayor dan minor. App Runner hanya memperbarui versi tambalan.
+ `6.0.9`— Kunci ke versi patch tertentu. App Runner tidak memperbarui versi runtime Anda.

**Topics**
+ [Konfigurasi runtime .NET](#service-source-code-net6.config)
+ [Contoh runtime .NET](#service-source-code-net6.examples)
+ [.NET informasi rilis runtime](service-source-code-dotnet-releases.md)

## Konfigurasi runtime .NET
<a name="service-source-code-net6.config"></a>

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat [membuat](manage-create.md) atau [memperbarui](manage-configure.md) layanan App Runner. Anda dapat melakukan ini menggunakan salah satu metode berikut:
+ **Menggunakan konsol App Runner** — Tentukan perintah di bagian **Configure build** pada tab proses pembuatan atau konfigurasi.
+ **Menggunakan App Runner API** — Panggil operasi [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)atau [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Tentukan perintah menggunakan `BuildCommand` dan `StartCommand` anggota tipe [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html)data.
+ **Menggunakan [file konfigurasi](config-file.md)** — Tentukan satu atau beberapa perintah build hingga tiga fase build, dan satu perintah run yang berfungsi untuk memulai aplikasi Anda. Ada pengaturan konfigurasi opsional tambahan.

Menyediakan file konfigurasi adalah opsional. Saat membuat layanan App Runner menggunakan konsol atau API, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.

## Contoh runtime .NET
<a name="service-source-code-net6.examples"></a>

Contoh berikut menunjukkan file konfigurasi App Runner untuk membangun dan menjalankan layanan.NET. Contoh terakhir adalah kode sumber untuk aplikasi.NET lengkap yang dapat Anda gunakan ke layanan runtime .NET.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*6.0.9*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime.NET terbaru yang didukung, lihat[.NET informasi rilis runtime](service-source-code-dotnet-releases.md).

### File konfigurasi.NET minimal
<a name="service-source-code-net6.examples.minimal"></a>

Contoh ini menunjukkan file konfigurasi minimal yang dapat Anda gunakan dengan runtime terkelola .NET. Untuk asumsi yang dibuat oleh App Runner dengan file konfigurasi minimal, lihat. [Contoh file konfigurasi](config-file-examples.md#config-file-examples.managed)

**Example apprunner.yaml**  

```
version: 1.0
runtime: dotnet6
build:
  commands:    
    build:
      - dotnet publish -c Release -o out
run:                              
  command: dotnet out/HelloWorldDotNetApp.dll
```

### File konfigurasi.NET yang diperluas
<a name="service-source-code-net6.examples.extended"></a>

Contoh ini menunjukkan penggunaan semua kunci konfigurasi dengan runtime terkelola .NET.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*6.0.9*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime.NET terbaru yang didukung, lihat[.NET informasi rilis runtime](service-source-code-dotnet-releases.md).

**Example apprunner.yaml**  

```
version: 1.0
runtime: dotnet6
build:
  commands:
    pre-build:
      - scripts/prebuild.sh
    build:
      - dotnet publish -c Release -o out
    post-build:
      - scripts/postbuild.sh
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"    
run:
  runtime-version: 6.0.9
  command: dotnet out/HelloWorldDotNetApp.dll
  network:
    port: 5000
    env: APP_PORT
  env:
    - name: ASPNETCORE_URLS
      value: "http://*:5000"
```

### Sumber aplikasi.NET lengkap
<a name="service-source-code-net6.examples.end2end"></a>

Contoh ini menunjukkan kode sumber untuk aplikasi.NET lengkap yang dapat Anda gunakan ke layanan runtime .NET.

**catatan**  
 Jalankan perintah berikut untuk membuat aplikasi web.NET 6 sederhana: ` dotnet new web --name HelloWorldDotNetApp -f net6.0`
 Tambahkan `apprunner.yaml` ke aplikasi web.NET 6 yang dibuat. 

**Example HelloWorldDotNetApp**  

```
version: 1.0
runtime: dotnet6
build:
  commands:
    build:
      - dotnet publish -c Release -o out
run:
  command: dotnet out/HelloWorldDotNetApp.dll
  network:
    port: 5000
    env: APP_PORT
  env:
    - name: ASPNETCORE_URLS
      value: "http://*:5000"
```

# .NET informasi rilis runtime
<a name="service-source-code-dotnet-releases"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **.NET 6** pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Topik ini mencantumkan detail lengkap untuk versi runtime.NET yang didukung App Runner.


**Versi runtime yang didukung — build App Runner asli**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-dotnet-releases.html)

**catatan**  
App Runner menyediakan proses build yang direvisi untuk runtime utama tertentu yang telah dirilis baru-baru ini. Karena itu, Anda akan melihat referensi ke build *App Runner yang direvisi dan build* *App Runner asli* di bagian tertentu dari dokumen ini. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).

# Menggunakan platform PHP
<a name="service-source-code-php"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **PHP 8.1** pada 31 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Platform AWS App Runner PHP menyediakan runtime terkelola. Anda dapat menggunakan setiap runtime untuk membangun dan menjalankan kontainer dengan aplikasi web berdasarkan versi PHP. Saat Anda menggunakan runtime PHP, App Runner dimulai dengan image runtime PHP yang dikelola. Gambar ini didasarkan pada image [Amazon Linux Docker](https://hub.docker.com/_/amazonlinux) dan berisi paket runtime untuk versi PHP dan beberapa alat. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

 Anda menentukan runtime untuk layanan App Runner saat [membuat layanan](manage-create.md) menggunakan konsol App Runner atau operasi API. [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan `runtime` kata kunci dalam [file konfigurasi App Runner](config-file.md) yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan dari runtime terkelola adalah*<language-name><major-version>*. 

Untuk nama dan versi runtime PHP yang valid, lihat[Informasi rilis runtime PHP](service-source-code-php-releases.md).

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](config-file.md). 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.

Sintaks versi untuk runtime PHP: `major[.minor[.patch]]`

Misalnya: `8.1.10`

Berikut ini adalah contoh penguncian versi:
+ `8.1`— Kunci versi mayor dan minor. App Runner hanya memperbarui versi tambalan.
+ `8.1.10`— Kunci ke versi patch tertentu. App Runner tidak memperbarui versi runtime Anda.

**penting**  
 Jika Anda ingin menentukan [direktori sumber repositori kode untuk layanan App Runner Anda di lokasi selain direktori](service-source-code.md#service-source-code.source-directory) root repositori default, versi runtime terkelola PHP Anda harus PHP atau yang lebih baru. `8.1.22` Versi runtime PHP sebelumnya hanya `8.1.22` dapat menggunakan direktori sumber root default. 

**Topics**
+ [Konfigurasi runtime PHP](#service-source-code-php.config)
+ [Kompatibilitas](#service-source-code-php.compatibility)
+ [Contoh runtime PHP](#service-source-code-php.examples)
+ [Informasi rilis runtime PHP](service-source-code-php-releases.md)

## Konfigurasi runtime PHP
<a name="service-source-code-php.config"></a>

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat [membuat](manage-create.md) atau [memperbarui](manage-configure.md) layanan App Runner. Anda dapat melakukan ini menggunakan salah satu metode berikut:
+ **Menggunakan konsol App Runner** — Tentukan perintah di bagian **Configure build** pada tab proses pembuatan atau konfigurasi.
+ **Menggunakan App Runner API** — Panggil operasi [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)atau [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Tentukan perintah menggunakan `BuildCommand` dan `StartCommand` anggota tipe [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html)data.
+ **Menggunakan [file konfigurasi](config-file.md)** — Tentukan satu atau beberapa perintah build hingga tiga fase build, dan satu perintah run yang berfungsi untuk memulai aplikasi Anda. Ada pengaturan konfigurasi opsional tambahan.

Menyediakan file konfigurasi adalah opsional. Saat membuat layanan App Runner menggunakan konsol atau API, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.

## Kompatibilitas
<a name="service-source-code-php.compatibility"></a>

Anda dapat menjalankan layanan App Runner di platform PHP menggunakan salah satu server web berikut: 
+ Apache HTTP Server
+ NGINX

Apache HTTP Serverdan NGINX kompatibel dengan PHP-FPM. Anda dapat memulai *Apache HTTP Server*dan *NGINX*dengan menggunakan salah satu dari berikut ini:
+ [Supervisord](http://supervisord.org/introduction.html#supervisor-components/) - Untuk informasi selengkapnya tentang menjalankan *supervisord*, lihat [Menjalankan supervisord](http://supervisord.org/running.html#running-supervisord). 
+ Skrip startup 

Untuk contoh tentang cara mengonfigurasi layanan App Runner Anda dengan platform PHP menggunakan *Apache HTTP Server* atau *NGINX*, lihat. [Sumber aplikasi PHP lengkap](#service-source-code-php.examples.end2end) 

### Struktur File
<a name="service-source-code-php.compatibility.file-structure"></a>

`index.php`Harus diinstal di `public` folder di bawah `root` direktori server web. 

**catatan**  
Kami menyarankan agar `supervisord.conf` file `startup.sh` atau disimpan di direktori root server web. Pastikan bahwa `start` perintah menunjuk ke lokasi di mana `supervisord.conf` file `startup.sh` atau disimpan.

 Berikut ini adalah contoh struktur file jika Anda menggunakan *supervisord*. 

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
```

Berikut ini adalah contoh struktur file jika Anda menggunakan *skrip startup*.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

Sebaiknya simpan struktur file ini di [direktori sumber](service-source-code.md#service-source-code.source-directory) repositori kode yang ditujukan untuk layanan App Runner.

```
/<sourceDirectory>/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

**penting**  
 Jika Anda ingin menentukan [direktori sumber repositori kode untuk layanan App Runner Anda di lokasi selain direktori](service-source-code.md#service-source-code.source-directory) root repositori default, versi runtime terkelola PHP Anda harus PHP atau yang lebih baru. `8.1.22` Versi runtime PHP sebelumnya hanya `8.1.22` dapat menggunakan direktori sumber root default.   
App Runner memperbarui runtime untuk layanan Anda ke versi terbaru pada setiap penerapan atau pembaruan layanan. Layanan Anda akan menggunakan runtime terbaru secara default, kecuali Anda menentukan penguncian versi menggunakan `runtime-version` kata kunci dalam file [konfigurasi App Runner](config-file.md).

## Contoh runtime PHP
<a name="service-source-code-php.examples"></a>

Berikut ini adalah contoh file konfigurasi App Runner yang digunakan untuk membangun dan menjalankan layanan PHP. 

### File konfigurasi PHP minimal
<a name="service-source-code-php.examples.minimal"></a>

Contoh berikut adalah file konfigurasi minimal yang dapat Anda gunakan dengan runtime terkelola PHP. Untuk informasi selengkapnya tentang file konfigurasi minimal, lihat[Contoh file konfigurasi](config-file-examples.md#config-file-examples.managed).

**Example apprunner.yaml**  

```
version: 1.0 
runtime: php81
build:
  commands:
    build:
      - echo example build command for PHP
run:
  command: ./startup.sh
```

### File konfigurasi PHP yang diperluas
<a name="service-source-code-php.examples.extended"></a>

Contoh berikut menggunakan semua kunci konfigurasi dengan runtime terkelola PHP.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*8.1.10*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime PHP terbaru yang didukung, lihat[Informasi rilis runtime PHP](service-source-code-php-releases.md).

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
     pre-build:
      - scripts/prebuild.sh
    build:
      - echo example build command for PHP
    post-build:
      - scripts/postbuild.sh
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 8.1.10
  command: ./startup.sh
  network:
    port: 5000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### Sumber aplikasi PHP lengkap
<a name="service-source-code-php.examples.end2end"></a>

Contoh berikut adalah kode sumber aplikasi PHP yang dapat Anda gunakan untuk menyebarkan ke layanan runtime PHP menggunakan *Apache HTTP Server*atau. *NGINX* Contoh-contoh ini mengasumsikan bahwa Anda menggunakan struktur file default.

#### Menjalankan platform PHP dengan Apache HTTP Server menggunakan supervisord
<a name="service-source-code-php.examples.end2end.appache-supervisord"></a>

**Example Struktur file**  
+ `supervisord.conf`File dapat disimpan di mana saja di repositori. Pastikan bahwa `start` perintah menunjuk ke tempat `supervisord.conf` file disimpan.
+ `index.php`Harus diinstal di `public` folder di bawah `root` direktori.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
```

**Example supervisord.conf**  

```
[supervisord]
nodaemon=true

[program:httpd]
command=httpd -DFOREGROUND
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

[program:php-fpm]
command=php-fpm -F
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
    build:
      - PYTHON=python2 amazon-linux-extras install epel
      - yum -y install supervisor
run:
  command: supervisord
  network:
    port: 8080
    env: APP_PORT
```

**Example index.php**  

```
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
    print("Hello World!");
    print("<br>");
?>
</body>
</html>
```

#### Menjalankan platform PHP dengan Apache HTTP Server menggunakan startup script
<a name="service-source-code-php.examples.end2end.appache-startupscript"></a>

**Example Struktur file**  
+ `startup.sh`File dapat disimpan di mana saja di repositori. Pastikan bahwa `start` perintah menunjuk ke tempat `startup.sh` file disimpan.
+ `index.php`Harus diinstal di `public` folder di bawah `root` direktori.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

**Example startup.sh**  

```
#!/bin/bash

set -o monitor

trap exit SIGCHLD

# Start apache
httpd -DFOREGROUND &

# Start php-fpm
php-fpm -F &

wait
```

**catatan**  
Pastikan untuk menyimpan `startup.sh` file sebagai executable sebelum Anda mengkomitmennya ke repositori Git. Gunakan `chmod +x startup.sh` untuk mengatur izin eksekusi pada `startup.sh` file Anda. 
Jika Anda tidak menyimpan `startup.sh` file sebagai executable, masukkan `chmod +x startup.sh` sebagai `build` perintah dalam file Anda`apprunner.yaml`. 

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
    build:
      - echo example build command for PHP
run:
  command: ./startup.sh
  network:
    port: 8080
    env: APP_PORT
```

**Example index.php**  

```
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
    print("Hello World!");
    print("<br>");
?>
</body>
</html>
```

#### Menjalankan platform PHP dengan NGINX menggunakan supervisord
<a name="service-source-code-php.examples.end2end.nginx-supervisord"></a>

**Example Struktur file**  
+ `supervisord.conf`File dapat disimpan di mana saja di repositori. Pastikan bahwa `start` perintah menunjuk ke tempat `supervisord.conf` file disimpan.
+ `index.php`Harus diinstal di `public` folder di bawah `root` direktori.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
```

**Example supervisord.conf**  

```
[supervisord]
nodaemon=true

[program:nginx]
command=nginx -g "daemon off;"
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

[program:php-fpm]
command=php-fpm -F
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
    build:
      - PYTHON=python2 amazon-linux-extras install epel
      - yum -y install supervisor
run:
  command: supervisord
  network:
    port: 8080
    env: APP_PORT
```

**Example index.php**  

```
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
    print("Hello World!");
    print("<br>");
?>
</body>
</html>
```

#### Menjalankan platform PHP dengan NGINX menggunakan startup script
<a name="service-source-code-php.examples.end2end.nginx-startupscript"></a>

**Example Struktur file**  
+ `startup.sh`File dapat disimpan di mana saja di repositori. Pastikan bahwa `start` perintah menunjuk ke tempat `startup.sh` file disimpan. 
+ `index.php`Harus diinstal di `public` folder di bawah `root` direktori.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

**Example startup.sh**  

```
#!/bin/bash

set -o monitor

trap exit SIGCHLD

# Start nginx 
nginx -g 'daemon off;' &

# Start php-fpm
php-fpm -F &

wait
```

**catatan**  
Pastikan untuk menyimpan `startup.sh` file sebagai executable sebelum Anda mengkomitmennya ke repositori Git. Gunakan `chmod +x startup.sh` untuk mengatur izin eksekusi pada `startup.sh` file Anda. 
Jika Anda tidak menyimpan `startup.sh` file sebagai executable, masukkan `chmod +x startup.sh` sebagai `build` perintah dalam file Anda`apprunner.yaml`. 

**Example apprunner.yaml**  

```
version: 1.0
runtime: php81
build:
  commands:
    build:
      - echo example build command for PHP
run:
  command: ./startup.sh
  network:
    port: 8080
    env: APP_PORT
```

**Example index.php**  

```
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
    print("Hello World!");
    print("<br>");
?>
</body>
</html>
```

# Informasi rilis runtime PHP
<a name="service-source-code-php-releases"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **PHP 8.1** pada 31 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Topik ini mencantumkan detail lengkap untuk versi runtime PHP yang didukung App Runner.


**Versi runtime yang didukung — build App Runner asli**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-php-releases.html)

**catatan**  
App Runner menyediakan proses build yang direvisi untuk runtime utama tertentu yang telah dirilis baru-baru ini. Karena itu, Anda akan melihat referensi ke build *App Runner yang direvisi dan build* *App Runner asli* di bagian tertentu dari dokumen ini. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).

# Menggunakan platform Ruby
<a name="service-source-code-ruby"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **Ruby 3.1** pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Platform AWS App Runner Ruby menyediakan runtime terkelola. Setiap runtime memudahkan untuk membangun dan menjalankan container dengan aplikasi web berdasarkan versi Ruby. Saat Anda menggunakan runtime Ruby, App Runner dimulai dengan gambar runtime Ruby yang dikelola. Gambar ini didasarkan pada image [Amazon Linux Docker](https://hub.docker.com/_/amazonlinux) dan berisi paket runtime untuk versi Ruby dan beberapa alat. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

 Anda menentukan runtime untuk layanan App Runner saat [membuat layanan](manage-create.md) menggunakan konsol App Runner atau operasi API. [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan `runtime` kata kunci dalam [file konfigurasi App Runner](config-file.md) yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan runtime terkelola adalah*<language-name><major-version>*. 

Untuk nama dan versi runtime Ruby yang valid, lihat. [Informasi rilis runtime Ruby](service-source-code-ruby-releases.md)

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](config-file.md). 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.

Sintaks versi untuk runtime Ruby: `major[.minor[.patch]]`

Misalnya: `3.1.2`

Contoh berikut menunjukkan penguncian versi:
+ `3.1`— Kunci versi mayor dan minor. App Runner hanya memperbarui versi tambalan.
+ `3.1.2`— Kunci ke versi patch tertentu. App Runner tidak memperbarui versi runtime Anda.

**Topics**
+ [Konfigurasi runtime Ruby](#service-source-code-ruby.config)
+ [Contoh runtime Ruby](#service-source-code-ruby.examples)
+ [Informasi rilis runtime Ruby](service-source-code-ruby-releases.md)

## Konfigurasi runtime Ruby
<a name="service-source-code-ruby.config"></a>

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat [membuat](manage-create.md) atau [memperbarui](manage-configure.md) layanan App Runner. Anda dapat melakukan ini menggunakan salah satu metode berikut:
+ **Menggunakan konsol App Runner** — Tentukan perintah di bagian **Configure build** pada tab proses pembuatan atau konfigurasi.
+ **Menggunakan App Runner API** — Panggil operasi [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)atau [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Tentukan perintah menggunakan `BuildCommand` dan `StartCommand` anggota tipe [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html)data.
+ **Menggunakan [file konfigurasi](config-file.md)** — Tentukan satu atau beberapa perintah build hingga tiga fase build, dan satu perintah run yang berfungsi untuk memulai aplikasi Anda. Ada pengaturan konfigurasi opsional tambahan.

Menyediakan file konfigurasi adalah opsional. Saat membuat layanan App Runner menggunakan konsol atau API, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.

## Contoh runtime Ruby
<a name="service-source-code-ruby.examples"></a>

Contoh berikut menunjukkan file konfigurasi App Runner untuk membangun dan menjalankan layanan Ruby. 

### File konfigurasi Ruby minimal
<a name="service-source-code-ruby.examples.minimal"></a>

Contoh ini menunjukkan file konfigurasi minimal yang dapat Anda gunakan dengan runtime terkelola Ruby. Untuk asumsi yang dibuat oleh App Runner dengan file konfigurasi minimal, lihat. [Contoh file konfigurasi](config-file-examples.md#config-file-examples.managed)

**Example apprunner.yaml**  

```
version: 1.0
runtime: ruby31
build:
  commands:
    build:
      - bundle install
run:
  command: bundle exec rackup --host 0.0.0.0 -p 8080
```

### File konfigurasi Ruby yang diperluas
<a name="service-source-code-ruby.examples.extended"></a>

Contoh ini menunjukkan penggunaan semua kunci konfigurasi dengan runtime terkelola Ruby.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*3.1.2*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Ruby terbaru yang didukung, lihat. [Informasi rilis runtime Ruby](service-source-code-ruby-releases.md)

**Example apprunner.yaml**  

```
version: 1.0
runtime: ruby31
build:
  commands:
     pre-build:
      - scripts/prebuild.sh
    build:
      - bundle install
    post-build:
      - scripts/postbuild.sh
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 3.1.2
  command: bundle exec rackup --host 0.0.0.0 -p 4567
  network:
    port: 4567
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### Sumber aplikasi Ruby lengkap
<a name="service-source-code-ruby.examples.end2end"></a>

Contoh-contoh ini menunjukkan kode sumber untuk aplikasi Ruby lengkap yang dapat Anda gunakan ke layanan runtime Ruby.

**Example server.rb**  

```
# server.rb
require 'sinatra'

get '/' do    
  'Hello World!'
end
```

**Example config.ru**  

```
# config.ru

require './server'

run Sinatra::Application
```

**Example Gemfile**  

```
# Gemfile
source 'https://rubygems.org (https://rubygems.org/)'

gem 'sinatra'
gem 'puma'
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: ruby31
build:
  commands:
    build:
      - bundle install
run:
  command: bundle exec rackup --host 0.0.0.0 -p 4567
  network:
    port: 4567
    env: APP_PORT
```

# Informasi rilis runtime Ruby
<a name="service-source-code-ruby-releases"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **Ruby 3.1** pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Topik ini mencantumkan detail lengkap untuk versi runtime Ruby yang didukung App Runner.


**Versi runtime yang didukung — build App Runner asli**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-ruby-releases.html)

**catatan**  
App Runner menyediakan proses build yang direvisi untuk runtime utama tertentu yang telah dirilis baru-baru ini. Karena itu, Anda akan melihat referensi ke build *App Runner yang direvisi dan build* *App Runner asli* di bagian tertentu dari dokumen ini. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).

# Menggunakan platform Go
<a name="service-source-code-go1"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **Go 1.18** pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Platform AWS App Runner Go menyediakan runtime terkelola. Setiap runtime memudahkan untuk membangun dan menjalankan container dengan aplikasi web berdasarkan versi Go. Saat Anda menggunakan runtime Go, App Runner dimulai dengan image runtime Go yang dikelola. Gambar ini didasarkan pada image [Amazon Linux Docker](https://hub.docker.com/_/amazonlinux) dan berisi paket runtime untuk versi Go dan beberapa alat. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

 Anda menentukan runtime untuk layanan App Runner saat [membuat layanan](manage-create.md) menggunakan konsol App Runner atau operasi API. [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan `runtime` kata kunci dalam [file konfigurasi App Runner](config-file.md) yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan runtime terkelola adalah*<language-name><major-version>*. 

Untuk nama dan versi runtime Go yang valid, lihat[Informasi rilis Go runtime](service-source-code-go-releases.md).

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](config-file.md). Anda dapat mengunci ke tingkat versi apa pun, termasuk versi mayor atau minor. App Runner hanya membuat pembaruan tingkat rendah untuk runtime layanan Anda.

Sintaks versi untuk runtime Go: `major[.minor[.patch]]`

Misalnya: `1.18.7`

Contoh berikut menunjukkan penguncian versi:
+ `1.18`— Kunci versi mayor dan minor. App Runner hanya memperbarui versi tambalan.
+ `1.18.7`— Kunci ke versi patch tertentu. App Runner tidak memperbarui versi runtime Anda.

**Topics**
+ [Konfigurasi runtime Go](#service-source-code-go1.config)
+ [Contoh runtime Go](#service-source-code-go1.examples)
+ [Informasi rilis Go runtime](service-source-code-go-releases.md)

## Konfigurasi runtime Go
<a name="service-source-code-go1.config"></a>

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat [membuat](manage-create.md) atau [memperbarui](manage-configure.md) layanan App Runner. Anda dapat melakukan ini menggunakan salah satu metode berikut:
+ **Menggunakan konsol App Runner** — Tentukan perintah di bagian **Configure build** pada tab proses pembuatan atau konfigurasi.
+ **Menggunakan App Runner API** — Panggil operasi [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)atau [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Tentukan perintah menggunakan `BuildCommand` dan `StartCommand` anggota tipe [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html)data.
+ **Menggunakan [file konfigurasi](config-file.md)** — Tentukan satu atau beberapa perintah build hingga tiga fase build, dan satu perintah run yang berfungsi untuk memulai aplikasi Anda. Ada pengaturan konfigurasi opsional tambahan.

Menyediakan file konfigurasi adalah opsional. Saat membuat layanan App Runner menggunakan konsol atau API, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.

## Contoh runtime Go
<a name="service-source-code-go1.examples"></a>

Contoh berikut menunjukkan file konfigurasi App Runner untuk membangun dan menjalankan layanan Go. 

### File konfigurasi Go minimal
<a name="service-source-code-go1.examples.minimal"></a>

Contoh ini menunjukkan file konfigurasi minimal yang dapat Anda gunakan dengan runtime yang dikelola Go. Untuk asumsi yang dibuat oleh App Runner dengan file konfigurasi minimal, lihat. [Contoh file konfigurasi](config-file-examples.md#config-file-examples.managed)

**Example apprunner.yaml**  

```
version: 1.0
runtime: go1
build:
  commands:
    build:
      - go build main.go
run:
  command: ./main
```

### File konfigurasi Go yang diperluas
<a name="service-source-code-go1.examples.extended"></a>

Contoh ini menunjukkan penggunaan semua kunci konfigurasi dengan runtime yang dikelola Go.

**catatan**  
Versi runtime yang digunakan dalam contoh ini adalah*1.18.7*. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Go terbaru yang didukung, lihat[Informasi rilis Go runtime](service-source-code-go-releases.md).

**Example apprunner.yaml**  

```
version: 1.0
runtime: go1
build:
  commands:
     pre-build:
      - scripts/prebuild.sh
    build:
      - go build main.go
    post-build:
      - scripts/postbuild.sh
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 1.18.7
  command: ./main
  network:
    port: 3000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### Sumber aplikasi Go lengkap
<a name="service-source-code-go1.examples.end2end"></a>

Contoh-contoh ini menunjukkan kode sumber untuk aplikasi Go lengkap yang dapat Anda terapkan ke layanan runtime Go.

**Example main.go**  

```
package main
import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprint(w, "<h1>Welcome to App Runner</h1>")
    })
    fmt.Println("Starting the server on :3000...")
    http.ListenAndServe(":3000", nil)
}
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: go1
build:
  commands:
    build:
      - go build main.go
run:
  command: ./main
  network:
    port: 3000
    env: APP_PORT
```

# Informasi rilis Go runtime
<a name="service-source-code-go-releases"></a>

**penting**  
App Runner akan mengakhiri dukungan untuk **Go 1.18** pada 1 Desember 2025. Untuk rekomendasi dan informasi lebih lanjut, lihat[Akhir dukungan untuk versi runtime terkelola](service-source-code.md#service-source-code.managed-platforms.eos).

Topik ini mencantumkan detail lengkap untuk versi runtime Go yang didukung App Runner.


**Versi runtime yang didukung — build App Runner asli**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/apprunner/latest/dg/service-source-code-go-releases.html)

**catatan**  
App Runner menyediakan proses build yang direvisi untuk runtime utama tertentu yang telah dirilis baru-baru ini. Karena itu, Anda akan melihat referensi ke build *App Runner yang direvisi dan build* *App Runner asli* di bagian tertentu dari dokumen ini. Untuk informasi selengkapnya, lihat [Versi runtime terkelola dan build App Runner](service-source-code.md#service-source-code.build-detail).