Menggunakan platform Python Elastic Beanstalk - AWS Elastic Beanstalk

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

Menggunakan platform Python Elastic Beanstalk

Topik ini menjelaskan cara mengonfigurasi, membangun, dan menjalankan aplikasi Python Anda di Elastic Beanstalk.

AWS Elastic Beanstalk mendukung sejumlah cabang platform untuk berbagai versi bahasa pemrograman Python. Lihat Python di AWS Elastic Beanstalk Dokumen platform untuk daftar lengkap.

Aplikasi web Python dapat berjalan di belakang server proxy dengan. WSGI Elastic Beanstalk menyediakan Gunicorn sebagai server default. WSGI

Anda dapat menambahkan Procfile ke bundel sumber Anda untuk menentukan dan mengkonfigurasi WSGI server untuk aplikasi Anda. Untuk detailnya, lihat Mengkonfigurasi WSGI server dengan Procfile pada Elastic Beanstalk.

Anda dapat menggunakan file Pipfile dan Pipfile.lock yang dibuat oleh Pipenv untuk menentukan dependensi paket Python dan persyaratan lainnya. Untuk detail tentang menentukan dependensi, lihat Menentukan dependensi menggunakan file persyaratan pada Elastic Beanstalk.

Elastic Beanstalk menyediakan opsi konfigurasi yang dapat Anda gunakan untuk menyesuaikan perangkat lunak yang berjalan EC2 pada instance di lingkungan Elastic Beanstalk Anda. Anda dapat mengonfigurasi variabel lingkungan yang diperlukan aplikasi Anda, mengaktifkan rotasi log ke Amazon S3, dan memetakan folder dalam sumber aplikasi Anda yang berisi file statis ke jalur yang disajikan server proksi.

Opsi konfigurasi tersedia di konsol Elastic Beanstalk untuk memodifikasi konfigurasi dari lingkungan yang sedang berjalan. Agar Anda tidak kehilangan konfigurasi lingkungan ketika mengakhirinya, Anda dapat menggunakan konfigurasi tersimpan untuk menyimpan pengaturan dan kemudian menerapkannya ke lingkungan lain.

Untuk menyimpan pengaturan di kode sumber, Anda dapat menyertakan file konfigurasi. Pengaturan di file konfigurasi diterapkan setiap kali Anda membuat lingkungan atau men-deploy aplikasi Anda. Anda juga dapat menggunakan file konfigurasi untuk menginstal paket, menjalankan penulisan, dan melakukan operasi penyesuaian instans lainnya selama deployment.

Pengaturan yang diterapkan di konsol Elastic Beanstalk mengganti pengaturan yang sama di file konfigurasi, jika ada. Hal tersebut memungkinkan Anda memiliki pengaturan default di file konfigurasi, dan mengganti keduanya dengan pengaturan khusus lingkungan di konsol tersebut. Untuk informasi lebih lanjut tentang yang diutamakan, dan metode lain untuk mengubah pengaturan, lihat Opsi konfigurasi.

Untuk paket Python tersedia dari pip, Anda dapat menyertakan file persyaratan di akar kode sumber aplikasi Anda. Elastic Beanstalk menginstal paket dependensi yang ditentukan dalam file persyaratan selama deployment. Untuk detail selengkapnya, lihat Menentukan dependensi menggunakan file persyaratan pada Elastic Beanstalk.

Untuk detail tentang berbagai cara memperluas platform berbasis Linux Elastic Beanstalk, lihat Memperluas platform Linux Elastic Beanstalk.

Mengonfigurasi lingkungan Python Anda

Pengaturan platform Python memungkinkan Anda menyempurnakan perilaku instans Amazon Anda. EC2 Anda dapat mengedit konfigurasi instans Amazon lingkungan Elastic Beanstalk menggunakan konsol EC2 Elastic Beanstalk.

Gunakan konsol Elastic Beanstalk untuk mengonfigurasi pengaturan proses Python, aktifkan AWS X-Ray, aktifkan rotasi log ke Amazon S3, dan konfigurasikan variabel yang dapat dibaca aplikasi Anda dari lingkungan.

Untuk mengonfigurasi lingkungan Python Anda di konsol Elastic Beanstalk
  1. Buka konsol Elastic Beanstalk, dan di daftar Wilayah, pilih Wilayah AWS.

  2. Di panel navigasi, pilih Lingkungan, dan kemudian pilih nama lingkungan Anda dari daftar.

    catatan

    Jika Anda memiliki banyak lingkungan, gunakan bilah pencarian untuk memfilter daftar lingkungan.

  3. Di panel navigasi, pilih Konfigurasi.

  4. Dalam kategori konfigurasi Pembaruan, pemantauan, dan pencatatan, pilih Edit.

Pengaturan Python

  • Server proksi – Server proksi yang akan digunakan pada instans lingkungan Anda. Secara default, nginx digunakan.

  • WSGIPath — Nama atau path ke file aplikasi utama Anda. Misalnya, application.py, atau django/wsgi.py.

  • NumProcesses— Jumlah proses yang dijalankan pada setiap instance aplikasi.

  • NumThreads— Jumlah thread yang akan dijalankan di setiap proses.

AWS X-Ray pengaturan

Opsi log

Bagian Opsi Log memiliki dua pengaturan:

  • Profil instans– Menentukan profil instans yang memiliki izin untuk mengakses bucket Amazon S3 yang terkait dengan aplikasi Anda.

  • Aktifkan rotasi file log ke Amazon S3 — Menentukan apakah file log untuk EC2 instans Amazon aplikasi Anda disalin ke bucket Amazon S3 yang terkait dengan aplikasi Anda.

File statis

Untuk meningkatkan kinerja, Anda dapat menggunakan bagian File statis untuk mengkonfigurasi server proxy untuk menyajikan file statis (misalnya, HTML atau gambar) dari satu set direktori di dalam aplikasi web Anda. Untuk setiap direktori, Anda mengatur jalur virtual ke pemetaan direktori. Saat server proksi menerima permintaan untuk file di jalur yang ditentukan, server langsung menyajikan file daripada merutekan permintaan ke aplikasi Anda.

Untuk detail tentang mengonfigurasi file statis menggunakan file konfigurasi atau konsol Elastic Beanstalk, lihat. Menyajikan file statis

Secara default, server proksi di lingkungan Python menyajikan file apa pun dalam folder bernama static di jalur /static. Misalnya, jika sumber aplikasi Anda berisi file bernama logo.png dalam folder bernama static, server proksi menyajikannya untuk pengguna di subdomain.elasticbeanstalk.com/static/logo.png. Anda dapat mengonfigurasi pemetaan tambahan seperti yang dijelaskan di bagian ini.

Properti lingkungan

Anda dapat menggunakan properti lingkungan untuk memberikan informasi ke aplikasi Anda dan mengonfigurasi variabel lingkungan. Misalnya, Anda dapat membuat properti lingkungan bernama CONNECTION_STRING yang menentukan string koneksi yang dapat digunakan aplikasi Anda agar terhubung ke basis data.

Di dalam lingkungan Python yang berjalan di Elastic Beanstalk, nilai-nilai ini dapat diakses menggunakan kamus os.environ Python. Untuk informasi lebih lanjut, lihat http://docs.python.org/library/os.html.

Anda dapat menggunakan kode yang terlihat mirip dengan yang berikut untuk mengakses kunci dan parameter:

import os endpoint = os.environ['API_ENDPOINT']

Properti lingkungan juga dapat memberikan informasi ke kerangka kerja. Misalnya, Anda dapat membuat properti bernama DJANGO_SETTINGS_MODULE untuk mengonfigurasi Django agar menggunakan modul pengaturan khusus. Bergantung pada lingkungan, nilai bisa saja development.settings, production.settings, dll.

Lihat Properti lingkungan dan pengaturan perangkat lunak lainnya untuk informasi selengkapnya.

Namespace konfigurasi Python

Anda dapat menggunakan file konfigurasi untuk mengatur opsi konfigurasi dan melakukan tugas-tugas konfigurasi instans lain selama deployment. Opsi konfigurasi dapat berupa platform khusus atau berlaku untuk semua platform di layanan Elastic Beanstalk secara keseluruhan. Opsi konfigurasi diatur ke dalam ruang nama.

Platform Python mendefinisikan opsi dalam namespace aws:elasticbeanstalk:environment:proxy, aws:elasticbeanstalk:environment:proxy:staticfiles, dan aws:elasticbeanstalk:container:python.

File konfigurasi contoh berikut menentukan pengaturan opsi konfigurasi untuk membuat properti lingkungan bernama DJANGO_SETTINGS_MODULE, memilih server proksi Apache, menentukan dua opsi file statis yang memetakan direktori bernama statichtml ke jalur /html dan sebuah direktori bernama staticimages ke jalur /images, dan menentukan pengaturan tambahan di namespace aws:elasticbeanstalk:container:python. Namespace ini berisi opsi yang memungkinkan Anda menentukan lokasi WSGI skrip dalam kode sumber Anda, dan jumlah utas dan proses yang akan dijalankan. WSGI

option_settings: aws:elasticbeanstalk:application:environment: DJANGO_SETTINGS_MODULE: production.settings aws:elasticbeanstalk:environment:proxy: ProxyServer: apache aws:elasticbeanstalk:environment:proxy:staticfiles: /html: statichtml /images: staticimages aws:elasticbeanstalk:container:python: WSGIPath: ebdjango.wsgi:application NumProcesses: 3 NumThreads: 20
Catatan
  • Jika Anda menggunakan versi platform Amazon Linux AMI Python (sebelum Amazon Linux 2), ganti nilainya dengan. WSGIPath ebdjango/wsgi.py Nilai dalam contoh berfungsi dengan WSGI server Gunicorn, yang tidak didukung pada versi AMI platform Amazon Linux.

  • Selain itu, versi platform yang lebih lama ini menggunakan namespace yang berbeda dalam mengonfigurasi file statis—aws:elasticbeanstalk:container:python:staticfiles. Platform tersebut memiliki nama opsi dan makna yang sama dengan namespace file statis standar.

File konfigurasi juga mendukung beberapa kunci untuk memodifikasi perangkat lunak lebih lanjut pada instans lingkungan Anda. Contoh ini menggunakan kunci paket untuk menginstal Memcached dengan yum dan perintah kontainer untuk menjalankan perintah yang mengonfigurasi server selama deployment:

packages: yum: libmemcached-devel: '0.31' container_commands: collectstatic: command: "django-admin.py collectstatic --noinput" 01syncdb: command: "django-admin.py syncdb --noinput" leader_only: true 02migrate: command: "django-admin.py migrate" leader_only: true 03wsgipass: command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf' 99customize: command: "scripts/customize.sh"

Elastic Beanstalk memberikan banyak opsi konfigurasi untuk menyesuaikan lingkungan Anda. Selain file konfigurasi, Anda juga dapat mengatur opsi konfigurasi menggunakan konsol, konfigurasi tersimpan, EBCLI, atau AWS CLI. Lihat Opsi konfigurasi untuk informasi lebih lanjut.