Share via


Azure'da Python web uygulamalarını dağıtmak için yerel ortamınızı yapılandırma

Bu makale, Python web uygulamaları geliştirmek ve bunları Azure'a dağıtmak için yerel ortamınızı ayarlama işleminde size yol gösterir. Web uygulamanız saf Python olabilir veya Django, Flask veya FastAPI gibi yaygın Python tabanlı web çerçevelerinden birini kullanabilir.

Yerel olarak geliştirilen Python web uygulamaları Azure Uygulaması Hizmeti, Azure Container Apps veya Azure Static Web Apps gibi hizmetlere dağıtılabilir. Dağıtım için birçok seçenek vardır. Örneğin App Service dağıtımı için koddan, Docker kapsayıcısından veya Statik Web Uygulamasından dağıtmayı seçebilirsiniz. Koddan dağıtım yapıyorsanız Visual Studio Code ile, Azure CLI ile, yerel git deposundan veya GitHub eylemleriyle dağıtım yapabilirsiniz. Docker Kapsayıcısı'nda dağıtım yapıyorsanız, bunu Azure Container Registry, Docker Hub veya herhangi bir özel kayıt defterinden yapabilirsiniz.

Bu makaleye devam etmeden önce, Python ve Azure için geliştirme ortamınızı ayarlama yönergeleri için Geliştirme ortamınızı ayarlama makalesini gözden geçirmenizi öneririz. Aşağıda Python web uygulaması geliştirmeye özgü kurulum ve yapılandırma konularını ele alacağız.

Python web uygulaması geliştirme için yerel ortam kurulumunuzu aldıktan sonra şu makaleleri işlemeye hazır olursunuz:

Visual Studio Code ile çalışma

Visual Studio Code tümleşik geliştirme ortamı (IDE), Python web uygulamaları geliştirmenin ve web uygulamalarının kullandığı Azure kaynaklarıyla çalışmanın kolay bir yoludur.

Bahşiş

Python uzantısının yüklü olduğundan emin olun. VS Code'da Python ile çalışmaya genel bakış için bkz . VS Code'da Python ile Çalışmaya Başlama.

VS Code'da, VS Code uzantıları aracılığıyla Azure kaynaklarıyla çalışırsınız. Uzantıları Uzantılar Görünümü'nden veya Ctrl+Shift+X tuş bileşiminden yükleyebilirsiniz. Python web uygulamaları için büyük olasılıkla aşağıdaki uzantılardan biriyle veya daha fazlasıyla çalışacaksınız:

Visual Studio Code'daki uzantılara tipik bir IDE arabiriminde ve VS Code komut paleti kullanılarak zengin anahtar sözcük desteğiyle beklediğiniz gibi erişilebilir. Komut paletine erişmek için Ctrl+Shift+P tuş bileşimini kullanın. Komut paleti, bir Azure kaynağında gerçekleştirebileceğiniz tüm olası eylemleri görmenin iyi bir yoludur. Aşağıdaki ekran görüntüsünde App Service'e yönelik bazı eylemler gösterilmektedir.

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

Visual Studio Code'da Geliştirme Kapsayıcılarıyla Çalışma

Python geliştiricileri genellikle belirli bir proje için yalıtılmış ve bağımsız bir ortam oluşturmak için sanal ortamlara güvenir. Sanal ortamlar, geliştiricilerin her proje için bağımlılıkları, paketleri ve Python sürümlerini ayrı ayrı yönetmesine olanak tanır ve farklı paket sürümleri gerektirebilecek farklı projeler arasındaki çakışmaları önler.

Veyavenv gibi virtualenv ortamları yönetmek için Python'da popüler seçenekler olsa da, Visual Studio Code Geliştirme Kapsayıcısı uzantısı (açık Geliştirme Kapsayıcısı belirtimine göre) docker kapsayıcısını tam özellikli kapsayıcılı ortam olarak kullanmanıza olanak tanır. Geliştiricilerin önceden yapılandırılmış tüm gerekli araçlar, bağımlılıklar ve uzantılarla tutarlı ve kolayca yeniden üretilebilir bir araç zinciri tanımlamasını sağlar. Başka bir deyişle, sistem gereksinimleriniz, kabuk yapılandırmalarınız varsa veya diğer dilleri tamamen kullanıyorsanız, projenizin temel python ortamının dışında yaşayabilecek tüm bölümlerini açıkça yapılandırmak için Geliştirme Kapsayıcısı kullanabilirsiniz.

Örneğin bir geliştirici, proje veritabanı ve örnek verilerle birlikte PostgreSQL veritabanı sunucusu, Redis sunucusu, Nginx, ön uç kodu, React gibi istemci kitaplıkları gibi proje üzerinde çalışmak için gereken her şeyi içerecek şekilde tek bir Geliştirme Kapsayıcısı yapılandırabilir. Ayrıca kapsayıcı proje kodunu, Python çalışma zamanını ve doğru sürümlere sahip tüm Python proje bağımlılıklarını içerir. Son olarak kapsayıcı, tüm ekibin aynı araçlara sahip olması için yüklenecek Visual Studio Code uzantılarını belirtebilir. Bu nedenle ekibe yeni bir geliştirici katıldığında, araçlar, bağımlılıklar ve veriler dahil olmak üzere tüm ortam yerel makinelerine kopyalanmaya hazır olur ve hemen çalışmaya başlayabilir.

Bkz . Kapsayıcı içinde geliştirme.

Visual Studio 2022 ile çalışma

Visual Studio 2022 , Python uygulama geliştirme desteği ve Azure kaynaklarına erişip azure kaynaklarına dağıtmak için birçok yerleşik araç ve uzantıya sahip tam özellikli bir tümleşik geliştirme ortamıdır (IDE). Azure'da Python web uygulamaları oluşturmaya yönelik belgelerin çoğu Visual Studio Code'u kullanmaya odaklansa da, Visual Studio 2022 zaten yüklediyseniz, bunu rahatça kullanıyorsanız ve .NET veya C++ projeleri için kullanıyorsanız harika bir seçenektir.

  • Genel olarak bkz. Visual Studio | Visual Studio 2022'de Python kullanımıyla ilgili tüm belgeler için Python belgeleri .

  • Kurulum adımları için bkz . Visual Studio'da Python desteği yükleme. Bu, Python iş yükünü Visual Studio 2022'ye yükleme adımlarında size yol gösterir.

  • Web geliştirme için Python'ı kullanmanın genel iş akışı için bkz . Hızlı Başlangıç: Visual Studio kullanarak ilk Python web uygulamanızı oluşturma. Bu makale, sıfırdan python web uygulaması oluşturmayı anlamak için yararlıdır (ancak Azure'a dağıtım içermez).

  • Azure kaynaklarını yönetmek ve Azure'a dağıtmak için Visual Studio 2022'yi kullanmak için bkz . Visual Studio ile Azure Geliştirme. Buradaki belgelerin çoğu .NET'den özellikle bahsediliyor olsa da, Azure kaynaklarını yönetme ve Azure'a dağıtma araçları, programlama dilinden bağımsız olarak aynı şekilde çalışır.

  • Belirli bir Azure yönetim veya dağıtım görevi için Visual Studio 2022'de yerleşik bir araç olmadığında, her zaman Azure CLI komutlarını kullanabilirsiniz.

Diğer IDE'lerle çalışma

Azure için açık desteği olmayan başka bir IDE'de çalışıyorsanız Azure kaynaklarını yönetmek için Azure CLI'yı kullanabilirsiniz. Aşağıdaki ekran görüntüsünde PyCharm IDE'de basit bir Flask web uygulaması açık. Web uygulaması, komutu kullanılarak az webapp up bir Azure Uygulaması Hizmetine dağıtılabilir. Ekran görüntüsünde, CLI komutu PyCharm eklenmiş terminal öykünücüsü içinde çalışır. IDE'nizde ekli öykünücü yoksa, herhangi bir terminali ve aynı komutu kullanabilirsiniz. Azure CLI'nın bilgisayarınızda yüklü olması ve her iki durumda da erişilebilir olması gerekir.

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

Azure CLI komutları

Azure CLI komutlarını kullanarak web uygulamalarıyla yerel olarak çalışırken genellikle aşağıdaki komutlarla çalışırsınız:

Komut Açıklama
az webapp Web uygulamalarını yönetir. Bir web uygulaması oluşturmak için oluşturduğunuz alt komutları ve yerel bir çalışma alanından oluşturup dağıtmayı içerir
az container app Azure Container Apps'i yönetir.
az staticwebapp Azure Static Web Apps'i yönetir.
az group Kaynak gruplarını ve şablon dağıtımlarını yönetir. Azure kaynaklarınızı yerleştirmek için bir kaynak grubuna oluşturma alt komutunu kullanın.
az appservice App Service planlarını yönetir.
az config Yönetilen Azure CLI yapılandırması. Tuş vuruşlarını kaydetmek için, diğer komutların otomatik olarak kullandığı bir varsayılan konum veya kaynak grubu tanımlayabilirsiniz.

Aşağıda bir web uygulaması ve ilişkili kaynaklar oluşturmak ve az webapp up kullanarak tek komutla Azure'a dağıtmak için örnek bir Azure CLI komutu verilmiştir. Komutunu web uygulamanızın kök dizininde çalıştırın.

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

Bu örnek hakkında daha fazla bilgi için bkz. Hızlı Başlangıç: Azure Uygulaması Hizmetine Python (Django veya Flask) web uygulaması dağıtma.

Azure iş akışınızdan bazıları için Azure Cloud Shell'den Azure CLI'yi de kullanabileceğinizi unutmayın. Azure Cloud Shell, Azure kaynaklarını yönetmeye yönelik etkileşimli, kimliği doğrulanmış, tarayıcı ile erişilebilir bir kabuktur.

Azure SDK anahtar paketleri

Python web uygulamalarınızda Python için Azure SDK'sını kullanarak Program aracılığıyla Azure hizmetlerine başvurabilirsiniz. Bu SDK, Python için Azure kitaplıklarını (SDK) kullanma bölümünde kapsamlı olarak ele alınmaktadır. Bu bölümde, web geliştirmede kullanacağınız SDK'nın bazı önemli paketlerinden kısaca bahsedeceğiz. Ayrıca azure kaynaklarıyla kodunuzun kimliğini doğrulamak için en iyi yöntemle ilgili bir örnek göstereceğiz.

Aşağıda web uygulaması geliştirmede yaygın olarak kullanılan paketlerden bazıları yer almaktadır. Paketleri sanal ortamınıza doğrudan ile pipyükleyebilirsiniz. Veya requirements.txt dosyanıza Python paket dizini (Pypi) adını yazın.

SDK belgeleri Yükleme Python paket dizini
Azure Kimliği pip install azure-identity azure-identity
Azure Depolama Blobları pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Azure Key Vault Gizli Dizileri pip install azure-keyvault-secrets azure-keyvault-secrets

azure-identity paketi, web uygulamanızın Microsoft Entra ID ile kimlik doğrulaması yapmasına olanak tanır. Web uygulaması kodunuzda kimlik doğrulaması için pakette DefaultAzureCredentialazure-identity kullanmanız önerilir. Aşağıda Azure Depolama'a erişmeye yönelik bir örnek verilmiştır. Desen diğer Azure kaynakları için benzerdir.

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, hesap bilgileri için önceden tanımlanmış konumlarda (örneğin, ortam değişkenlerinde veya Azure CLI oturum açmada) görünür. Mantık hakkında DefaultAzureCredential ayrıntılı bilgi için bkz . Python için Azure SDK'sını kullanarak Azure hizmetlerinde Python uygulamalarının kimliğini doğrulama.

Python tabanlı web çerçeveleri

Python web uygulaması geliştirmede genellikle Python tabanlı web çerçeveleriyle çalışırsınız. Bu çerçeveler sayfa şablonları, oturum yönetimi, veritabanı erişimi ve HTTP isteği ve yanıt nesnelerine kolay erişim gibi işlevler sağlar. Çerçeveler, ortak işlevler için tekerleği yeniden icat etmenize gerek kalmamasını sağlar.

Üç yaygın Python web çerçevesi Django, Flask veya FastAPI'dir. Bunlar ve diğer web çerçeveleri Azure ile kullanılabilir.

Aşağıda, bu çerçeveleri yerel olarak kullanmaya nasıl hızlı bir şekilde baş edebileceğinize yönelik bir örnek verilmiştir. Bu komutları çalıştırdığınızda, Azure'a dağıtılabilir basit bir uygulamayla sonuçlanacaksınız. Bu komutları bir sanal ortamda çalıştırın.

1. Adım: Pip ile çerçeveleri indirin.

pip install Django

2. Adım: Merhaba dünya uygulaması oluşturma.

django-admin startproject komutunu kullanarak örnek bir proje oluşturun. Proje, uygulamayı çalıştırmak için giriş noktası olan bir manage.py dosyası içerir.

django-admin startproject hello_world

3. Adım: Kodu yerel olarak çalıştırın.

Django, uygulamayı çalıştırmak için WSGI kullanır.

python hello_world\manage.py runserver

4. Adım: Merhaba dünya uygulamasına göz atın.

http://127.0.0.1:8000/

Bu noktada bir requirements.txt dosyası ekleyin ve ardından web uygulamasını Azure'a dağıtabilir veya Docker ile kapsayıcıya alıp dağıtabilirsiniz.

Sonraki adımlar