Menggunakan platform Python - AWS App Runner

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

Menggunakan platform Python

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 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 menggunakan konsol App Runner atau operasi. CreateServiceAPI Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan runtime kata kunci dalam file konfigurasi App Runner yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan dari runtime terkelola adalah <language-name><major-version>.

Untuk nama dan versi runtime Python yang valid, lihat. Informasi rilis runtime Python

App Runner memperbarui runtime untuk layanan Anda ke versi terbaru pada setiap penerapan atau pembaruan layanan. Jika aplikasi Anda memerlukan versi tertentu dari runtime terkelola, Anda dapat menentukannya menggunakan runtime-version kata kunci dalam file konfigurasi App Runner. Anda dapat mengunci ke tingkat versi apa pun, termasuk versi mayor atau minor. App Runner hanya membuat pembaruan tingkat rendah untuk 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.

Konfigurasi runtime Python

Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat membuat atau memperbarui 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 CreateServiceatau UpdateServiceAPIoperasi. Tentukan perintah menggunakan BuildCommand dan StartCommand anggota tipe CodeConfigurationValuesdata.

  • Menggunakan file konfigurasi — 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 layananAPI, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.

Callout untuk versi runtime tertentu

catatan

App Runner sekarang menjalankan proses build yang diperbarui untuk aplikasi berdasarkan versi runtime berikut: Python 3.11 dan Node.js 18. Jika aplikasi Anda berjalan pada salah satu versi runtime ini, lihat Versi runtime terkelola dan build App Runner 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)

Gunakan pengaturan berikut di apprunner.yaml untuk runtime Python 3.11 yang dikelola.

  • Atur runtime kunci di bagian Atas ke python311

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

    contoh
    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 nanti dalam topik ini.

Contoh runtime Python

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 and 3.11. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Python terbaru yang didukung, lihat. Informasi rilis runtime Python

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

Python 3.11 menggunakan perintah danpip3. python3 Untuk informasi selengkapnya, lihat contoh file konfigurasi yang diperluas untuk Python 3.11 nanti dalam topik ini.

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

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

Python 3.11 menggunakan perintah danpip3. python3 Untuk informasi selengkapnya, lihat contoh file konfigurasi yang diperluas untuk Python 3.11 nanti dalam topik ini.

contoh 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"

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

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

contoh 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"

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

contoh requirements.txt
pyramid==2.0
contoh 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()
contoh apprunner.yaml
version: 1.0 runtime: python3 build: commands: build: - pip install -r requirements.txt run: command: python server.py