Bir ZIP veya WAR dosyası ile Azure App Service uygulamanızı dağıtmaDeploy your app to Azure App Service with a ZIP or WAR file

Bu makalede, Azure App ServiceWeb uygulamanızı dağıtmak IÇIN bir ZIP dosyası veya War dosyası nasıl kullanacağınız gösterilmektedir.This article shows you how to use a ZIP file or WAR file to deploy your web app to Azure App Service.

Bu ZIP dosya dağıtımı, sürekli tümleştirme tabanlı dağıtımları destekleyen kudu hizmetini kullanır.This ZIP file deployment uses the same Kudu service that powers continuous integration-based deployments. Kudu, ZIP dosya dağıtımı için aşağıdaki işlevleri destekler:Kudu supports the following functionality for ZIP file deployment:

  • Önceki bir dağıtımdan kalan dosyaların silinmesi.Deletion of files left over from a previous deployment.
  • Paket geri yüklemeyi içeren varsayılan derleme işlemini açma seçeneği.Option to turn on the default build process, which includes package restore.
  • Dağıtım komut dosyalarını çalıştırma dahil dağıtım özelleştirmesi.Deployment customization, including running deployment scripts.
  • Dağıtım günlükleri.Deployment logs.
  • 2048 MB 'lık bir dosya boyutu sınırı.A file size limit of 2048 MB.

Daha fazla bilgi için bkz. kudu belgeleri.For more information, see Kudu documentation.

WAR dosya dağıtımı, Java Web uygulamanızı çalıştırmak için War dosyanızı App Service olarak dağıtır.The WAR file deployment deploys your WAR file to App Service to run your Java web app. Bkz. WAR dosyasını dağıtma.See Deploy WAR file.

Yoksa bir Azure aboneliği, oluşturun bir ücretsiz bir hesap başlamadan önce.If you don't have an Azure subscription, create a free account before you begin.

ÖnkoşullarPrerequisites

Bu makaledeki adımları gerçekleştirmek için:To complete the steps in this article:

Proje ZIP dosyası oluşturmaCreate a project ZIP file

Not

Dosyaları bir ZIP dosyasına indirdiyseniz, önce dosyaları ayıklayın.If you downloaded the files in a ZIP file, extract the files first. Örneğin, GitHub 'dan bir ZIP dosyası indirdiyseniz, bu dosyayı olduğu gibi dağıtamazsınız.For example, if you downloaded a ZIP file from GitHub, you cannot deploy that file as-is. GitHub, App Service çalışmayan ek iç içe dizinler ekler.GitHub adds additional nested directories, which do not work with App Service.

Yerel bir Terminal penceresinde, uygulama projenizin kök dizinine gidin.In a local terminal window, navigate to the root directory of your app project.

Bu dizin, Web uygulamanıza, Dizin. html, _index. php_ve _app. js_gibi giriş dosyasını içermelidir.This directory should contain the entry file to your web app, such as index.html, index.php, and app.js. Ayrıca, Project. JSON, besteci. JSON, Package. JSON, _Bower. JSON_ve _requirements. txt_gibi paket yönetim dosyalarını da içerebilir.It can also contain package management files like project.json, composer.json, package.json, bower.json, and requirements.txt.

Projenizdeki tüm öğeleri içeren bir ZIP arşivi oluşturun.Create a ZIP archive of everything in your project. Aşağıdaki komut terminalinizdeki varsayılan aracı kullanmaktadır:The following command uses the default tool in your terminal:

# Bash
zip -r <file-name>.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip

ZIP dosyası dağıtmaDeploy ZIP file

Tarayıcıda https://<app_name>.scm.azurewebsites.net/ZipDeployUI adresine gidin.In the browser, navigate to https://<app_name>.scm.azurewebsites.net/ZipDeployUI.

Proje ZIP dosyası oluşturma başlığı altında oluşturduğunuz ZIP dosyasını, web sayfasındaki dosya gezgini alanına sürükleyerek karşıya yükleyin.Upload the ZIP file you created in Create a project ZIP file by dragging it to the file explorer area on the web page.

Dağıtım devam ederken sağ üst köşedeki bir simge yüzde cinsinden ilerleme durumunu gösterir.When deployment is in progress, an icon in the top right corner shows you the progress in percentage. Ayrıca sayfada, gezgin alanının altında işlemin ayrıntılı iletileri de gösterilir.The page also shows verbose messages for the operation below the explorer area. Tamamlandığında, son dağıtım iletisi Deployment successful şeklinde olmalıdır.When it is finished, the last deployment message should say Deployment successful.

Azure CLı ile ZIP dosyası dağıtmaDeploy ZIP file with Azure CLI

Azure CLı sürümünüzün 2.0.21 veya üzeri olduğundan emin olun.Make sure your Azure CLI version is 2.0.21 or later. Sahip olduğunuz sürümü görmek için, Terminal pencerenizde az --version komutunu çalıştırın.To see which version you have, run az --version command in your terminal window.

Az WebApp Deployment Source config-ZIP komutunu kullanarak KARŞıYA yüklenen ZIP dosyasını Web uygulamanıza dağıtın.Deploy the uploaded ZIP file to your web app by using the az webapp deployment source config-zip command.

Aşağıdaki örnek, karşıya yüklediğiniz ZIP dosyasını dağıtır.The following example deploys the ZIP file you uploaded. Yerel bir Azure CLı yüklemesi kullanırken, için --srcyerel ZIP dosyanızın yolunu belirtin.When using a local installation of Azure CLI, specify the path to your local ZIP file for --src.

az webapp deployment source config-zip --resource-group myResourceGroup --name <app_name> --src clouddrive/<filename>.zip

Bu komut ZIP içindeki dosyaları ve dizinleri App Service uygulama klasörünüze (\home\site\wwwroot) dağıtır ve uygulamayı yeniden başlatır.This command deploys the files and directories from the ZIP file to your default App Service application folder (\home\site\wwwroot) and restarts the app.

Varsayılan olarak, dağıtım altyapısı bir ZIP dosyasının olduğu gibi çalıştırılmaya hazır olduğunu varsayar ve herhangi bir derleme Otomasyonu çalıştırmaz.By default, the deployment engine assumes that a ZIP file is ready to run as-is and doesn't run any build automation. Bir Git dağıtımındaolduğu gibi aynı derleme Otomasyonu 'nu etkinleştirmek için Cloud Shellaşağıdaki komutu SCM_DO_BUILD_DURING_DEPLOYMENT çalıştırarak uygulama ayarını ayarlayın:To enable the same build automation as in a Git deployment, set the SCM_DO_BUILD_DURING_DEPLOYMENT app setting by running the following command in the Cloud Shell:

az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true

Daha fazla bilgi için bkz. kudu belgeleri.For more information, see Kudu documentation.

ZIP dosyasını REST API 'lerle dağıtmaDeploy ZIP file with REST APIs

. Zip dosyasını Azure 'daki uygulamanıza dağıtmak için dağıtım HIZMETI REST API 'lerini kullanabilirsiniz.You can use the deployment service REST APIs to deploy the .zip file to your app in Azure. Dağıtım yapmak için https://< app_name >. scm. azurewebsites. NET/API/zipdeploy 'a bir POST isteği gönderin.To deploy, send a POST request to https://<app_name>.scm.azurewebsites.net/api/zipdeploy. POST isteğinin ileti gövdesinde. zip dosyası içermesi gerekir.The POST request must contain the .zip file in the message body. Uygulamanızın dağıtım kimlik bilgileri, HTTP BASIC kimlik doğrulaması kullanılarak istekte belirtilir.The deployment credentials for your app are provided in the request by using HTTP BASIC authentication. Daha fazla bilgi için bkz . ZIP Push dağıtım başvurusu.For more information, see the .zip push deployment reference.

HTTP temel kimlik doğrulaması için App Service dağıtım kimlik bilgilerinizin olması gerekir.For the HTTP BASIC authentication, you need your App Service deployment credentials. Dağıtım kimlik bilgilerinizi ayarlama hakkında bilgi için bkz. Kullanıcı düzeyi kimlik bilgilerini ayarlama ve sıfırlama.To see how to set your deployment credentials, see Set and reset user-level credentials.

Kıvrımlı ileWith cURL

Aşağıdaki örnek, bir. zip dosyasını dağıtmak için kıvrımlı aracı kullanır.The following example uses the cURL tool to deploy a .zip file. <username>Yer tutucuları <password> değiştirin,<app_name>, ve. <zip_file_path>Replace the placeholders <username>, <password>, <zip_file_path>, and <app_name>. Kıvrımlı tarafından istendiğinde, parolayı yazın.When prompted by cURL, type in the password.

curl -X POST -u <deployment_user> --data-binary @"<zip_file_path>" https://<app_name>.scm.azurewebsites.net/api/zipdeploy

Bu istek, karşıya yüklenen. zip dosyasından gönderim dağıtımını tetikler.This request triggers push deployment from the uploaded .zip file. Aşağıdaki kıvrımlı örnekte gösterildiği gibi https://<app_name>.scm.azurewebsites.net/api/deployments uç noktasını kullanarak geçerli ve geçmiş dağıtımları inceleyebilirsiniz.You can review the current and past deployments by using the https://<app_name>.scm.azurewebsites.net/api/deployments endpoint, as shown in the following cURL example. Yeniden, uygulamanızın <app_name> adıyla ve <deployment_user> dağıtım kimlik bilgilerinizin Kullanıcı adıyla değiştirin.Again, replace <app_name> with the name of your app and <deployment_user> with the username of your deployment credentials.

curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments

PowerShell ileWith PowerShell

Aşağıdaki örnek Publish-AzWebapp ' i. zip dosyasını karşıya yükle kullanır.The following example uses Publish-AzWebapp upload the .zip file. Yer tutucuları <group-name> <app-name>, ve ile <zip-file-path>değiştirin.Replace the placeholders <group-name>, <app-name>, and <zip-file-path>.

Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <zip-file-path>

Bu istek, karşıya yüklenen. zip dosyasından gönderim dağıtımını tetikler.This request triggers push deployment from the uploaded .zip file.

Geçerli ve geçmiş dağıtımları gözden geçirmek için aşağıdaki komutları çalıştırın.To review the current and past deployments, run the following commands. Yeniden, ve <deployment-user> <deployment-password> yer<app-name> tutucularını değiştirin.Again, replace the <deployment-user>, <deployment-password>, and <app-name> placeholders.

$username = "<deployment-user>"
$password = "<deployment-password>"
$apiUrl = "https://<app-name>.scm.azurewebsites.net/api/deployments"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET

WAR dosyası dağıtmaDeploy WAR file

App Service bir WAR dosyasını dağıtmak için, ' a bir POST isteği https://<app_name>.scm.azurewebsites.net/api/wardeploygönderin.To deploy a WAR file to App Service, send a POST request to https://<app_name>.scm.azurewebsites.net/api/wardeploy. POST isteğinin ileti gövdesinde .war dosyası bulunmalıdır.The POST request must contain the .war file in the message body. Uygulamanızın dağıtım kimlik bilgileri, HTTP BASIC kimlik doğrulaması kullanılarak istekte belirtilir.The deployment credentials for your app are provided in the request by using HTTP BASIC authentication.

HTTP temel kimlik doğrulaması için App Service dağıtım kimlik bilgilerinizin olması gerekir.For the HTTP BASIC authentication, you need your App Service deployment credentials. Dağıtım kimlik bilgilerinizi ayarlama hakkında bilgi için bkz. Kullanıcı düzeyi kimlik bilgilerini ayarlama ve sıfırlama.To see how to set your deployment credentials, see Set and reset user-level credentials.

Kıvrımlı ileWith cURL

Aşağıdaki örnek, bir. war dosyasını dağıtmak için kıvrımlı aracı kullanır.The following example uses the cURL tool to deploy a .war file. Yer tutucuları <username> <war-file-path>, ve ile <app-name>değiştirin.Replace the placeholders <username>, <war-file-path>, and <app-name>. Kıvrımlı tarafından istendiğinde, parolayı yazın.When prompted by cURL, type in the password.

curl -X POST -u <username> --data-binary @"<war-file-path>" https://<app_name>.scm.azurewebsites.net/api/wardeploy

PowerShell ileWith PowerShell

Aşağıdaki örnek Publish-AzWebapp ,. war dosyasını karşıya yükle kullanır.The following example uses Publish-AzWebapp upload the .war file. Yer tutucuları <group-name> <app-name>, ve ile <war-file-path>değiştirin.Replace the placeholders <group-name>, <app-name>, and <war-file-path>.

Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <war-file-path>

Dağıtım sırasında uygulamama ne?What happens to my app during deployment?

Resmi olarak desteklenen dağıtım yöntemlerini tüm dosyalarda değişiklik /home/site/wwwroot uygulamanızın klasör.All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. Bu dosyalar, üretimde çalışan aynıdır.These files are the same ones that are run in production. Bu nedenle, dağıtımı kilitli dosyalar nedeniyle başarısız olabilir.Therefore, the deployment can fail because of locked files. Tüm dosyalar aynı anda güncelleştirilmediğinden üretim uygulamasında da dağıtım sırasında davranmasına neden olabilecek.The app in production may also behave unpredictably during deployment, because not all the files updated at the same time. Bu sorunlarla karşılaşmamak için birkaç farklı yolu vardır:There are a few different ways to avoid these issues:

Sonraki adımlarNext steps

Daha gelişmiş dağıtım senaryoları için Git Ile Azure 'adağıtım yapmayı deneyin.For more advanced deployment scenarios, try deploying to Azure with Git. Azure 'a git tabanlı dağıtım, sürüm denetimi, paket geri yükleme, MSBuild ve daha fazlasını sağlar.Git-based deployment to Azure enables version control, package restore, MSBuild, and more.

Daha fazla kaynakMore resources