Aracılığıyla paylaş


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

Bu makalede, Python web uygulamaları geliştirmek ve bunları Azure dağıtmak için yerel ortamınızı nasıl ayarlayacağınız gösterilmektedir. 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ını Azure App Service, Azure Container Apps veya Azure Static Web Apps gibi hizmetlere dağıtabilirsiniz. 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 yaparsanız Visual Studio Code, Azure CLI, yerel git deposu veya GitHub eylemleri kullanarak dağıtabilirsiniz. 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 Geliştirme ortamınızı ayarlama Python ve Azure için geliştirme ortamınızı ayarlama yönergelerini gözden geçirin. Aşağıdaki bölümlerde, Python web uygulaması geliştirmeye özgü kurulum ve yapılandırma açıklanmıştır.

Python web uygulaması geliştirme için yerel ortamınızı ayarladıktan sonra şu makaleleri işlemeye hazırsınız:

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 kaynaklarla çalışmanın kolay bir yoludur.

Bahşiş

Python uzantısını yüklediğinizden 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 kaynaklarla çalışırsınız. Uzantıları Uzantılar görünümünden veya Ctrl+Shift+X tuş bileşimini kullanarak yükleyebilirsiniz. Python web uygulamaları için aşağıdaki uzantılardan biriyle veya daha fazlasıyla çalışma olasılığınız vardır:

  • Azure App Service uzantısı, Visual Studio Code içinden Azure App Service etkileşim kurmanızı sağlar. App Service, web siteleri ve web API'leri dahil olmak üzere web uygulamaları için tam olarak yönetilen barındırma sağlar.

  • Azure Static Web Apps uzantısı doğrudan VS Code'dan Azure Static Web Apps oluşturmanıza olanak tanır. Static Web Apps sunucusuzdur ve statik içerik barındırma için iyi bir seçimdir.

  • Kapsayıcılarla çalışmayı planlıyorsanız şunları yükleyin:

    • Kapsayıcıları yerel olarak oluşturup onlarla çalışmak için Docker uzantısı. Örneğin, kapsayıcılar için Web Apps kullanarak kapsayıcılı Python web uygulamasını Azure App Service çalıştırabilirsiniz.

    • Azure Container Apps uzantısı, kaplanmış uygulamalar oluşturmak ve doğrudan Visual Studio Code'dan dağıtmak için.

  • Diğer uzantılar arasında Azure Storage, Azure Veritabanları ve Azure Resources uzantıları bulunur. Bunları ve diğer uzantıları istediğiniz zaman ekleyebilirsiniz.

Visual Studio Code'daki uzantılara tipik bir IDE arabiriminde beklediğiniz gibi erişilebilir. VS Code komut paletini kullanarak zengin anahtar sözcük desteğini kullanabilirsiniz. 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.

 App Service için Visual Studio Code komut paletinin ekran görüntüsü.

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

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

Python'da virtualenv veya venv gibi ortamları yönetmek için popüler seçenekler olsa da, Visual Studio Code Dev Container uzantısı (Open Geliştirme Kapsayıcısı belirtimine) tam özellikli kapsayıcılı ortam olarak Docker kapsayıcısı 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 bir Python ortamı dışında yaşayabilecek tüm bölümlerini açıkça yapılandırmak için bir 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ümlerle 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 kaynaklara erişmek ve bu kaynaklara 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 kullanmaya odaklansa da, Visual Studio 2022 zaten yüklediyseniz, bunu kullanmakta rahatsınız ve .NET veya C++ projeleri için kullanıyorsanız harika bir seçenektir.

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 kullanın. Aşağıdaki ekran görüntüsünde , PyCharm IDE'de basit bir Flask web uygulaması açık. az webapp up komutunu kullanarak web uygulamasını bir Azure App Service dağıtabilirsiniz. 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 bilgisayarınızda yüklü olmalı ve her iki durumda da erişilebilir olmalıdır.

Bir web uygulaması dağıtan Azure CLI komutuyla PyCharm IDE'sinin ekran görüntüsü.

Azure CLI komutları

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

Komut Açıklama
az webapp Web uygulamalarını yönetir. Sırasıyla bir web uygulaması oluşturmak veya yerel bir çalışma alanından oluşturup dağıtmak için oluştur ve oluştur alt komutlarını içerir.
az container app Azure Container Apps yönetir.
az staticwebapp Azure Static Web Apps yönetir.
az group Kaynak gruplarını ve şablon dağıtımlarını yönetir. Azure kaynaklarınızı yerleştirecek bir kaynak grubu oluşturmak için create alt komutunu kullanın.
az appservice App Service planlarını yönetir.
az config Azure CLI yapılandırmasını yönetir. 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 bunu tek komutta Azure 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. Quickstart: Azure App Service'a Python (Django veya Flask) web uygulaması dağıtma.

Azure iş akışınızın bazı kısımlarında, Azure Cloud Shell'den Azure CLI kullanabileceğinizi unutmayın. Azure Cloud Shell, Azure kaynaklarını yönetmek için etkileşimli, kimliği doğrulanmış, tarayıcı tarafından erişilebilir bir kabuk.

Azure SDK anahtar paketleri

Python web uygulamalarınızda, Python için Azure SDK kullanarak Azure hizmetlere program aracılığıyla başvurabilirsiniz. Python bölümünde bu SDK kapsamlı olarak ele alınmaktadır. Bu bölümde, web geliştirmede kullandığınız SDK'nın bazı önemli paketleri hakkında bilgi ediniyorsunuz. Ayrıca kodunuzun kimliğini Azure kaynaklarla doğrulamak için en iyi yöntemleri izleyen bir örnek görürsünüz.

Aşağıdaki tabloda web uygulaması geliştirmede yaygın olarak kullanılan paketlerden bazıları listelenmektedir. Paketleri sanal ortamınıza doğrudan pip kullanarak yükleyebilirsiniz. Veya requirements.txt dosyanıza Python paket dizini (PyPI) adını yazın.

SDK belgeleri Yüklemek Python Paket Dizini
Azure Identity pip install azure-identity azure-identity
Azure Storage Blobları pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Azure Key Vault Gizli Diziler pip install azure-keyvault-secrets azure-keyvault-secrets

azure-identity paketi, web uygulamanızın Microsoft Entra ID kimlik doğrulaması yapmasına olanak tanır. Web uygulaması kodunuzda kimlik doğrulaması için paketteki DefaultAzureCredential değerini azure-identity kullanın. Aşağıdaki örnek, Azure Storage'a nasıl erişileceğini göstermektedir. 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, ortam değişkenleri veya Azure CLI oturum açma gibi hesap bilgileri için önceden tanımlanmış konumlarda arar. DefaultAzureCredential mantığı hakkında ayrıntılı bilgi için bkz. Python için Azure SDK kullanarak Python uygulamalarını Azure hizmetlere doğrulama.

Python tabanlı web çerçeveleri

Python web uygulaması geliştirme aşamasında 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 ile yanıt nesnelerine kolay erişim gibi işlevler sağlar. Çerçeveler, ortak işlevler için tekerleği yeniden icat etmekten kaçınmanızı sağlar.

Üç yaygın Python web çerçevesi Django, Flask ve FastAPI'dır. Bunları ve diğer web çerçevelerini Azure kullanabilirsiniz.

Aşağıdaki örnek, bu çerçeveleri yerel olarak nasıl hızlı bir şekilde kullanmaya başlabileceğinizi gösterir. Bu komutları çalıştırdığınızda, Azure'a dağıtabileceğiniz basit bir uygulama elde edersiniz. Bu komutları bir sanal ortamda çalıştırın.

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

pip install Django

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

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

django-admin startproject hello_world

Adım 3: 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. Sonra, web uygulamasını Azure'a dağıtın veya Docker kullanarak kapsayıcıya alın ve dağıtın.

Sonraki adımlar