Aracılığıyla paylaş


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

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

Yerel olarak geliştirilen Python web uygulamaları Azure App Service, Azure Container Appsveya Azure Static Web Appsgibi 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 konusunda rehberlik almak amacıyla "Geliştirme Ortamınızı Ayarlama" başlığını 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'ı kullanmaya 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'den 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:

  • Azure App Service uzantısı, Visual Studio Code'un içinden Azure App Service ile 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. Statik Web Uygulamaları 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:

    • Yerelde kapsayıcılar oluşturmak ve bunlarla çalışmak için Docker uzantısı. Örneğin, kapsayıcılar için Web Apps kullanarak Azure App Service'te kapsayıcılı bir Python web uygulaması çalıştırabilirsiniz.

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

  • Azure Depolama, Azure Veritabanlarıve Azure Kaynakları uzantıları gibi başka uzantılar da vardır. 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 ve VS Code komut paletikullanılarak zengin anahtar sözcük desteği sağlanır. 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'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.

Python'da veya gibi ortamları yönetmek için popüler seçenekler olsa da, Visual Studio Code Geliştirme Kapsayıcısı uzantısı (açık Geliştirme Kapsayıcısı belirtiminedayalı) , tam özellikli kapsayıcılı ortam olarak Docker kapsayıcısı kullanmanızı sağlar. 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 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ü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. Bir Kapsayıcı İç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, 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 Studiokullanarak 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,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ı, az webapp up komutu kullanılarak bir Azure App Service'e dağıtılabilir. Ekran görüntüsünde, CLI komutu PyCharm eklenmiş terminal öykünücüsü içinde çalışır. IDE'nizde bir ekli öykünücü yoksa, herhangi bir terminalde aynı komutu kullanabilirsiniz. Azure CLI'nın bilgisayarınızda yüklü olması ve her iki durumda da erişilebilir olması gerekir.

Web uygulaması dağıtan Azure CLI komutuyla PyCharm IDE'nin ekran görüntüsü.

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. oluşturmak alt komutları içerir ve sırasıyla bir web uygulaması oluşturmak veya yerel bir çalışma alanından oluşturup dağıtmak için .
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ştirecek bir kaynak grubu oluşturmak için alt komutu kullanın oluşturun.
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 upkullanarak tek komutta 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 App Service'e Python (Django veya Flask) web uygulaması dağıtma.

Azure iş akışınızın bazılarında Azure Cloud Shellüzerinde Azure CLI'yi 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 kabukdur.

Azure SDK anahtar paketleri

Python web uygulamalarınızda, Pythoniçin Azure SDK'sını kullanarak Azure hizmetlerine program aracılığıyla başvurabilirsiniz. Bu SDK, Pythoniç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ğrulamaya yönelik en iyi yöntemlere ilişkin 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 pipile yükleyebilirsiniz. Veya python paket dizini (Pypi) adını requirements.txt dosyanıza yazın.

SDK belgeleri Yüklemek Python paket dizini
Azure Kimliği pip install azure-identity azure-identity
Azure Depolama Bloblarını pip install azure-storage-blob azure-storage-blob (Azure Depolama Bloğu)
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Azure Key Vault Sırları 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 paketindeki azure-identity kullanmanız önerilir. Aşağıda Azure Depolama'ya 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) arar. DefaultAzureCredential mantığı hakkında ayrıntılı bilgi için bkz. Pythoniç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 ile 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, Flaskveya FastAPI. 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 ortamı içinde çalıştırın.

Adım 1:pipile kütüphaneleri 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

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

Adım 4: 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