AzureWebApp@1 - Azure Web App v1 görevi
Bu görev Linux veya Windows için Bir Azure Web Uygulaması dağıtır.
Sözdizimi
# Azure Web App v1
# Deploy an Azure Web App for Linux or Windows.
- task: AzureWebApp@1
inputs:
azureSubscription: # string. Required. Azure subscription.
appType: # 'webApp' | 'webAppLinux'. Required. App type.
appName: # string. Required. App name.
#deployToSlotOrASE: false # boolean. Optional. Use when appType != "". Deploy to Slot or App Service Environment. Default: false.
#resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group.
#slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
#customDeployFolder: # string. Optional. Use when package EndsWith .war. Custom Deploy Folder.
#runtimeStack: # string. Optional. Use when appType = webAppLinux. Runtime stack.
#startUpCommand: # string. Optional. Use when appType = webAppLinux. Startup command.
# Application and Configuration Settings
#customWebConfig: # string. Optional. Use when appType != webAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps.
#appSettings: # string. App settings.
#configurationStrings: # string. Configuration settings.
# Additional Deployment Options
#deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != webAppLinux && appType != "" && package NotEndsWith .war && package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Web App v1
# Deploy an Azure Web App for Linux or Windows.
- task: AzureWebApp@1
inputs:
azureSubscription: # string. Required. Azure subscription.
appType: # 'webApp' | 'webAppLinux'. Required. App type.
appName: # string. Required. App name.
#deployToSlotOrASE: false # boolean. Optional. Use when appType != "". Deploy to Slot or App Service Environment. Default: false.
#resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group.
#slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
#runtimeStack: # string. Optional. Use when appType = webAppLinux. Runtime stack.
#startUpCommand: # string. Optional. Use when appType = webAppLinux. Startup command.
# Application and Configuration Settings
#customWebConfig: # string. Optional. Use when appType != webAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps.
#appSettings: # string. App settings.
#configurationStrings: # string. Configuration settings.
# Additional Deployment Options
#deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != webAppLinux && appType != "" && package NotEndsWith .war && package NotEndsWith .jar. Deployment method. Default: auto.
Giriş
uygulama türü
string
. Gerekli. İzin verilen değerler: webApp
(Windows'da Web Uygulaması), webAppLinux
(Linux'ta Web Uygulaması).
Azure Web App türünü belirtir.
uygulama adı
string
. Gerekli.
Mevcut bir Azure App Service'in adını belirtir. Yalnızca seçili uygulama türünü temel alan uygulama hizmetleri listelenir.
deployToSlotOrASE
-
Yuvaya veya App Service Ortamına Dağıtma
boolean
. Opsiyonel.
appType != ""
olduğunda kullanın. Varsayılan değer: false
.
Mevcut bir dağıtım yuvasına veya Azure App Service Ortamına dağıtma seçeneğini seçer.
Her iki hedef için de görevin bir kaynak grubu adı gerekir.
Dağıtım hedefi bir yuvaysa, varsayılan değer üretim yuvasıdır. Diğer tüm mevcut yuva adları da sağlanabilir.
Dağıtım hedefi bir Azure App Service Ortamı ise yuva adını 'production' olarak bırakın ve kaynak grubu adını belirtin.
kaynak grubu
string
.
deployToSlotOrASE = true
gerekir.
Dağıtım hedefi bir dağıtım yuvası veya Azure App Service Ortamı olduğunda kaynak grubu adı gereklidir.
Yukarıda belirtilen Azure App Service'i içeren Azure kaynak grubunu belirtir.
slotName
-
Yuvası
string
.
deployToSlotOrASE = true
gerekir. Varsayılan değer: production
.
Üretim yuvası hariç mevcut bir yuvayı belirtir.
Paket veya klasör
string
. Gerekli. Varsayılan değer: $(System.DefaultWorkingDirectory)/**/*.zip
.
MSBuild tarafından oluşturulan App Service içeriğini içeren paket veya klasörün dosya yolu, sıkıştırılmış zip dosyası veya savaş dosyası. Değişkenler ( Derleme | Yayın) ve joker karakterler desteklenir. Örneğin, $(System.DefaultWorkingDirectory)/**/*.zip
veya $(System.DefaultWorkingDirectory)/**/*.war
.
Özel Dağıtım Klasörü
string
. Opsiyonel.
package EndsWith .war
olduğunda kullanın.
Dağıtmak istediğiniz özel klasör adını belirtir.
Alan boşsa, paket <appname>.azurewebsites.net/<warpackagename>
dağıtılır.
ROOT girilirse, paket <appname>.azurewebsited.net
dağıtılır.
Diğer tüm örneklerde <appname>.azurewebsited.net/<customWarName>
dağıtılır.
çalışma zamanı yığını
string
. Opsiyonel.
appType = webAppLinux
olduğunda kullanın.
Linux üzerinde Web App, uygulamanızı yayımlamak için iki farklı seçenek sunar: özel görüntü dağıtımı (Kapsayıcılar için Web Uygulaması) ve yerleşik platform görüntüsüyle uygulama dağıtımı (Linux üzerinde Web Uygulaması). Bu parametre yalnızca görevdeki bir uygulama türü olarak Linux Web App seçildiğinde kullanılabilir.
başlangıç komutu
string
. Opsiyonel.
appType = webAppLinux
olduğunda kullanın.
Başlat komutunu belirtir.
Mesela:
dotnet run
dotnet filename.dll.
customWebConfig
-
Python, Node.js, Go ve Java uygulamaları için web.config parametreleri oluşturma
string
. Opsiyonel.
appType != webAppLinux && package NotEndsWith .war
olduğunda kullanın.
Uygulamada yoksa standart bir web.config oluşturulur ve Azure App Service'e dağıtılır. web.config değerleri uygulama çerçevesine göre değişir ve düzenlenebilir. Örneğin, node.js uygulaması için web.config bir başlangıç dosyası ve iis_node modül değerlerine sahip olur. Bu düzenleme özelliği yalnızca oluşturulan web.configiçindir.
uygulama ayarlarını
string
.
-key value
söz dizimini kullanarak web uygulaması uygulama ayarlarını belirtin (örneğin: -Port 5000
-RequestTimeout 5000
-WEBSITE_TIME_ZONE
). Boşluk içeren değerleri çift tırnak içine alın (örneğin: "Eastern Standard Time"
).
configurationStrings
-
Yapılandırma ayarları
string
.
Söz dizimi -key value
kullanarak web uygulaması yapılandırma ayarlarını belirtin (örneğin: -phpVersion 5.6
-linuxFxVersion: node|6.11
). Boşluk içeren değerleri çift tırnak içine alın.
deploymentMethod
-
Dağıtım yöntemi
string
.
appType != webAppLinux && appType != "" && package NotEndsWith .war && package NotEndsWith .jar
gerekir. İzin verilen değerler: auto
(Otomatik algılama), zipDeploy
(Zip Dağıtımı), runFromPackage
(Paketten Çalıştır). Varsayılan değer: auto
.
Uygulama için dağıtım yöntemini seçin. Kabul edilebilir değerler
Görev denetimi seçenekleri
Tüm görevlerin, görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz. Denetim seçenekleri ve ortak görev özellikleri.
Çıkış değişkenleri
Bu görevaşağıdaki
AppServiceApplicationUrl
seçili Azure App Service'in uygulama URL'sini .
Açıklamalar
Web uygulamalarını Azure App Service'e dağıtmak için bu görevi kullanın.
Dağıtım yöntemleri
Bu görevde çeşitli dağıtım yöntemleri kullanılabilir.
Auto
varsayılan seçenektir.
Tasarımcı görevinde paket tabanlı dağıtım seçeneğini değiştirmek için Ek Dağıtım Seçenekleri
Görev, Azure App Service ve Azure Pipelines aracısının türüne bağlı olarak uygun bir dağıtım teknolojisi seçer. Görev tarafından kullanılan farklı dağıtım teknolojileri şunlardır:
- Kudu REST API'leri
- Zip Dağıtımı
- RunFromPackage
Varsayılan olarak, görev giriş paketi, app service türü ve aracı işletim sistemi göz önüne alındığında uygun dağıtım teknolojisini seçmeye çalışır.
- Uygulama hizmeti türü Linux Uygulamasında Web Uygulaması olduğunda zip dağıtımı
kullanın - Bir War dosyası sağlanmışsa War Deploy kullanın
- Jar dosyası sağlanmışsa, Paketten Çalıştır kullanın
- Diğer tüm kullanıcılar için Zip'ten Çalıştır
kullanın (Zip Dağıtımı aracılığıyla)
Windows olmayan bir aracıda (herhangi bir uygulama hizmeti türü için), görev web uygulamasını dağıtmak için
Kudu REST API'leri
Kudu REST API'leri hedef Windows'ta Web Uygulaması, Linux üzerinde Web App (yerleşik kaynak) veya İşlev Uygulaması olduğunda Windows veya Linux otomasyon aracıları üzerinde çalışır. Görev, Azure App Service'e dosya kopyalamak için Kudu kullanır.
Zip Dağıtımı
Seçilen paket veya klasörün .zip dağıtım paketini oluşturur. Dosya içeriği daha sonra Azure App Service'teki işlev uygulamasının wwwroot klasörüne dağıtılır. Bu seçenek wwwroot klasöründeki tüm mevcut içeriğin üzerine yazar. Daha fazla bilgi için bkz. Azure İşlevleriiçin Zip dağıtımı.
RunFromPackage
Zip Deploy ile aynı dağıtım paketini oluşturur. Ancak, wwwroot klasörüne dosya dağıtmak yerine paketin tamamı Azure İşlevleri çalışma zamanı tarafından bağlanır. Bu seçenekle, wwwroot klasöründeki dosyalar salt okunur hale gelir. Daha fazla bilgi için bkz. Azure İşlevlerinizi bir paket dosyasından çalıştırma.
Hata: Azure için erişim belirteci getirilemedi. Kullanılan Hizmet Sorumlusunun geçerli olduğunu ve süresinin dolmadığını doğrulayın.
Görev, Azure ile kimlik doğrulaması yapmak için hizmet bağlantısındaki hizmet sorumlusunu kullanır. Hizmet sorumlusunun süresi dolduysa veya App Service izinleri yoksa, görev bu hatayla başarısız olur. Kullanılan hizmet sorumlusunun geçerliliğini ve uygulama kaydında mevcut olduğunu doğrulayın. Daha fazla bilgi için bkz. Azure abonelik kaynaklarınıza erişimi yönetmek için rol tabanlı erişim denetimini kullanma. Bu blog gönderisi hizmet sorumlusu kimlik doğrulaması kullanma hakkında daha fazla bilgi içerir.
SSL hatası
App Service'te bir sertifika kullanmak istiyorsanız, sertifikanın güvenilir bir sertifika yetkilisi tarafından imzalanması gerekir. Web uygulamanız size sertifika doğrulama hataları veriyorsa, büyük olasılıkla otomatik olarak imzalanan bir sertifika kullanıyorsunuz demektir. Hatayı çözmek için derleme veya yayın işlem hattındaki true
değerine VSTS_ARM_REST_IGNORE_SSL_ERRORS
adlı bir değişken ayarlayın.
Bir sürüm uzun süre askıda kalıyor ve sonra başarısız oluyor
Bu sorun, App Service planınızda yetersiz kapasitenin sonucu olabilir. Bu sorunu çözmek için kullanılabilir CPU, RAM ve disk alanını artırmak için App Service örneğinin ölçeğini artırabilir veya farklı bir App Service planıyla deneyebilirsiniz.
5xx hata kodları
5xx hatası görüyorsanız azure hizmetinizin durumunu denetleyin.
Azure İşlevi aniden çalışmayı durdurdu
Son dağıtımdan bu yana bir yıldan fazla zaman geçtiyse Azure İşlevleri aniden çalışmayı durdurabilir. "deploymentMethod" içinde "RunFromPackage" ile dağıtım yaparsanız, son kullanma tarihi 1 yıl olan bir SAS oluşturulur ve uygulama yapılandırmasında "WEBSITE_RUN_FROM_PACKAGE" değeri olarak ayarlanır. Azure İşlevleri, işlev yürütmesi için paket dosyasına başvurmak üzere bu SAS'yi kullanır, dolayısıyla SAS'nin süresi dolduysa işlev yürütülmeyecektir. Bu sorunu çözmek için yeniden dağıtarak son kullanma tarihi bir yıl olan bir SAS oluşturun.
Hata: Belirtilen desene sahip paket bulunamadı
Görevde bahsedilen paketin derlemede veya önceki bir aşamada yapıt olarak yayımlanıp yayımlanmadığı ve geçerli işe indirilip indirilmediğini denetleyin.
Hata: Zip dağıtımı kullanarak yayımlama seçeneği msBuild paket türü için desteklenmiyor
MSBuild görevi aracılığıyla oluşturulan web paketleri (varsayılan bağımsız değişkenlerle) yalnızca Web Dağıtımı tarafından doğru dağıtılabilir iç içe bir klasör yapısına sahiptir. Bu paketleri dağıtmak için zip'e yayımla dağıtım seçeneği kullanılamaz. Paketleme yapısını dönüştürmek için şu adımları izleyin:
Çözüm oluşturma görevinde,
MSBuild Bağımsız Değişkenleri'ni olarak değiştirin: Arşiv görevi ekleyin ve değerleri aşağıdaki gibi değiştirin:
arşivleye
Kök klasör veya dosyayı olarak değiştirin. Yolları arşivle için ön ekli kök klasör adını
onay kutusunu temizleyin: arşiv değerlerini gösteren ekran görüntüsü
SSS
AzureWebApp
ile AzureRmWebAppDeployment
görevleri arasındaki fark nedir?
Azure Web App görevi (AzureWebApp
), Azure Web App'e dağıtmanın en basit yoludur. Varsayılan olarak, dağıtımınız Azure Web App'teki kök uygulamaya gerçekleşir.
azure app service dağıtma görevi (
- Web paketleri ve XML parametre dosyalarının içinde yapılandırma ayarlarını değiştirin.
- IIS dağıtım işlemine alışkınsanız web dağıtımıile dağıtma
. - sanal uygulamalara dağıtma.
- Kapsayıcı uygulamaları, İşlev uygulamaları, Web İşleri veya API ve Mobil uygulamalar gibi diğer uygulama türlerine dağıtın.
Not
Dosya dönüşümleri ve değişken değiştirme, Azure Pipelines'da kullanılmak üzere ayrı
Windows'ta web uygulaması dağıtımı başarılı ancak uygulama çalışmıyor
Bunun nedeni web.config uygulamanızda mevcut olmaması olabilir. Uygulama ve Yapılandırma Ayarlarıkullanarak kaynağınıza bir web.config dosyası ekleyebilir veya otomatik olarak oluşturabilirsiniz.
Göreve tıklayın ve python, Node.js, Go ve Java uygulamalarıiçin web.config parametreleri oluştur
gidin. Parametreleri düzenlemek için diğer düğmesine
...
tıklayın.Açılan listeden uygulama türünüzü seçin.
Tamam'a tıklayın. Bu, web.configoluşturmak için gereken web.config parametrelerini doldurur.
App Service Ortamı'nda (ASE) web uygulaması dağıtımı çalışmıyor
- Azure DevOps derleme aracısının ASE'nin İç Yük Dengeleyicisi (ILB) ile aynı sanal ağda (alt ağ farklı olabilir) olduğundan emin olun. Bu, aracının Azure DevOps'tan kod çekmesini ve ASE'ye dağıtım yapmasını sağlar.
- Azure DevOps kullanıyorsanız, aracının İnternet'ten erişilebilir olması gerekmez, ancak Azure DevOps Hizmeti'ne bağlanmak için yalnızca giden erişime ihtiyacı vardır.
- Sanal Ağda dağıtılan TFS/Azure DevOps Server kullanıyorsanız aracı tamamen yalıtılabilir.
- Derleme aracısı, dağıtılması gereken Web Uygulamasının DNS yapılandırmasıyla yapılandırılmalıdır. Sanal Ağdaki özel kaynakların Azure DNS'de girdileri yoktur, bu nedenle bunun aracı makinesindeki konağın dosyasına eklenmesi gerekir.
- ASE yapılandırması için otomatik olarak imzalanan bir sertifika kullanılıyorsa, MSDeploy için dağıtım görevinde
-allowUntrusted
seçeneğinin ayarlanması gerekir. ayrıcaVSTS_ARM_REST_IGNORE_SSL_ERRORS
değişkeninitrue
olarak ayarlamanız önerilir. ASE yapılandırması için sertifika yetkilisinden bir sertifika kullanılıyorsa, bu gerekli olmamalıdır.
Hizmet bağlantımı nasıl yapılandırmalıyım?
Bu görev,
Application Insights ile web işi dağıtımlarını nasıl yapılandırmalıyım?
App Service'e dağıtım yaparken, Application Insights yapılandırdıysanız ve Remove additional files at destination
etkinleştirdiyseniz Exclude files from the App_Data folder
'yi de etkinleştirmeniz gerekir. Bu seçeneğin etkinleştirilmesi, Application Insights uzantısının güvenli durumda kalmasını sağlar. Application Insights sürekli Web İşi App_Data klasörüne yüklendiğinden bu adım gereklidir.
App Service'e dağıtım yaparken ara sunucu arkasındaysa aracımı nasıl yapılandırmalıyım?
Şirket içinde barındırılan aracınız bir web ara sunucusu gerektiriyorsa, aracıyı yapılandırma sırasında ara sunucu hakkında bilgilendirebilirsiniz. Bunun yapılması, aracınızın ara sunucu aracılığıyla Azure Pipelines'a veya Azure DevOps Server'a bağlanmasına olanak tanır. Web proxyarkasında şirket içinde barındırılan aracı çalıştırma hakkında daha fazla bilgi edinin.
Örnekler
Aşağıda, Web uygulamasını Windows üzerinde çalışan Azure Web App Service'e dağıtmak için örnek bir YAML kod parçacığı verilmiştir.
variables:
azureSubscription: Contoso
# To ignore SSL error uncomment the below variable
# VSTS_ARM_REST_IGNORE_SSL_ERRORS: true
steps:
- task: AzureWebApp@1
displayName: Azure Web App Deploy
inputs:
azureSubscription: $(azureSubscription)
appName: samplewebapp
package: $(System.DefaultWorkingDirectory)/**/*.zip
Linux'ta Web App dağıtmak için appType
parametresini ekleyin ve appType: webAppLinux
olarak ayarlayın.
Dağıtım yöntemini Zip Deploy olarak belirtmek için parametresini deploymentMethod: zipDeploy
ekleyin. Bu parametre için desteklenen başka bir değer de runFromPackage
.
Belirtilmezse, auto
varsayılan değerdir.
Gereksinim -leri
Gereksinim | Açıklama |
---|---|
İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
Üzerinde çalışır | Agent, DeploymentGroup |
Talepleri | Hiç kimse |
Özellikleri | Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz. |
Komut kısıtlamaları | Herhangi |
Ayarlanabilir değişkenleri | Herhangi |
Aracı sürümü | 2.209.0 veya üzeri |
Görev kategorisi | Dağıtmak |
Gereksinim | Açıklama |
---|---|
İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
Üzerinde çalışır | Agent, DeploymentGroup |
Talepleri | Hiç kimse |
Özellikleri | Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz. |
Komut kısıtlamaları | Herhangi |
Ayarlanabilir değişkenleri | Herhangi |
Aracı sürümü | 2.104.1 veya üzeri |
Görev kategorisi | Dağıtmak |