Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, Azure Uygulaması Hizmeti'ne bir Python web uygulaması (Django, Flask veya FastAPI) dağıtacaksınız. Azure Uygulaması Hizmeti, Linux sunucu ortamında barındırılan Python uygulamalarını destekleyen tam olarak yönetilen bir web barındırma hizmetidir.
Bu hızlı başlangıcı tamamlamak için şunlar gerekir:
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- Python 3.14 veya üzeri yerel olarak yüklenir.
Uyarı
Bu makale, Azure Uygulaması Hizmeti kullanarak Python web uygulaması dağıtmaya yönelik güncel yönergeleri içerir. Windows üzerinde Python artık desteklenmiyor.
Sonuna geç
Bu öğreticide Azure Geliştirici CLI'sini kullanarak örnek uygulamayı hızla dağıtabilir ve Azure'da çalıştığını görebilirsiniz. Azure Cloud Shell'deaşağıdaki komutları çalıştırın ve istemi izleyin:
mkdir flask-quickstart
cd flask-quickstart
azd init --template https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
azd up
Kaynakları silmek için:
azd down
Örnek uygulama
Bu hızlı başlangıç Flask, Django veya FastAPI kullanılarak tamamlanabilir. Bu hızlı başlangıcı izlemenize yardımcı olmak için her çerçevede örnek bir uygulama sağlanır. Örnek uygulamayı yerel iş istasyonunuza indirin veya kopyalayın.
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
Uygulamayı yerel olarak çalıştırmak için:
Uygulama klasörüne gidin:
cd msdocs-python-flask-webapp-quickstartUygulama için sanal ortam oluşturma:
py -m venv .venv .venv\scripts\activateBağımlılıkları yükleyin:
pip install -r requirements.txtUygulamayı çalıştırın:
flask runWeb tarayıcısında
http://localhost:5000konumundaki örnek uygulamayı görüntüleyin.
Sorun mu yaşıyorsunuz? Bize bildirin.
Azure'da web uygulaması oluşturma
Uygulamanızı Azure'da barındırmak için Azure'da bir Azure Uygulaması Hizmeti web uygulaması oluşturmanız gerekir. Azure CLI, VS Code, Azure Araçları uzantı paketi veya Azure portalı kullanarak bir web uygulaması oluşturabilirsiniz.
Azure CLI komutları, Azure CLI yüklü bir bilgisayarda çalıştırılabilir.
Azure kaynaklarını oluşturun ve ardından uygulamanızı ayrı Azure CLI komutları kullanarak dağıtın.
Gerekirse az login kullanarak Azure'da oturum açın.
az login
Küresel olarak benzersiz bir isimle değiştirin <app-name> . Bir kaynak grubu ve bir App Service planı oluşturun, ardından az webapp create kullanarak web uygulamasını oluşturun.
az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "PYTHON:3.14"
az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
- Uygulamanızın çalıştığı Python sürümünü belirtmek için
--runtimeparametresini kullanın. Bu örnek Python 3.14 kullanıyor. Desteklenen Python çalışma zamanlarını listelemek içinaz webapp list-runtimes --os-type linux --runtime python --output tablekullanın. - App Service planının boyutunu (CPU ve bellek) ve maliyetini tanımlamak için
--skuparametresini kullanın. Bu örnek, Azure aboneliğinizde bir maliyet oluşturan P0v3 (Premium v3) hizmet planını kullanır. App Service planlarının tam listesi için bkz. App Service fiyatlandırması. -
eastusöğesini tercih ettiğiniz bölgeyle değiştirin. Mevcut bölgeleri listelemek için--output tableileaz account list-locationskomutunu çalıştırın. - Bu
SCM_DO_BUILD_DURING_DEPLOYMENTayar, kaynak arşivini dağıttığınızda requirements.txt'daki bağımlılıkların kurulması da dahil olmak üzere Oryx derlemesini etkinleştirir.
Arşivin kökünde, uygulama dosyalarını ve requirements.txt dosyasını içeren bir ZIP dosyası oluşturun. .venv, .git ve .env gibi yerel dosyaları hariç tutun. Platforma özgü talimatlar için, ZIP dosyası kullanarak dağıtma sekmesindeki uygulamanızın ZIP dosyasını oluşturma bölümüne bakın. Ardından arşivi az webapp deploy kullanarak dağıtın:
az webapp deploy --name <app-name> --resource-group myResourceGroup --src-path <zip-file-path> --type zip
Dağıtım birkaç dakika sürebilir. Uygulamanızı görmek için https://<app-name>.azurewebsites.net sayfasına gidin. Günlükleri akış olarak izlemek için az webapp log config --name <app-name> --resource-group myResourceGroup --docker-container-logging filesystem çalıştırarak bunları etkinleştirin ve ardından az webapp log tail --name <app-name> --resource-group myResourceGroup çalıştırın.
Sorun mu yaşıyorsunuz? Bize bildirin.
Uygulama kodunuzu Azure'a dağıtma
Azure Uygulaması Hizmeti, GitHub Actions ve tüm önemli CI/CD araçları dahil olmak üzere uygulama kodunuzu Azure'a dağıtmak için birden çok yöntemi destekler. Bu makalede kodunuzu yerel iş istasyonunuzdan Azure'a dağıtma konusuna odaklanılır.
Önceki adımdaki Azure CLI komutları kaynakları oluşturdu ve uygulamanızı dağıttı. Bir sonraki adıma geçebilirsiniz.
Sorun mu yaşıyorsunuz? Önce Sorun giderme kılavuzuna bakın. Bu işe yaramazsa bize bildirin.
Başlangıç betiğini yapılandırma
Bir dağıtımda belirli dosyaların bulunmasına bağlı olarak App Service, bir uygulamanın Django mu yoksa Flask uygulaması mı olduğunu otomatik olarak algılar ve uygulamanızı çalıştırmak için varsayılan adımları gerçekleştirir. FastAPI gibi diğer web çerçevelerine dayalı uygulamalar için, uygulamanızı çalıştırmak için App Service için bir başlatma betiği yapılandırmanız gerekebilir. Bunun dışında, App Service opt/defaultsite klasöründe bulunan varsayılan tek okuma uygulamasını çalıştırır.
- Python 3.14 ve sonrası: App Service otomatik olarak FastAPI uygulamalarını tespit eder ve çalıştırır. Başlatma komutu gerekmez.
- Python 3.13 ve daha öncesi: Özel bir başlatma komutu yapılandırmanız gerekir.
App Service'in Python uygulamalarını nasıl çalıştırabileceği ve uygulamanızla davranışını nasıl yapılandırıp özelleştirebileceğiniz hakkında daha fazla bilgi edinmek için bkz. Azure App Service için Linux Python uygulaması yapılandırma.
App Service bir Flask uygulamasının varlığını otomatik olarak algılar. Bu hızlı başlangıç için ek yapılandırma gerekmez.
Uygulamaya göz atın
Web tarayıcınızda dağıtılan uygulamaya göz atın. Azure portalından bir bağlantıyı izleyebilirsiniz. Genel Bakış sayfasına gidin ve Varsayılan Etki Alanı'nı seçin. Varsayılan bir uygulama sayfası görürseniz, bir dakika bekleyin ve tarayıcıyı yenileyin.
Python örnek kodu, yerleşik bir görüntü kullanarak App Service'te bir Linux kapsayıcısı çalıştırıyor.
Tebrikler! Python uygulamanızı App Service'e dağıttınız.
Sorun mu yaşıyorsunuz? Önce Sorun giderme kılavuzuna bakın. Bu işe yaramazsa bize bildirin.
Akış günlükleri
Azure Uygulaması Hizmeti, uygulamanızla ilgili sorunları tanılamanıza yardımcı olmak için konsola tüm ileti çıkışını yakalar. Örnek uygulamalar, bu özelliği göstermek için ifadeler içerir print() .
@app.route('/')
def index():
print('Request for index page received')
return render_template('index.html')
@app.route('/favicon.ico')
def favicon():
return send_from_directory(os.path.join(app.root_path, 'static'),
'favicon.ico', mimetype='image/vnd.microsoft.icon')
@app.route('/hello', methods=['POST'])
def hello():
name = request.form.get('name')
if name:
print('Request for hello page received with name=%s' % name)
return render_template('hello.html', name = name)
else:
print('Request for hello page received with no name or blank name -- redirecting')
return redirect(url_for('index'))
Azure CLI, VS Code veya Azure portalını kullanarak App Service tanılama günlüklerinin içeriğini gözden geçirebilirsiniz.
İlk olarak, Azure App Service'i az webapp log config komutunu kullanarak günlükleri App Service dosya sistemine çıkacak şekilde yapılandırmanız gerekir.
az webapp log config \
--web-server-logging filesystem \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Günlükleri akışla aktarmak için az webapp log tail komutunu kullanın.
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Uygulamadaki ana sayfayı yenileyin veya bazı log mesajları oluşturmak için diğer istekleri deneyin. Çıkış aşağıdakine benzer görünmelidir.
Starting Live Log Stream ---
2021-12-23T02:15:52.740703322Z Request for index page received
2021-12-23T02:15:52.740740222Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET / HTTP/1.1" 200 1360 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.841043070Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.884541951Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:53.043211176Z 169.254.130.1 - - [23/Dec/2021:02:15:53 +0000] "GET /favicon.ico HTTP/1.1" 404 232 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.304306845Z Request for hello page received with name=David
2021-12-23T02:16:01.304335945Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "POST /hello HTTP/1.1" 200 695 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.398399251Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.430740060Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
Sorun mu yaşıyorsunuz? Önce Sorun giderme kılavuzuna bakın. Bu işe yaramazsa bize bildirin.
Kaynakları temizleme
Örnek uygulamayla işiniz bittiğinde, uygulamanın tüm kaynaklarını Azure'dan kaldırabilirsiniz. Kaynak grubunu kaldırmak ek ücret ödememenizi sağlar ve Azure aboneliğinizin dağınık kalmasına yardımcı olur. Kaynak grubunu kaldırmak, kaynak grubundaki tüm kaynakları da kaldırır ve uygulamanız için tüm Azure kaynaklarını kaldırmanın en hızlı yoludur.
az group delete komutunu kullanarak kaynak grubunu silin .
az group delete \
--name msdocs-python-webapp-quickstart \
--no-wait
--no-wait bağımsız değişkeni, işlemin tamamlanmasından önce komutun döndürülmesini sağlar.
Sorun mu yaşıyorsunuz? Bize bildirin.