Bagikan melalui


Mengonfigurasi lingkungan lokal Anda untuk menyebarkan aplikasi web Python di Azure

Artikel ini memperlihatkan kepada Anda cara menyiapkan lingkungan lokal untuk mengembangkan aplikasi Python web dan menyebarkannya ke Azure. Aplikasi web Anda dapat murni Python atau menggunakan salah satu kerangka kerja web berbasis Python umum seperti Django, Flask, atau FastAPI.

Anda dapat menyebarkan aplikasi web Python yang dikembangkan secara lokal ke layanan seperti Azure App Service, Azure Container Apps, atau Azure Static Web Apps. Ada banyak opsi untuk penyebaran. Misalnya, untuk penyebaran App Service, Anda dapat memilih untuk menyebarkan dari kode, kontainer Docker, atau Static Web App. Jika Anda menyebarkan dari kode, Anda dapat menyebarkan dengan menggunakan Visual Studio Code, Azure CLI, repositori Git lokal, atau tindakan GitHub. Jika Anda menyebarkan dalam Kontainer Docker, Anda dapat melakukannya dari Azure Container Registry, Docker Hub, atau registri privat apa pun.

Sebelum melanjutkan artikel ini, tinjau Siapkan lingkungan dev Anda untuk panduan tentang menyiapkan lingkungan dev Anda untuk Python dan Azure. Bagian berikut membahas penyiapan dan konfigurasi khusus untuk Python pengembangan aplikasi web.

Setelah menyiapkan lingkungan lokal untuk pengembangan aplikasi web Python, Anda siap untuk mengatasi artikel ini:

Bekerja dengan Visual Studio Code

lingkungan pengembangan terintegrasi (IDE) Visual Studio Code adalah cara mudah untuk mengembangkan aplikasi web Python dan bekerja dengan sumber daya Azure yang digunakan aplikasi web.

Tips

Pastikan Anda menginstal ekstensi Python. Untuk gambaran umum bekerja dengan Python di Visual Studio Code, lihat Memulai dengan Python di VISUAL Code.

Di Visual Studio Code, Anda bekerja dengan sumber daya Azure melalui ekstensi VS Code. Anda dapat menginstal ekstensi dari tampilan Ekstensi atau dengan menggunakan kombinasi kunci Ctrl+Shift+X. Untuk aplikasi web Python, Anda mungkin bekerja dengan satu atau beberapa ekstensi berikut:

  • Ekstensi Azure App Service memungkinkan Anda berinteraksi dengan Azure App Service dari dalam Visual Studio Code. App Service menyediakan hosting yang dikelola sepenuhnya untuk aplikasi web termasuk situs web dan API web.

  • Ekstensi Azure Static Web Apps memungkinkan Anda membuat Azure Static Web Apps langsung dari VISUAL Code. Static Web Apps tanpa server dan pilihan yang baik untuk hosting konten statis.

  • Jika Anda berencana bekerja dengan kontainer, instal:

    • Ekstensi Docker untuk membangun dan bekerja dengan kontainer secara lokal. Misalnya, Anda dapat menjalankan aplikasi web Python kontainer di Azure App Service dengan menggunakan Web Apps untuk Kontainer.

    • Ekstensi Azure Container Apps untuk membuat dan menyebarkan aplikasi dalam kontainer langsung dari Visual Studio Code.

  • Ekstensi lain termasuk Azure Storage, Database Azure, dan ekstensi Azure Resources. Anda selalu dapat menambahkan ekstensi ini dan ekstensi lain sesuai kebutuhan.

Ekstensi di Visual Studio Code dapat diakses seperti yang Anda harapkan di antarmuka IDE yang khas. Anda dapat menggunakan dukungan kata kunci kaya dengan menggunakan palet perintah Visual Studio Code. Untuk mengakses palet perintah, gunakan kombinasi tombol Ctrl+Shift+P. Palet perintah adalah cara yang baik untuk melihat semua tindakan yang mungkin Anda lakukan pada sumber daya Azure. Cuplikan layar berikut menunjukkan beberapa tindakan untuk App Service.

 Cuplikan layar palet perintah Visual Studio Code untuk App Service.

Bekerja dengan Kontainer Dev di Visual Studio Code

Python pengembang sering mengandalkan lingkungan virtual untuk membuat lingkungan yang terisolasi dan mandiri untuk proyek tertentu. Lingkungan virtual memungkinkan pengembang mengelola dependensi, paket, dan versi Python secara terpisah untuk setiap proyek, menghindari konflik antara proyek yang berbeda yang mungkin memerlukan versi paket yang berbeda.

Meskipun ada opsi populer yang tersedia di Python untuk mengelola lingkungan seperti virtualenv atau venv, Visual Studio Code Dev Container (berdasarkan spesifikasi Kontainer Dev buka) memungkinkan Anda menggunakan kontainer Docker sebagai lingkungan kontainer dengan fitur lengkap. Ini memungkinkan pengembang untuk menentukan toolchain yang konsisten dan mudah direproduksi dengan semua alat, dependensi, dan ekstensi yang diperlukan yang telah dikonfigurasi sebelumnya. Ini berarti jika Anda memiliki persyaratan sistem, konfigurasi shell, atau menggunakan bahasa lain sepenuhnya, Anda dapat menggunakan Kontainer Dev untuk secara eksplisit mengonfigurasi semua bagian proyek Anda yang mungkin tinggal di luar lingkungan dasar Python.

Misalnya, pengembang dapat mengonfigurasi satu Kontainer Dev untuk menyertakan semua yang diperlukan untuk mengerjakan proyek, termasuk server database PostgreSQL bersama dengan database proyek dan data sampel, server Redis, Nginx, kode front-end, pustaka klien seperti React, dan sebagainya. Selain itu, kontainer akan berisi kode proyek, runtime Python, dan semua dependensi proyek Python dengan versi yang benar. Terakhir, kontainer dapat menentukan ekstensi Visual Studio Code yang akan diinstal sehingga seluruh tim memiliki alat yang sama yang tersedia. Jadi ketika pengembang baru bergabung dengan tim, seluruh lingkungan, termasuk alat, dependensi, dan data, siap untuk dikloning ke komputer lokal mereka, dan mereka dapat mulai bekerja segera.

Lihat Mengembangkan di dalam Kontainer.

Bekerja dengan Visual Studio 2022

Visual Studio 2022 adalah lingkungan pengembangan terintegrasi berfitur lengkap (IDE) dengan dukungan untuk pengembangan aplikasi Python dan banyak alat dan ekstensi bawaan untuk mengakses dan menyebarkan ke sumber daya Azure. Meskipun sebagian besar dokumentasi untuk membangun aplikasi web Python pada Azure berfokus pada penggunaan Visual Studio Code, Visual Studio 2022 adalah opsi yang bagus jika Anda sudah menginstalnya, Anda nyaman menggunakannya, dan Anda menggunakannya untuk proyek .NET atau C++.

  • Secara umum, lihat Visual Studio | Python dokumentasi untuk semua dokumentasi yang terkait dengan penggunaan Python pada Visual Studio 2022.

  • Untuk langkah-langkah penyiapan, lihat dukungan Install Python di Visual Studio yang memandu Anda melalui langkah-langkah menginstal beban kerja Python ke Visual Studio 2022.

  • Untuk alur kerja umum penggunaan Python untuk pengembangan web, lihat Quickstart: Membuat aplikasi web Python pertama Anda menggunakan Visual Studio. Artikel ini berguna untuk memahami cara membuat aplikasi web Python dari awal (tetapi tidak menyertakan penyebaran ke Azure).

  • Untuk menggunakan Visual Studio 2022 untuk mengelola sumber daya Azure dan menyebarkan ke Azure, lihat Pengembangan Azure dengan Visual Studio. Meskipun sebagian besar dokumentasi di sini secara khusus menyebutkan .NET, alat untuk mengelola sumber daya Azure dan menyebarkan ke Azure berfungsi sama terlepas dari bahasa pemrograman.

  • Ketika tidak ada alat bawaan yang tersedia di Visual Studio 2022 untuk tugas manajemen atau penyebaran Azure tertentu, Anda selalu dapat menggunakan perintah Azure CLI.

Bekerja dengan IDE Lain

Jika Anda bekerja di IDE lain yang tidak memiliki dukungan eksplisit untuk Azure, gunakan Azure CLI untuk mengelola sumber daya Azure. Dalam cuplikan layar berikut, aplikasi web Flask sederhana terbuka di IDE PyCharm . Anda dapat menyebarkan aplikasi web ke Azure App Service dengan menggunakan perintah az webapp up. Dalam cuplikan layar, perintah CLI berjalan dalam emulator terminal yang disematkan PyCharm. Jika IDE Anda tidak memiliki emulator yang disematkan, Anda dapat menggunakan terminal apa pun dan perintah yang sama. Azure CLI harus diinstal pada komputer Anda dan dapat diakses dalam kedua kasus.

Cuplikan layar IDE PyCharm dengan perintah Azure CLI menyebarkan aplikasi web.

perintah Azure CLI

Saat Anda bekerja secara lokal dengan aplikasi web dengan menggunakan perintah Azure CLI, Anda biasanya menggunakan perintah berikut:

Perintah Deskripsi
az webapp Mengelola aplikasi web. Menyertakan sub-perintah create dan up untuk membuat aplikasi web atau membuat dan menyebarkan dari ruang kerja lokal, masing-masing.
az aplikasi kontainer Mengelola Azure Container Apps.
az staticwebapp Mengelola Azure Static Web Apps.
grup az Mengelola grup sumber daya dan penyebaran templat. Gunakan sub-perintah buat untuk membuat grup sumber daya untuk memasukkan sumber daya Azure Anda.
az appservice Mengelola rencana App Service.
az config Mengelola konfigurasi Azure CLI. Untuk menyimpan penekanan tombol, Anda dapat menentukan lokasi default atau grup sumber daya yang digunakan perintah lain secara otomatis.

Berikut adalah contoh perintah Azure CLI untuk membuat aplikasi web dan sumber daya terkait, dan menyebarkannya ke Azure dalam satu perintah dengan menggunakan az webapp up. Jalankan perintah di direktori akar aplikasi web Anda.

az webapp up \
    --runtime PYTHON:3.9 \
    --sku B1 \
    --logs

Untuk informasi selengkapnya tentang contoh ini, lihat Quickstart: Menyebarkan aplikasi web Python (Django atau Flask) ke Azure App Service.

Perlu diingat bahwa untuk beberapa alur kerja Azure, Anda juga dapat menggunakan Azure CLI dari Azure Cloud Shell. Azure Cloud Shell adalah shell interaktif, diautentikasi, dan dapat diakses browser untuk mengelola sumber daya Azure.

Azure SDK paket utama

Di aplikasi web Python, Anda dapat merujuk secara terprogram ke layanan Azure dengan menggunakan Azure SDK untuk Python. Bagian Gunakan pustaka Azure (SDK) untuk Python membahas SDK ini secara ekstensif. Di bagian ini, Anda mempelajari tentang beberapa paket utama SDK yang Anda gunakan dalam pengembangan web. Anda juga melihat contoh yang mengikuti praktik terbaik untuk mengautentikasi kode Anda dengan sumber daya Azure.

Tabel berikut mencantumkan beberapa paket yang umum digunakan dalam pengembangan aplikasi web. Anda dapat menginstal paket di lingkungan virtual Anda secara langsung dengan menggunakan pip. Atau, masukkan nama indeks paket Python (PyPI) di file requirements.txt Anda.

Dokumen SDK Pasang indeks paket Python
Azure Identity pip install azure-identity azure-identity
Azure Storage Blobs pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Azure Key Vault Secrets pip install azure-keyvault-secrets azure-keyvault-secrets

Paket azure-identity memungkinkan aplikasi web Anda mengautentikasi dengan Microsoft Entra ID. Untuk autentikasi di kode aplikasi web Anda, gunakan DefaultAzureCredential dalam azure-identity paket. Contoh berikut menunjukkan cara mengakses Azure Storage. Polanya mirip untuk sumber daya Azure lainnya.

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient

azure_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
    account_url=account_url,
    credential=azure_credential)

DefaultAzureCredential terlihat di lokasi yang telah ditentukan sebelumnya untuk informasi akun, seperti variabel lingkungan atau rincian masuk Azure CLI. Untuk informasi mendalam mengenai logika DefaultAzureCredential, lihat Authenticate aplikasi Python ke layanan Azure dengan menggunakan Azure SDK untuk Python.

kerangka kerja web berbasis Python

Dalam pengembangan aplikasi web Python, Anda sering bekerja dengan kerangka kerja web berbasis Python. Kerangka kerja ini menyediakan fungsionalitas, seperti templat halaman, manajemen sesi, akses database, dan akses mudah ke objek permintaan dan respons HTTP. Kerangka kerja memungkinkan Anda menghindari melakukan pekerjaan yang sudah pernah dilakukan untuk fungsionalitas umum.

Tiga kerangka kerja web Python umum adalah Django, Flask, dan FastAPI. Anda dapat menggunakan ini dan kerangka kerja web lainnya dengan Azure.

Contoh berikut menunjukkan bagaimana Anda mungkin memulai dengan cepat dengan kerangka kerja ini secara lokal. Ketika Anda menjalankan perintah ini, Anda akan memiliki aplikasi sederhana yang dapat Anda sebarkan ke Azure. Jalankan perintah ini di dalam lingkungan virtual.

Langkah 1: Unduh kerangka kerja dengan menggunakan pip.

pip install Django

Langkah 2: Buat aplikasi hello world.

Buat proyek sampel dengan menggunakan perintah django-admin startproject . Proyek ini mencakup file manage.py yang berfungsi sebagai titik masuk untuk menjalankan aplikasi.

django-admin startproject hello_world

Langkah 3: Jalankan kode secara lokal.

Django menggunakan WSGI untuk menjalankan aplikasi.

python hello_world\manage.py runserver

Langkah 4: Telusuri aplikasi halo dunia.

http://127.0.0.1:8000/

Pada titik ini, tambahkan file requirements.txt . Kemudian, sebarkan aplikasi web untuk Azure atau membuat kontainer dengan menggunakan Docker dan menyebarkannya.

Langkah berikutnya