Mengonfigurasi lingkungan lokal Anda untuk menyebarkan aplikasi web Python di Azure

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

Aplikasi web Python yang dikembangkan secara lokal dapat disebarkan 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 Visual Studio Code, dengan Azure CLI, dari repositori Git lokal, atau dengan 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, kami sarankan Anda meninjau menyiapkan lingkungan dev Anda untuk panduan tentang menyiapkan lingkungan dev Anda untuk Python dan Azure. Di bawah ini, kita akan membahas penyiapan dan konfigurasi khusus untuk pengembangan aplikasi web Python.

Setelah Anda mendapatkan penyiapan lingkungan lokal untuk pengembangan aplikasi web Python, Anda akan siap untuk mengatasi artikel ini:

Bekerja dengan Visual Studio Code

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

Tip

Pastikan Anda memiliki ekstensi Python yang terinstal. Untuk gambaran umum bekerja dengan Python di VISUAL Code, lihat Memulai Python di VS Code.

Di Visual Studio Code, Anda bekerja dengan sumber daya Azure melalui ekstensi Visual Studio Code. Anda dapat menginstal ekstensi dari Tampilan Ekstensi atau kombinasi tombol Ctrl+Shift+X. Untuk aplikasi web Python, Anda mungkin akan 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 dalam kontainer di Azure App Service menggunakan Web Apps for Containers.

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

  • Ada ekstensi lain seperti ekstensi Azure Storage, Azure Databases, dan 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 biasa dan dengan dukungan kata kunci yang kaya 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 kemungkinan tindakan yang dapat Anda lakukan pada sumber daya Azure. Cuplikan layar di bawah ini menunjukkan beberapa tindakan untuk App Service.

A screenshot of the Visual Studio Code command palette for App Service.

Bekerja dengan Kontainer Dev di Visual Studio Code

Pengembang Python 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, ekstensi Kontainer Dev Visual Studio Code (berdasarkan spesifikasi Kontainer Dev terbuka) 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 mengonfigurasi semua bagian proyek yang mungkin tinggal di luar lingkungan Python dasar.

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 di Azure berfokus pada penggunaan Visual Studio Code, Visual Studio 2022 adalah opsi yang bagus jika Anda sudah menginstalnya, Anda nyaman menggunakannya, dan menggunakannya untuk proyek .NET atau C++.

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

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

  • Untuk alur kerja umum menggunakan Python untuk pengembangan web, lihat Mulai Cepat: Membuat aplikasi web Python pertama Anda menggunakan Visual Studio. Artikel ini berguna untuk memahami cara membangun 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 banyak dokumentasi di sini secara khusus menyebutkan .NET, alat untuk mengelola sumber daya Azure dan menyebarkan ke Azure berfungsi sama terlepas dari bahasa pemrograman.

  • Saat 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 ID Lain

Jika Anda bekerja di IDE lain yang tidak memiliki dukungan eksplisit untuk Azure, maka Anda dapat menggunakan Azure CLI untuk mengelola sumber daya Azure. Pada cuplikan layar di bawah ini, aplikasi web Flask sederhana terbuka di IDE PyCharm . Aplikasi web dapat disebarkan ke Azure App Service menggunakan az webapp up perintah . 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 di komputer Anda dan dapat diakses dalam kedua kasus.

A screenshot of the PyCharm IDE with an Azure CLI command deploying a web app.

Perintah Azure CLI

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

Perintah Deskripsi
az webapp Mengelola aplikasi web. Menyertakan sub perintah yang dibuat untuk membuat aplikasi web dan hingga membuat dan menyebarkan dari ruang kerja lokal
aplikasi kontainer az Mengelola Azure Container Apps.
az staticwebapp Mengelola Azure Static Web Apps.
az group Mengelola grup sumber daya dan penyebaran templat. Gunakan pembuatan sub-perintah ke grup sumber daya untuk memasukkan sumber daya Azure Anda.
az appservice Mengelola paket App Service.
az config Konfigurasi Azure CLI terkelola. 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 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 Mulai Cepat: Menyebarkan aplikasi web Python (Django atau Flask) ke Azure App Service.

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

Paket kunci Azure SDK

Di aplikasi web Python, Anda dapat merujuk secara terprogram ke layanan Azure menggunakan Azure SDK untuk Python. SDK ini dibahas secara ekstensif di bagian Menggunakan pustaka Azure (SDK) untuk Python. Di bagian ini, kami akan secara singkat menyebutkan beberapa paket utama SDK yang akan Anda gunakan dalam pengembangan web. Dan, kami akan menampilkan contoh sekeliling praktik terbaik untuk mengautentikasi kode Anda dengan sumber daya Azure.

Di bawah ini adalah beberapa paket yang umum digunakan dalam pengembangan aplikasi web. Anda dapat menginstal paket di lingkungan virtual Anda secara langsung dengan pip. Atau masukkan nama indeks paket Python (Pypi) dalam file requirements.txt Anda.

Dokumen SDK Instal Indeks paket Python
Identitas Azure pip install azure-identity azure-identity
Blob Azure Storage pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Rahasia Azure Key Vault pip install azure-keyvault-secrets azure-keyvault-secrets

Paket identitas azure memungkinkan aplikasi web Anda untuk mengautentikasi dengan ID Microsoft Entra. Untuk autentikasi dalam kode aplikasi web Anda, disarankan agar Anda menggunakan DefaultAzureCredential dalam azure-identity paket. Berikut adalah contoh 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 akan mencari di lokasi yang telah ditentukan sebelumnya untuk informasi akun, misalnya, dalam variabel lingkungan atau dari rincian masuk Azure CLI. Untuk informasi mendalam tentang DefaultAzureCredential logika, lihat Mengautentikasi 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 templat halaman, manajemen sesi, akses database, dan akses mudah ke objek permintaan dan respons HTTP. Kerangka kerja memungkinkan Anda menghindari kebutuhan Anda untuk menemukan kembali roda untuk fungsionalitas umum.

Tiga kerangka kerja web Python umum adalah Django, Flask, atau FastAPI. Kerangka kerja web ini dan lainnya dapat digunakan dengan Azure.

Di bawah ini adalah contoh bagaimana Anda dapat memulai dengan cepat dengan kerangka kerja ini secara lokal. Menjalankan perintah ini, Anda akan berakhir dengan aplikasi, meskipun yang sederhana yang dapat disebarkan ke Azure. Jalankan perintah ini di dalam lingkungan virtual.

Langkah 1: Unduh kerangka kerja dengan pip.

pip install Django

Langkah 2: Buat aplikasi hello world.

Buat proyek sampel menggunakan perintah django-admin startproject . Proyek ini menyertakan file manage.py yang merupakan 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 lalu Anda dapat menyebarkan aplikasi web ke Azure atau menampungnya dengan Docker lalu menyebarkannya.

Langkah berikutnya