Hızlı başlangıç: Linux üzerinde Azure App Service kullanarak bir Python uygulaması oluşturma

Bu hızlı başlangıçta, Azure 'un yüksek düzeyde ölçeklenebilir ve kendini yayama Web barındırma hizmeti olan Linux üzerinde App ServiceIçin bir Python web uygulaması dağıtırsınız. bir Mac, Linux veya Windows bilgisayarda yerel Azure komut satırı arabirimini (clı) kullanarak flask veya docgo çerçeveleri ile bir örnek dağıtabilirsiniz. Yapılandırdığınız Web uygulaması, Azure aboneliğinizde küçük bir ücret sunan temel bir App Service katmanını kullanır.

İlk ortamınızı ayarlama

  1. Etkin aboneliği olan bir Azure hesabına sahip olmanız gerekir. Ücretsiz hesap oluşturun.
  2. Python 3,6 veya üstünüyükler.
  3. Azure kaynaklarını sağlamak ve yapılandırmak için herhangi bir kabukta komut çalıştırdığınız Azure CLI'yi yükleyebilirsiniz.

Bir Terminal penceresi açın ve Python sürümünüzün 3,6 veya üzeri olduğunu denetleyin:

python3 --version

Azure CLı sürümünüzün 2.0.80 veya üzeri olduğunu kontrol edin:

az --version

Daha sonra CLı aracılığıyla Azure 'da oturum açın:

az login

Bu komut, kimlik bilgilerinizi toplamak için bir tarayıcı açar. Komut tamamlandığında, abonelikleriniz hakkında bilgi içeren JSON çıkışını gösterir.

Oturum açtıktan sonra, aboneliğinizdeki kaynaklarla çalışmak için Azure CLı ile Azure komutlarını çalıştırabilirsiniz.

Sorun mu yaşıyorsunuz? Bize bilgi verin.

Örneği

Aşağıdaki komutu kullanarak örnek depoyu kopyalayın ve örnek klasöre gidin. (Zaten git yoksaGit 'ı yükleyebilirsiniz .)

git clone https://github.com/Azure-Samples/python-docs-hello-world
git clone https://github.com/Azure-Samples/python-docs-hello-django

Örnek, uygulamayı başlatırken Azure App Service tanıdığı çerçeveye özgü kod içerir. Daha fazla bilgi için bkz. kapsayıcı başlatma işlemi.

Sorun mu yaşıyorsunuz? Bize bilgi verin.

Örneği çalıştırma

  1. Python-docs-Hello-World klasöründe içine gidin:

    cd python-docs-hello-world
    
  2. Sanal ortam oluşturma ve bağımlılıkları yüklemesi:

    # Linux systems only
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
    # Git Bash on Windows only
    py -3 -m venv .venv
    source .venv\\scripts\\activate
    pip install -r requirements.txt
    

    Bir Windows sistemdeyse ve "' kaynak" iç veya dış komut olarak tanınmadığını görürseniz, "git bash kabuğu 'nda çalıştırdığınızdan emin olun ya da yukarıdaki cmd sekmesinde gösterilen komutları kullanın.

    "[Errno 2] böyle bir dosya veya dizin bulunamadı: ' requirements.txt '.", Python-docs-Hello-World klasöründe olduğunuzdan emin olun.

  3. Geliştirme sunucusunu çalıştırın.

    flask run
    

    Varsayılan olarak sunucu, uygulamanın giriş modülünün örnekte kullanılan app.py içinde olduğunu varsayar.

    Farklı bir modül adı kullanırsanız, FLASK_APP ortam değişkenini bu ad olarak ayarlayın.

    "Hatayla karşılaşırsanız," bir Flask uygulaması bulunamadı. ' FLASK_APP ' ortam değişkenini sağlamadınız ve geçerli dizinde bir ' wsgi.py ' veya ' app.py ' modülü bulunamadı. ", python-docs-hello-world örneği içeren klasörde olduğunuzdan emin olun.

  4. Bir Web tarayıcısı açın ve konumundaki örnek uygulamaya gidin http://localhost:5000/ . Uygulama Merhaba, dünya! iletisini görüntüler.

    Örnek bir Python uygulamasını yerel olarak çalıştırma

  5. Terminal pencerenizde, + geliştirme sunucusundan çıkmak için CTRL C tuşuna basın.

  1. Python-docs-Hello-docgo klasörüne gidin:

    cd python-docs-hello-django
    
  2. Sanal ortam oluşturma ve bağımlılıkları yüklemesi:

    # Linux systems only
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
    # Git Bash on Windows only
    py -3 -m venv .venv
    source .venv\\scripts\\activate
    pip install -r requirements.txt
    

    Bir Windows sistemdeyse ve "' kaynak" iç veya dış komut olarak tanınmadığını görürseniz, "git bash kabuğu 'nda çalıştırdığınızdan emin olun ya da yukarıdaki cmd sekmesinde gösterilen komutları kullanın.

    "[Errno 2] böyle bir dosya veya dizin bulunamadı: ' requirements.txt '.", Python-docs-Hello-docgo klasöründe olduğunuzdan emin olun.

  3. Geliştirme sunucusunu çalıştırın.

    python manage.py runserver
    
  4. Bir Web tarayıcısı açın ve konumundaki örnek uygulamaya gidin http://localhost:8000/ . Uygulama Merhaba, dünya! iletisini görüntüler.

    Örnek bir Python uygulamasını yerel olarak çalıştırma

  5. Terminal pencerenizde, + geliştirme sunucusundan çıkmak için CTRL C tuşuna basın.

Sorun mu yaşıyorsunuz? Bize bilgi verin.

Örneği dağıtma

Şu komutu kullanarak kodu yerel klasörünüzde (Python-docs-Hello-World) dağıtın az webapp up :

az webapp up --sku B1 --name <app-name>
  • azKomut tanınmazsa, Ilk ortamınızı ayarlamabölümünde AÇıKLANDıĞı gibi Azure CLI 'nin yüklü olduğundan emin olun.
  • webappAzure CLI sürümünüz 2.0.80 veya üzeri olduğundan, komut tanınmazsa. Aksi takdirde, en son sürümü yükler.
  • <app_name>Tüm Azure genelinde benzersiz olan bir adla değiştirin (geçerli karakterler a-z , 0-9 ve -). İyi bir model, şirketinizin adının ve uygulama tanımlayıcısının bir birleşimini kullanmaktır.
  • --sku B1Bağımsız değişkeni, Web uygulamasını temel fiyatlandırma katmanında oluşturur ve bu da kısa bir saatlik maliyet doğurur. Daha hızlı bir Premium katmanı kullanmak için bu bağımsız değişkeni atlayın.
  • İsteğe bağlı olarak --location <location-name> <location_name> , kullanılabilir bir Azure bölgesi olan bağımsız değişkeni ekleyebilirsiniz. Komutunu çalıştırarak, Azure hesabınız için izin verilen bölgelerin bir listesini alabilirsiniz az account list-locations .
  • "Uygulamanızın çalışma zamanı yığınını otomatik olarak algılamamız" hatasını görürseniz, bu komutu requirements.txt dosyasını içeren Python-docs-Hello-World klasöründe (Flask) veya Python-docs-Hello-Docgo klasöründe (docgo) çalıştırdığınızdan emin olun. (Bkz. az WebApp up (GitHub) ile otomatik algılama sorunlarını giderme .)

Komutun tamamlanması birkaç dakika sürebilir. Çalıştırılırken, kaynak grubu oluşturma, App Service planı ve barındırma uygulaması, günlüğü yapılandırma ve ardından ZIP dağıtımı gerçekleştirme hakkında iletiler sağlar. Daha sonra, "uygulamayı < > Azure 'da uygulamanın URL 'si olan http://app-name. azurewebsites.net konumunda başlatabilirsiniz.

Az WebApp up komutunun örnek çıktısı

Sorun mu yaşıyorsunuz? İlk olarak sorun giderme kılavuzunabaşvurun, aksi takdirde bize bilgi verin.

Not

az webapp up komutu şu eylemleri gerçekleştirir:

Uygulamaya göz atma

URL 'de Web tarayıcınızda dağıtılan uygulamaya gidin http://<app-name>.azurewebsites.net . Uygulamanın başlaması bir veya iki dakika sürebilir, bu nedenle varsayılan bir uygulama sayfası görürseniz bir dakika bekleyip Tarayıcıyı yenileyin.

Python örnek kodu, yerleşik bir görüntü kullanarak App Service bir Linux kapsayıcısı çalıştırıyor.

Azure 'da örnek bir Python uygulaması çalıştırma

Tebrikler! App Service için Python uygulamanızı dağıttınız.

Sorun mu yaşıyorsunuz? İlk olarak sorun giderme kılavuzunabaşvurun, aksi takdirde bize bilgi verin.

Güncelleştirmeleri yeniden Dağıt

Bu bölümde, küçük bir kod değişikliği yapar ve ardından kodu Azure 'a yeniden dağıtabilirsiniz. Kod değişikliği, print sonraki bölümde birlikte çalıştığınız günlüğe kaydetme çıkışı oluşturmak için bir ifade içerir.

App.py 'i bir düzenleyicide açın ve hello işlevi aşağıdaki kodla eşleşecek şekilde güncelleştirin.

def hello():
    print("Handling request to home page.")
    return "Hello, Azure!"

Bir düzenleyicide Merhaba/views. düzenleyene açın ve hello işlevi aşağıdaki kodla eşleşecek şekilde güncelleştirin.

def hello(request):
    print("Handling request to home page.")
    return HttpResponse("Hello, Azure!")

Değişikliklerinizi kaydettikten sonra az webapp up komutu tekrar kullanarak uygulamayı yeniden dağıtın:

az webapp up

Bu komut, uygulama adı, kaynak grubu ve App Service planı dahil olmak üzere . Azure/config dosyasında yerel olarak önbelleğe alınan değerleri kullanır.

Dağıtım tamamlandıktan sonra tarayıcı penceresine geri dönün http://<app-name>.azurewebsites.net . Değiştirilen iletiyi görüntülemesi gereken sayfayı yenileyin:

Azure 'da güncelleştirilmiş örnek bir Python uygulaması çalıştırma

Sorun mu yaşıyorsunuz? İlk olarak sorun giderme kılavuzunabaşvurun, aksi takdirde bize bilgi verin.

İpucu

Visual Studio Code, python web uygulamalarını App Service dağıtma sürecini kolaylaştıran python ve Azure App Service için güçlü uzantılar sağlar. Daha fazla bilgi için bkz. Visual Studio Code App Service Için Python uygulamaları dağıtma.

Akış günlükleri

Uygulamanın içinden oluşturulan konsol günlüklerine ve çalıştığı kapsayıcıya erişebilirsiniz. Günlükler, using deyimleri kullanılarak oluşturulan herhangi bir çıktıyı içerir print .

Günlükleri akışa almak için az WebApp log tail komutunu çalıştırın:

az webapp log tail

--logs az webapp up Günlük akışını otomatik olarak dağıtımda açmak için parametresini then komutuyla da dahil edebilirsiniz.

Uygulamaya HTTP isteklerini açıklayan iletileri içeren konsol günlükleri oluşturmak için uygulamayı tarayıcıda yenileyin. Hemen bir çıkış yoksa 30 saniye içinde yeniden deneyin.

Ayrıca, tarayıcıdan https://<app-name>.scm.azurewebsites.net/api/logs/docker adresine giderek günlük dosyalarını inceleyebilirsiniz.

Günlük akışını istediğiniz zaman durdurmak için terminalde Ctrl + C tuşlarına basın.

Sorun mu var? Önce Sorun giderme kılavuzuna bakın,aksi takdirde bize haber ver.

Azure uygulamasını yönetme

Oluşturduğunuz uygulamayı Azure portal için aşağıdaki sunucuya gidin. Uygulama Hizmetleri için arama ve seçme.

Uygulama Hizmetleri'ne Azure portal

Azure uygulamanın adını seçin.

Uygulama Hizmetleri'nin içinde Python uygulamanıza Azure portal

Uygulama seçerek göz atma, durdurma, başlatma, yeniden başlatma ve silme gibi temel yönetim görevlerini gerçekleştirebilirsiniz.

Uygulama sayfasındaki Genel Bakış sayfasında Python Azure portal

Uygulama App Service, uygulama yapılandırmanız için farklı sayfalar sağlar.

Sorun mu var? Önce Sorun giderme kılavuzuna bakın,aksi takdirde bize haber ver.

Kaynakları temizleme

Önceki adımlarda, bir kaynak grubunda Azure kaynakları oluşturdunuz. Kaynak grubunun konumunuza bağlı olarak "appsvc_rg_Linux_CentralUS" gibi bir adı var. Web uygulamasını çalıştırmaya devam ediyorsanız, devam eden bazı maliyetler alırsınız (bkz. App Service fiyatlandırması).

Gelecekte bu kaynaklara ihtiyaç olmasını bekleye ediyorsanız aşağıdaki komutu çalıştırarak kaynak grubunu silin:

az group delete --no-wait

Komut, .azure/config dosyasında önbelleğe alınan kaynak grubu adını kullanır.

bağımsız --no-wait değişkeni, işlem tamamlandıktan önce komutun dönmesini sağlar.

Sorun mu var? Bize haber ver.

Sonraki adımlar