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.
Docker, Java, .NET, .NET Core, Node.js, PHP, Python veya Ruby kullanarak Azure App Service'e bir web, mobil veya API uygulaması dağıtın.
Sözdizimi
# Azure App Service deploy v5
# Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby.
- task: AzureRmWebAppDeployment@5
inputs:
ConnectionType: 'AzureRM' # 'AzureRM' | 'PublishProfile'. Required. Connection type. Default: AzureRM.
azureSubscription: # string. Alias: ConnectedServiceName. Required when ConnectionType = AzureRM. Azure subscription.
#PublishProfilePath: '$(System.DefaultWorkingDirectory)/**/*.pubxml' # string. Required when ConnectionType = PublishProfile. Publish profile path. Default: $(System.DefaultWorkingDirectory)/**/*.pubxml.
#PublishProfilePassword: # string. Required when ConnectionType = PublishProfile. Publish profile password.
appType: 'webApp' # 'webApp' | 'webAppLinux' | 'webAppContainer' | 'webAppHyperVContainer' | 'functionApp' | 'functionAppLinux' | 'functionAppContainer' | 'apiApp' | 'mobileApp'. Alias: WebAppKind. Required when ConnectionType = AzureRM. App Service type. Default: webApp.
WebAppName: # string. Required when ConnectionType = AzureRM. App Service name.
#deployToSlotOrASE: false # boolean. Alias: DeployToSlotOrASEFlag. Optional. Use when ConnectionType = AzureRM && WebAppKind != "". Deploy to Slot or App Service Environment. Default: false.
#ResourceGroupName: # string. Required when DeployToSlotOrASEFlag = true. Resource group.
#SlotName: 'production' # string. Required when DeployToSlotOrASEFlag = true. Slot. Default: production.
#DockerNamespace: # string. Required when WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer. Registry or Namespace.
#DockerRepository: # string. Required when WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer. Image.
#DockerImageTag: # string. Optional. Use when WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer. Tag.
#VirtualApplication: # string. Optional. Use when WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != "". Virtual application.
#packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Alias: Package. Required when ConnectionType = PublishProfile || WebAppKind = webApp || WebAppKind = apiApp || WebAppKind = functionApp || WebAppKind = mobileApp || WebAppKind = webAppLinux || webAppKind = functionAppLinux. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
#RuntimeStack: # 'DOTNETCORE|9.0' | 'DOTNETCORE|8.0' | 'DOTNETCORE|7.0' | 'DOTNETCORE|6.0' | 'NODE|22-lts' | 'NODE|20-lts' | 'NODE|18-lts' | 'NODE|16-lts' | 'PYTHON|3.13' | 'PYTHON|3.12' | 'PYTHON|3.11' | 'PYTHON|3.10' | 'PYTHON|3.9' | 'PYTHON|3.8' | 'PHP|8.3' | 'PHP|8.2' | 'PHP|8.1' | 'PHP|8.0' | 'JAVA|21-java21' | 'JAVA|17-java17' | 'JAVA|11-java11' | 'JAVA|8-jre8' | 'JBOSSEAP|8-java17' | 'JBOSSEAP|8-java11' | 'JBOSSEAP|7-java17' | 'JBOSSEAP|7-java11' | 'JBOSSEAP|7-java8' | 'TOMCAT|10.1-java21' | 'TOMCAT|10.1-java17' | 'TOMCAT|10.1-java11' | 'TOMCAT|10.0-java17' | 'TOMCAT|10.0-java11' | 'TOMCAT|10.0-jre8' | 'TOMCAT|9.0-java21' | 'TOMCAT|9.0-java17' | 'TOMCAT|9.0-java11' | 'TOMCAT|9.0-jre8' | 'TOMCAT|8.5-java11' | 'TOMCAT|8.5-jre8'. Optional. Use when WebAppKind = webAppLinux. Runtime Stack.
#RuntimeStackFunction: # 'DOTNET|2.2' | 'DOTNET|3.1' | 'JAVA|8' | 'JAVA|11' | 'NODE|8' | 'NODE|10' | 'NODE|12' | 'NODE|14' | 'PYTHON|3.6' | 'PYTHON|3.7' | 'PYTHON|3.8'. Optional. Use when WebAppKind = functionAppLinux. Runtime Stack.
#StartupCommand: # string. Optional. Use when WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppKind = webAppHyperVContainer. Startup command.
# Post Deployment Action
#ScriptType: # 'Inline Script' | 'File Path'. Optional. Use when ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer. Deployment script type.
#InlineScript: ':: You can provide your deployment commands here. One command per line.' # string. Required when ScriptType == Inline Script && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer. Inline Script. Default: :: You can provide your deployment commands here. One command per line..
#ScriptPath: # string. Required when ScriptType == File Path && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer. Deployment script path.
# File Transforms & Variable Substitution Options
#WebConfigParameters: # string. Optional. Use when WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps.
#enableXmlTransform: false # boolean. Alias: XmlTransformation. Optional. Use when WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML transformation. Default: false.
#enableXmlVariableSubstitution: false # boolean. Alias: XmlVariableSubstitution. Optional. Use when WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML variable substitution. Default: false.
#JSONFiles: # string. Optional. Use when WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. JSON variable substitution.
# Application and Configuration Settings
#AppSettings: # string. Optional. Use when ConnectionType = AzureRM. App settings.
#ConfigurationSettings: # string. Optional. Use when ConnectionType = AzureRM. Configuration settings.
# Additional Deployment Options
#enableCustomDeployment: false # boolean. Alias: UseWebDeploy. Optional. Use when ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Select deployment method. Default: false.
#DeploymentType: 'webDeploy' # 'webDeploy' | 'zipDeploy' | 'runFromZip'. Required when UseWebDeploy == true && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: webDeploy.
#TakeAppOfflineFlag: true # boolean. Optional. Use when UseWebDeploy == true && DeploymentType != runFromZip && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Take App Offline. Default: true.
#SetParametersFile: # string. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. SetParameters file.
#RemoveAdditionalFilesFlag: false # boolean. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Remove additional files at destination. Default: false.
#ExcludeFilesFromAppDataFlag: true # boolean. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Exclude files from the App_Data folder. Default: true.
#AdditionalArguments: '-retryAttempts:6 -retryInterval:10000' # string. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Additional arguments. Default: -retryAttempts:6 -retryInterval:10000.
#RenameFilesFlag: true # boolean. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Rename locked files. Default: true.
# Additional Deployment Options
#DeploymentTypeLinux: 'oneDeploy' # 'oneDeploy' | 'zipDeploy'. Required when ConnectionType = AzureRM && WebAppKind = webAppLinux. Deployment method. Default: oneDeploy.
#CleanDeploymentFlag: true # boolean. Optional. Use when DeploymentTypeLinux == oneDeploy && ConnectionType = AzureRM && WebAppKind = webAppLinux. Enable clean deployment. Default: true.
Girişler
ConnectionType
-
Bağlantı türü
string
. Gerekli. İzin verilen değerler: AzureRM
(Azure Resource Manager), PublishProfile
(Yayımlama Profili). Varsayılan değer: AzureRM
.
Web Uygulamasını dağıtmak için kullanılacak hizmet bağlantı türünü belirtin.
Visual Studio tarafından oluşturulan
Azure aboneliği
Giriş diğer adı: ConnectedServiceName
.
string
.
ConnectionType = AzureRM
gerekir.
Dağıtım için Azure Resource Manager aboneliğini belirtin.
profil yolunu yayımlama
string
.
ConnectionType = PublishProfile
gerekir. Varsayılan değer: $(System.DefaultWorkingDirectory)/**/*.pubxml
.
Visual Studio'dan oluşturulan yayımlama profilinin yolu.
profil parolasını yayımlama
string
.
ConnectionType = PublishProfile
gerekir.
Parolayı bir gizli dizi değişkeninde depolamanız ve bu değişkeni burada kullanmanız önerilir; örneğin $(Password)
.
App Service türü
Giriş diğer adı: WebAppKind
.
string
.
ConnectionType = AzureRM
gerekir. İzin verilen değerler: webApp
(Windows'ta Web Uygulaması), webAppLinux
(Linux'ta Web App), webAppContainer
(Kapsayıcılar için Web App (Linux)), webAppHyperVContainer
(Kapsayıcılar için Web App (Windows)), functionApp
(Windows'ta İşlev Uygulaması (Önerilmez, Azure İşlevleri Görevini Kullan)), functionAppLinux
(Linux'ta İşlev Uygulaması (Önerilmez, Azure İşlevleri Görevini Kullanma)), functionAppContainer
(Kapsayıcılar için İşlev Uygulaması (Linux) (Önerilmez, Kapsayıcı Görevi için Azure İşlevlerini Kullanma)), apiApp
(API Uygulaması), mobileApp
(Mobil Uygulama). Varsayılan değer: webApp
.
Windows'ta Web Uygulaması, Linux'ta Web Uygulaması, Kapsayıcılar için Web Uygulaması, İşlev Uygulaması, Linux'ta İşlev Uygulaması, Kapsayıcılar için İşlev Uygulaması ve Mobil Uygulama arasından seçim yapın.
App Service adı
string
.
ConnectionType = AzureRM
gerekir.
Mevcut bir Azure App Service'in adını belirtin. Seçili uygulama türüne dayalı uygulama hizmetleri yalnızca görev yardımcısı kullanılırken listelenir.
deployToSlotOrASE
-
Yuvaya veya App Service Ortamına Dağıtma
Giriş diğer adı: DeployToSlotOrASEFlag
.
boolean
. Opsiyonel.
ConnectionType = AzureRM && WebAppKind != ""
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 belirtin. Her iki hedef için de görev bir Kaynak Grubu adı gerektirir.
Dağıtım hedefi bir yuvaysa, dağıtım varsayılan olarak Üretim yuvasına yapılır. Diğer tüm mevcut yuva adları sağlanabilir.
Dağıtım hedefi bir Azure App Service ortamıysa yuva adını Production
olarak bırakın ve yalnızca Kaynak Grubu adını belirtin.
kaynak grubu
string
.
DeployToSlotOrASEFlag = true
gerekir.
Dağıtım hedefi bir dağıtım yuvası veya App Service Ortamı olduğunda Kaynak grubu adı gereklidir.
Yukarıda belirtilen Azure App Service'i içeren Azure Kaynak grubunu belirtin.
SlotName
-
Yuvası
string
.
DeployToSlotOrASEFlag = true
gerekir. Varsayılan değer: production
.
Üretim yuvası dışında var olan bir yuva belirtin.
DockerNamespace
-
Kayıt Defteri veya Ad Alanı
string
.
WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer
gerekir.
Özel kayıt defteriniz veya ad alanınız için genel olarak benzersiz bir üst düzey etki alanı adı. Not: Tam resim adı şu biçimde olacaktır: {registry or namespace}/{repository}:{tag}
. Örneğin, myregistry.azurecr.io/nginx:latest
.
DockerRepository
-
Resim
string
.
WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer
gerekir.
Kapsayıcı görüntülerinin depolandığı deponun adı. Not: Tam resim adı şu biçimde olacaktır: {registry or namespace}/{repository}:{tag}
. Örneğin, myregistry.azurecr.io/nginx:latest
.
DockerImageTag
-
Etiketi
string
. Opsiyonel.
WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer
olduğunda kullanın.
Etiketler, kayıt defterlerinin Docker görüntülerine sürüm bilgilerini uygulamak için kullandığı mekanizmadır. Not: Tam resim adı şu biçimde olacaktır: {registry or namespace}/{repository}:{tag}
. Örneğin, myregistry.azurecr.io/nginx:latest
.
sanal uygulama
string
. Opsiyonel.
WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != ""
olduğunda kullanın.
Azure portalında yapılandırılan Sanal Uygulamanın adını belirtin. Web sitesi köküne yapılan dağıtımlar için bu seçenek gerekli değildir. Sanal Uygulama, web projesinin dağıtımından önce yapılandırılmış olmalıdır.
Paket veya klasör
Giriş diğer adı: Package
.
string
.
ConnectionType = PublishProfile || WebAppKind = webApp || WebAppKind = apiApp || WebAppKind = functionApp || WebAppKind = mobileApp || WebAppKind = webAppLinux || webAppKind = functionAppLinux
gerekir. Varsayılan değer: $(System.DefaultWorkingDirectory)/**/*.zip
.
Paketin veya MSBuild tarafından oluşturulan app service içeriklerini içeren bir klasörün ya da sıkıştırılmış zip veya savaş dosyasının dosya yolu.
Değişkenler Derleme ve
Örneğin, $(System.DefaultWorkingDirectory)/\*\*/\*.zip
veya $(System.DefaultWorkingDirectory)/\*\*/\*.war
.
RuntimeStack
-
Çalışma Zamanı Yığını
string
. Opsiyonel.
WebAppKind = webAppLinux
olduğunda kullanın. İzin verilen değerler: DOTNETCORE|9.0
(.NET 9.0), DOTNETCORE|8.0
(.NET 8.0), DOTNETCORE|7.0
(.NET 7.0), DOTNETCORE|6.0
(.NET 6.0), NODE|22-lts
(Node 22 LTS), NODE|20-lts
(Node 20 LTS), NODE|18-lts
(Node 18 LTS), NODE|16-lts
(Node 16 LTS), PYTHON|3.13
(Python 3.13), PYTHON|3.12
(Python 3.12), PYTHON|3.11
(Python 3.11), PYTHON|3.10
(Python 3.10), PYTHON|3.9
(Python 3.9), PYTHON|3.8
(Python 3.8), PHP|8.3
(PHP 8.3), PHP|8.2
(PHP 8.2), PHP|8.1
(PHP 8.1), PHP|8.0
(PHP 8.0), JAVA|21-java21
(Java 21), JAVA|17-java17
(Java 17), JAVA|11-java11
(Java 11), JAVA|8-jre8
(Java 8), JBOSSEAP|8-java17
(JBoss EAP 8 (Java 17)), JBOSSEAP|8-java11
(JBoss EAP 8 (Java 11)), JBOSSEAP|7-java17
(JBoss EAP 7 (Java 17)), JBOSSEAP|7-java11
(JBoss EAP 7 (Java 11)), JBOSSEAP|7-java8
(JBoss EAP 7 (Java 8)), TOMCAT|10.1-java21
(Tomcat 10.1 (Java 21)), TOMCAT|10.1-java17
(Tomcat 10.1 (Java 17)), TOMCAT|10.1-java11
(Tomcat 10.1 (Java 11)), TOMCAT|10.0-java17
(Tomcat 10.0 (Java 17)), TOMCAT|10.0-java11
(Tomcat 10.0 (Java 11)), TOMCAT|10.0-jre8
(Tomcat 10.0 (Java 8)), TOMCAT|9.0-java21
(Tomcat 9.0 (Java 21)), TOMCAT|9.0-java17
(Tomcat 9.0 (Java 17)), TOMCAT|9.0-java11
(Tomcat 9.0 (Java 11)), TOMCAT|9.0-jre8
(Tomcat 9.0 (Java 8)), TOMCAT|8.5-java11
(Tomcat 8.5 (Java 11)), TOMCAT|8.5-jre8
(Tomcat 8.5 (Java 8)).
Çerçeveyi ve sürümü belirtin.
RuntimeStackFunction
-
Çalışma Zamanı Yığını
string
. Opsiyonel.
WebAppKind = functionAppLinux
olduğunda kullanın. İzin verilen değerler: DOTNET|2.2
(DOTNET|2.2 (functionapp v2)), DOTNET|3.1
(DOTNET|3.1 (functionapp v3)), JAVA|8
(JAVA|8 (functionapp v2/v3)), JAVA|11
(JAVA|11 (functionapp v3)), NODE|8
(NODE|8 (functionapp v2)), NODE|8
(NODE|8 (functionapp v2)), NODE|12
(NODE|10 (functionapp v2/v3)), NODE|14
(NODE|12 (functionapp v3)), PYTHON|3.6
(NODE|14 (functionapp v3)), PYTHON|3.7
(PYTHON|3.6 (functionapp v2/v3)), PYTHON|3.8
(PYTHON|3.7 (functionapp v2/v3)), (PYTHON|3.8 (functionapp v3)).
Çerçeveyi ve sürümü belirtin. Desteklenen çalışma zamanı sürümleri için Azure İşlevleri çalışma zamanı sürümlerine genel bakış bakın.
DOCKER|microsoft/azure-functions-*
gibi eski değerler kullanım dışıdır. Lütfen açılan listeden yeni değerleri kullanın.
başlangıç komutu
string
. Opsiyonel.
WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppKind = webAppHyperVContainer
olduğunda kullanın.
Başlangıç komutunu belirtin. Örneğin:
dotnet exec filename.dll
dotnet filename.dll
.
ScriptType
-
Dağıtım betiği türü
string
. Opsiyonel.
ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer
olduğunda kullanın. İzin verilen değerler: Inline Script
, File Path
(Betik Dosyası Yolu).
Başarılı bir dağıtımdan sonra Azure App Service'te çalışan bir betik sağlayarak dağıtımı özelleştirir. Satır içi dağıtım betiğini veya bir betik dosyasının yolunu ve adını seçin. azure app service dağıtım
Satır içi Betik
string
.
ScriptType == Inline Script && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer
gerekir. Varsayılan değer: :: You can provide your deployment commands here. One command per line.
.
Yürütülecek betik. Dağıtım komutlarınızı burada, satır başına bir komut olarak sağlayabilirsiniz. Aşağıdaki örneğe bakın.
ScriptPath
-
Dağıtım betik yolu
string
.
ScriptType == File Path && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer
gerekir.
Yürütülecek betiğin yolu ve adı.
WebConfigParameters
-
Python, Node.js, Go ve Java uygulamaları için web.config parametreleri oluşturma
string
. Opsiyonel.
WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && 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 düzenlenebilir ve uygulama çerçevesine göre farklılık gösterebilir. Örneğin, node.js
uygulamalar 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.config
içindir. azure app service dağıtım
uygulama ayarlarını
string
. Opsiyonel.
ConnectionType = AzureRM
olduğunda kullanın.
web uygulaması ayarlarını -key value
söz dizimini kullanarak düzenler. Boşluk içeren değerler çift tırnak içine alınmalıdır. Örnekler: -Port 5000 -RequestTimeout 5000
ve -WEBSITE_TIME_ZONE "Eastern Standard Time"
. İki veya daha fazla anahtar değeri sağlamak için anahtar değerleri boşlukla ayrılmalıdır. Örnek: -key1 "Value1" -Key2 "Value2"
.
ConfigurationSettings
-
Yapılandırma ayarları
string
. Opsiyonel.
ConnectionType = AzureRM
olduğunda kullanın.
web uygulaması yapılandırma ayarlarını -key value
söz dizimini kullanarak düzenler. Boşluk içeren değerler çift tırnak içine alınmalıdır. Örnek: -phpVersion 5.6 -linuxFxVersion node|6.11
.
enableCustomDeployment
-
Dağıtım yöntemini seçme
Giriş diğer adı: UseWebDeploy
.
boolean
. Opsiyonel.
ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar
olduğunda kullanın. Varsayılan değer: false
.
İşaretsiz veya yanlış ise, görev uygulama türüne, paket biçimine ve diğer parametrelere göre en iyi dağıtım yöntemini otomatik olarak algılar. Desteklenen dağıtım yöntemlerini görüntülemek için görev yardımcısında bu seçeneği işaretleyin ve uygulamanızı dağıtmak için birini seçin.
DeploymentType
-
Dağıtım yöntemi
string
.
UseWebDeploy == true && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar
gerekir. İzin verilen değerler: webDeploy
(Web Dağıtımı), zipDeploy
(Zip Dağıtımı), runFromZip
(Paketten Çalıştır). Varsayılan değer: webDeploy
.
Uygulamanın dağıtım yöntemini belirler.
uygulamayı çevrimdışına TakeAppOfflineFlag
-
boolean
. Opsiyonel.
UseWebDeploy == true && DeploymentType != runFromZip && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar
olduğunda kullanın. Varsayılan değer: true
.
Eşitleme işlemi başlamadan önce kök dizine bir app_offline.htm
dosyası yerleştirerek Azure App Service'i çevrimdışına almak için bu seçeneği belirtin. Eşitleme başarıyla tamamlandıktan sonra dosya kaldırılır.
SetParameters dosyası
string
. Opsiyonel.
UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar
olduğunda kullanın.
Kullanılacak SetParameters.xml
dosyasının konumu.
RemoveAdditionalFilesFlag
-
Hedef ek dosyaları kaldırma
boolean
. Opsiyonel.
UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar
olduğunda kullanın. Varsayılan değer: false
.
Azure App Service'te App Service paketinde veya klasöründe eşleşen dosyası olmayan dosyaları silmek için 'true' değerini belirtin. Bu, bu Azure App Service'te yüklü uzantılarla ilgili tüm dosyaları da kaldırır. Bunu önlemek için Exclude files from App_Data folder
onay kutusunu seçin.
ExcludeFilesFromAppDataFlag
-
Dosyaları App_Data klasöründen dışlama
boolean
. Opsiyonel.
UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar
olduğunda kullanın. Varsayılan değer: true
.
App_Data
klasöründeki dosyaların Azure App Service'e dağıtılmasını/silinmesini önleme seçeneğini belirtin.
AdditionalArguments
-
Ek bağımsız değişkenler
string
. Opsiyonel.
UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar
olduğunda kullanın. Varsayılan değer: -retryAttempts:6 -retryInterval:10000
.
söz dizimini izleyen ek Web Dağıtımı bağımsız değişkenleri -key:value
. Bunlar Azure App Service dağıtılırken uygulanır. Örnekler: -disableLink:AppPoolExtension -disableLink:ContentExtension
.
Web Dağıtımı İşlem Ayarlarıhakkında daha fazla bilgi edinin.
kilitli dosyaları yeniden adlandırma
boolean
. Opsiyonel.
UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar
olduğunda kullanın. Varsayılan değer: true
.
Azure App Service uygulama ayarlarında msdeploy bayrağı MSDEPLOY_RENAME_LOCKED_FILES=1
etkinleştirmek için varsayılan değeri belirtin. Ayarlanırsa, bu seçenek msdeploy'un uygulama dağıtımı sırasında kilitlenen dosyaları yeniden adlandırmasını sağlar.
XML dönüştürme
Giriş diğer adı: XmlTransformation
.
boolean
. Opsiyonel.
WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war
olduğunda kullanın. Varsayılan değer: false
.
Yapılandırma dönüşümleri *.Release.config
*.<EnvironmentName>.config
ve *.config file
için çalıştırılır. Yapılandırma dönüştürmeleri değişken değiştirmeden önce çalıştırılır.
XML dönüştürmeleri yalnızca Windows platformu için desteklenir.
XML değişken değiştirme
Giriş diğer adı: XmlVariableSubstitution
.
boolean
. Opsiyonel.
WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war
olduğunda kullanın. Varsayılan değer: false
.
Derleme veya yayın işlem hattında tanımlanan değişkenler, herhangi bir yapılandırma dosyasının ve configSections
dosyasının appSettings
, applicationSettings
, connectionStrings
ve parameters.xml
bölümlerindeki anahtar veya ad girdileriyle eşleştirilir. Değişken değiştirme, yapılandırma dönüştürmelerinden sonra çalışır.
Yayın işlem hattında ve aşamada aynı değişkenler tanımlanmışsa, aşama değişkenleri yayın işlem hattı değişkenlerinin yerini alır. [XML değişkeni değiştirme]](/azure/devops/pipelines/tasks/transforms-variable-substitution#xml-variable-substitution) hakkında daha fazla bilgi edinin.
JSON değişken değiştirme
string
. Opsiyonel.
WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war
olduğunda kullanın.
Değişken değerlerini değiştirmek için JSON dosyalarının satırla ayrılmış yeni bir listesini sağlar. Dosya adları kök klasöre göre olmalıdır. İç içe veya hiyerarşik JSON değişkenlerini değiştirmek için bunları JSONPath
ifadeleri kullanarak belirtin. Örneğin, aşağıdaki örnekteki ConnectionString
değerini değiştirmek için derleme veya yayın işlem hattında (veya yayın işlem hatları aşamasında) Data.DefaultConnection.ConnectionString
adlı bir değişken tanımlayın.
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
Değişken değiştirme, yapılandırma dönüştürmelerinden sonra çalışır. Not: Derleme ve yayın işlem hattı değişkenleri değiştirmenin dışında tutulur. JSON değişken değiştirme
DeploymentTypeLinux
-
Dağıtım yöntemi
string
.
ConnectionType = AzureRM && WebAppKind = webAppLinux
gerekir. İzin verilen değerler: oneDeploy
(One Deploy), zipDeploy
(Zip Deploy). Varsayılan değer: oneDeploy
.
Uygulama için dağıtım yöntemini seçin.
One Deploy , Temiz dağıtımı etkinleştir (CleanDeploymentFlag
) görev girişi kullanılarak yapılandırılabilen hem temiz (varsayılan) hem de artımlı dağıtım seçeneklerini destekler. Artımlı dağıtım ayarlarını etkinleştirmek için Temiz dağıtımı etkinleştir (CleanDeploymentFlag
) seçeneğini false
ayarlayın; varsayılan değer şudur: true
.
CleanDeploymentFlag
-
Temiz dağıtımı etkinleştir
boolean
. Opsiyonel.
DeploymentTypeLinux == oneDeploy && ConnectionType = AzureRM && WebAppKind = webAppLinux
olduğunda kullanın. Varsayılan değer: true
.
Tam eşitleme (temiz) dağıtım için dağıtım modu.
Görev denetim seçenekleri
Tüm görevlerde 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 App Service'in Uygulama URL'sini .
Açıklamalar
Uyarı
Sürüm 5'te yeni olan : AzureRmWebAppDeployment
:
-
One Deploy
Linux App Service desteği. Daha fazla bilgi için aşağıdaki Bir Dağıtım bölümüne bakın.
- görev için
Önkoşulları - Kullanım notları
- Dağıtım yöntemleri
- Sorun giderme
- SSS
Azure'da bir dizi Uygulama Hizmeti'ne dağıtmak için bu görevi kullanın.
Görev, Windows, Linux veya Mac çalıştıran platformlar arası aracılarda çalışır vebirkaç farklı
Görev ASP.NET, ASP.NET Core, PHP, Java, Python, Gove Node.js tabanlı web uygulamaları için çalışır.
Görev, aşağıdakiler gibi bir dizi Azure App Services'e dağıtmak için kullanılabilir:
- Hem Windows hem de Linux Web Apps'i
- Kapsayıcılar için Web Apps
- Hem Windows hem de Linux İşlev Uygulamalarını
- Kapsayıcılar için İşlev Uygulamaları
- Web İşleri
- Azure App Service Ortamları
altında yapılandırılan uygulamalar
Görev için önkoşullar
Görevin düzgün çalışması için hedef makinelerde aşağıdaki önkoşullar ayarlanmalıdır.
app service örneğini
. Görev, bir Web Uygulaması projesini veya Azure İşlevi projesini, görev çalışmadan önce var olması gereken mevcut bir Azure App Service örneğine dağıtmak için kullanılır. App Service örneği Azure portal oluşturulabilir ve orada yapılandırılabilir . Alternatif olarak, Azure PowerShell görev Web Uygulamasını sağlamak ve yapılandırmak içinAzure PowerShell betiklerini çalıştırmak için kullanılabilir. azure aboneliği
. Azure'a dağıtmak için azure aboneliğinin işlem hattına bağlıolması gerekir. Görev, Klasik Azure hizmet bağlantısıyla çalışmaz ve bu bağlantıları görevin ayarlarında listelemez.
Kullanım notları
- Görev yalnızca
Azure Resource Manager API'leriyle çalışır. - SSL hatalarını yoksaymak için işlem hattında
VSTS_ARM_REST_IGNORE_SSL_ERRORS
değeriyletrue
adlı bir değişken tanımlayın. Otomatik değiştirme için yapılandırılmış bir yuvaya dağıtıyorsanız, uygulama hizmetleri yapılandırma ayarlarındaSCM_SKIP_SSL_VALIDATION
veyaSCM_SKIP_ASE_SSL_VALIDATION
1
olarak ayarlamadığınız sürece değiştirme işlemi başarısız olur. - Windows'da Web Uygulamasını hedefleyen .NET uygulamaları için,
ERROR_FILE_IN_USE
ve Uygulamayı Çevrimdışına Al ayarlarının etkinleştirildiğinden emin olarak hata dağıtım hatasını önleyin. Sıfır kapalı kalma süresi dağıtımı için yuva değiştirme seçeneğini kullanın. - Application Insights'ın yapılandırılmış olduğu bir App Service'e dağıtım yaparken ve hedefek dosyaları kaldırma
etkinleştirdiğinizde, Application Insights uzantısını güvenli bir durumda tutmak için Dosyaları App_Data klasöründen dışla 'ı da etkinleştirdiğinizden emin olun. Application Insights sürekli web işi App_Data klasörüne yüklendiğinden bu gereklidir.
Dağıtım yöntemleri
Bu görevde çeşitli dağıtım yöntemleri kullanılabilir. Web Dağıtımı (msdeploy.exe) varsayılandır.
Dağıtım seçeneğini değiştirmek için Ek Dağıtım Seçenekleri
Azure App Service ve aracı türüne bağlı olarak, görev uygun bir dağıtım teknolojisi seçer. Görev tarafından kullanılan farklı dağıtım teknolojileri şunlardır:
- web dağıtımı
- kudu REST API'lerini
- Konteyner Kaydı
- Zip Dağıtımı
- Tek Dağıtım
- Paketten Çalıştır
- Savaş Dağıtımı
Varsayılan olarak, görev giriş paketi türüne, App Service türüne ve aracı işletim sistemine göre uygun dağıtım teknolojisini seçmeye çalışır.
Mantığı Otomatik Algıla
Windows tabanlı aracılar için.
App Service türü | Paket türü | Dağıtım Yöntemi |
---|---|---|
Linux üzerinde WebApp veya Linux'ta İşlev Uygulaması | Klasör/Zip/jar Savaşı |
Zip Dağıtımı Savaş Dağıtımı |
Kapsayıcılar için WebApp (Linux) veya Kapsayıcılar için İşlev Uygulaması (Linux) | Uygulama ayarlarını güncelleştirme | NA |
Windows üzerinde WebApp, Windows'ta İşlev Uygulaması, API Uygulaması veya Mobil Uygulama | War Jar MsBuild paket türü veya Folder/Zip sanal uygulamasına dağıtma |
Savaş Konuşlandırma Zip Dağıtma Web Dağıtımı if postDeploymentScript == true, Zip Deploy else, Run From Package |
Windows olmayan aracılarda (herhangi bir App Service türü için), görev uygulamayı dağıtmak için
Web Dağıtımı
Web Dağıtımı (msdeploy.exe), Bir Windows aracısını kullanarak Windows'ta bir Web Uygulaması veya İşlev Uygulaması'nı Azure App Service'e dağıtmak için kullanılabilir. Web Dağıtımı özellik açısından zengindir ve aşağıdakiler gibi seçenekler sunar:
Kilitli dosyaları yeniden adlandırın: Azure App Service ayarlarında msdeploy bayrağı
MSDEPLOY\_RENAME\_LOCKED\_FILES=1
etkinleştirerek web sunucusu tarafından hala kullanımda olan tüm dosyaları yeniden adlandırın. Bu seçenek ayarlanırsa, msdeploy'un uygulama dağıtımı sırasında kilitlenen dosyaları yeniden adlandırmasını sağlar.Hedefte ek dosyaları kaldır: Dağıtılmakta olan App Service yapıt paketinde veya klasöründe eşleşen dosyası olmayan Dosyaları Azure App Service'te siler.
Dosyaları App_Data klasöründen dışlama: App_Data klasöründeki dosyaların (dağıtılmakta olan yapıt paketinde/klasöründe) Azure App Service'e dağıtılmasını engelle
Ek Web Dağıtımı bağımsız değişkenleri: Azure App Service dağıtılırken uygulanacak Bağımsız Değişkenleri. Örnek:
-disableLink:AppPoolExtension -disableLink:ContentExtension
. Web Dağıtımı işlem ayarlarına daha fazla örnek için bkz. Web Dağıtımı İşlem Ayarları.
Web Dağıtımı 3.6'den aracıya Web Dağıtımı'nı yükleyin. Web Dağıtımı 3.5, paketlenmiş SQL desteği olmadan yüklenmelidir. Web Dağıtımı'nı yüklerken herhangi bir özel ayar seçmenize gerek yoktur. Web Dağıtımı, C:/Program Files (x86)/IIS/Microsoft Web Deploy V3
konumunda yüklenir.
Kudu REST API'leri
Kudu REST API'leri hedef Windows'da bir Web Uygulaması, Linux üzerinde Web App (yerleşik kaynak) veya İşlev Uygulaması olduğunda hem Windows hem de Linux otomasyon aracıları üzerinde çalışır. Görev, Azure App Service'e dosya kopyalamak için Kudu kullanır.
Konteyner Kayıt Defteri
Hedef Kapsayıcılar için Bir Web Uygulaması olduğunda hem Windows hem de Linux otomasyon aracılarında çalışır. Görev, uygun kapsayıcı kayıt defteri, depo, görüntü adı ve etiket bilgilerini ayarlayarak uygulamayı güncelleştirir. Kapsayıcı görüntüsü için bir başlangıç komutu geçirmek için de bu görevi kullanabilirsiniz.
Zip Dağıtımı
bir .zip dağıtım paketi bekler ve dosya içeriğini Azure'daki App Service veya İşlev Uygulamasının wwwroot klasörüne dağıtır. Bu seçenek, wwwroot klasöründeki tüm mevcut içeriğin üzerine yazar. Daha fazla bilgi için Azure İşlevleri için Zip Dağıtımı bölümüne bakın.
Tek Dağıtım
Linux App Service için bir Dağıtım desteği eklendi.
Dağıtım yöntemi (oneDeploy
) için bir Deploy (zipDeploy
) veya Zip Deploy (DeploymentTypeLinux
) seçin. Varsayılan değer One Deploy (oneDeploy
) şeklindedir.
One Deploy , Temiz dağıtımı etkinleştir (CleanDeploymentFlag
) görev girişi kullanılarak yapılandırılabilen hem temiz (varsayılan) hem de artımlı dağıtım seçeneklerini destekler. Artımlı dağıtım ayarlarını etkinleştirmek için olarak false
ayarlayın; varsayılan değer şudur: true
.
Paketten çalıştırma
Zip Deploy ile aynı dağıtım paketini bekler. Ancak, wwwroot klasörüne dosya dağıtmak yerine, paketin tamamı İşlevler çalışma zamanı tarafından bağlanır ve wwwroot klasöründeki dosyalar salt okunur hale gelir. Daha fazla bilgi için bkz. Azure İşlevlerinizi bir paket dosyasından çalıştırma.
Savaş Dağıtımı
Bir .war dağıtım paketi bekler ve dosya içeriğini Azure'daki App Service'in wwwroot klasörüne veya webapps klasörüne dağıtır.
Sorun giderme
Windows aracımdan Microsoft Entra ID kimlik doğrulamasını kullanarak Azure App Service'ime Web Dağıtımıemiyorum
Azure App Service dağıtım görevi, aşağıdaki üç koşul mevcut olmadığı sürece Microsoft Entra Id kullanarak ARM hizmet bağlantısıyla Microsoft Azure'a bağlanmayı destekler:
- Windows aracısı üzerinde Web Dağıtımı paket biçimini kullanıyorsunuz
- Aracınız eski bir
msdeploy.exe sürümüyle çalışıyor (örneğin, windows-2019 barındırılan aracı görüntüsünükullanırken) - Azure App Service'iniz için temel kimlik doğrulaması devre dışı bırakıldı
Bu üç koşul varsa, App Service is configured to not use basic authentication. This requires Web Deploy msdeploy.exe version 7.1.7225.2108 or higher. You need a version of Visual Studio that includes an updated version of msdeploy.exe. For more information, visit https://aka.ms/azdo-webapp-msdeploy.
gibi bir hata alırsınız
Bu sorunu çözmek için tercih sırasına göre aşağıdaki seçenekler arasından seçim yapabilirsiniz.
- Aracı görüntüsünü güncelleştirin. Barındırılan aracılar kullanıyorsanız, windows-2019
windows-2022 (veya windows-latest) geçin. Şirket içinde barındırılan aracılar kullanıyorsanız, msdeploy.exe'in daha yeni bir sürümünü almak için aracıya Visual Studio 2022'yi yükleyin. - Eski bir aracı görüntüsüne bağımlıysanız ve işlem hattınızın aracısını güncelleştiremiyorsanız, Azure App Service dağıtım görevinin windows-2022 (veya windows-latest) üzerinde çalışması için işi bölmeyi göz önünde bulundurun.
- Bu seçeneklerden hiçbiri mümkün değilse Azure App Service'iniz için temel kimlik doğrulama
etkinleştirebilirsiniz.
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 ayrıca 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 VSTS_ARM_REST_IGNORE_SSL_ERRORS
değerine true
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 kodu
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:
Windows'ta web uygulaması dağıtımı başarılı ancak uygulama çalışmıyor
Bunun nedeni web.config uygulamanızda mevcut olmaması olabilir. Kaynağınıza bir web.config dosyası ekleyebilir veya görevin Dosya Dönüşümleri ve Değişken Değiştirme Seçenekleri'ni kullanarak otomatik olarak oluşturabilirsiniz.
Göreve tıklayın ve Python, Node.js, Go ve Java uygulamaları için web.config parametreleri oluştur'a gidin.
Parametreleri düzenlemek için Python, Node.js, Go ve Java uygulamaları için web.config parametreleri oluştur 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 parametreleri doldurur.
Uyarı
Bu bölüm kullanım dışıdır ve Dosya Dönüştürme göreviyle değiştirilmiştir.
DOSYA KULLANIMDA
.NET uygulamalarını Windows'ta Web App'e dağıtırken, ERROR_FILE_IN_USEhata koduyla dağıtım başarısız olabilir. Hatayı çözmek için,
Kaynak kilitlenmesini önlemek için Paket dağıtımdan çalıştır yöntemini de kullanabilirsiniz.
Web Dağıtımı Hatası
Uygulamanızı dağıtmak için web dağıtımı kullanıyorsanız, bazı hata senaryolarında Web Dağıtımı günlükte bir hata kodu gösterir. Web dağıtımı hatasını gidermek için bkz. Web Dağıtımı hata kodları.
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 olmadığından, bunun aracı makinesindeki hosts 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.VSTS_ARM_REST_IGNORE_SSL_ERRORS
değişkeninin true olarak ayarlanması da önerilir. ASE yapılandırması için sertifika yetkilisinden bir sertifika kullanılıyorsa, bu gerekli olmamalıdır. Otomatik değiştirme için yapılandırılmış bir yuvaya dağıtıyorsanız, uygulama hizmetleri yapılandırma ayarlarındaSCM_SKIP_SSL_VALIDATION
veyaSCM_SKIP_ASE_SSL_VALIDATION
1
olarak ayarlamadığınız sürece değiştirme işlemi başarısız olur.
Sık Sorulan Sorular
AzureWebApp
ve 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 Uygulaması Hizmet Dağıtımı görevi (AzureRmWebAppDeployment
), aşağıdakiler gibi daha fazla özel senaryoyu işleyebilir:
- 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ğıtın.
- Sanal uygulamaları dağıtın.
- Kapsayıcı uygulamaları, İşlev uygulamaları, Web İşleri veya API ve Mobil uygulamalar gibi diğer uygulama türlerine dağıtın.
Uyarı
Dosya dönüşümleri ve değişken değiştirme, Azure Pipelines'da kullanılmak üzere ayrı Dosya Dönüştürme görevi tarafından da desteklenir. Herhangi bir yapılandırma ve parametre dosyasına dosya dönüştürmeleri ve değişken değiştirmeleri uygulamak için Dosya Dönüştürme görevini kullanabilirsiniz.
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 etkinleştirdiyseniz Remove additional files at destination
öğesini de etkinleştirmeniz Exclude files from the App_Data folder
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 ara sunucusunun arkasında şirket içinde barındırılan aracı çalıştırma hakkında daha fazla bilgi edinin.
Örnekler
- Belirli bir uygulama türüne dağıtma
- Azure Web App Linux kapsayıcısına dağıtma
- Dağıtım yuvaları arasında Windows App Service'e web uygulaması dağıtma
- Örnek Dağıtım Sonrası betiği
Belirli bir uygulama türüne dağıtma
Belirli bir uygulama türüne dağıtmak için appType
şu kabul edilen değerlerden birine ayarlayın: webApp
(Windows'ta Web Uygulaması), webAppLinux
(Linux'ta Web Uygulaması), webAppContainer
(Kapsayıcılar için Web Uygulaması - Linux), functionApp
(Windows'da İşlev Uygulaması), functionAppLinux
(Linux'ta İşlev Uygulaması), functionAppContainer
(Kapsayıcılar için İşlev Uygulaması - Linux), apiApp
(API Uygulaması), mobileApp
(Mobil Uygulama). Belirtilmemişse, webApp
varsayılan değer olarak alınır.
Gelişmiş dağıtım seçeneklerini etkinleştirmek için enableCustomDeployment: true
parametresini ekleyin ve gerektiğinde aşağıdaki parametreleri ekleyin.
# deploymentMethod: 'runFromPackage' # supports zipDeploy as well
# appOffline: boolean # Not applicable for 'runFromPackage'
# setParametersFile: string
# removeAdditionalFilesFlag: boolean
# additionalArguments: string
Azure Web App Linux kapsayıcısına dağıtma
Aşağıdaki YAML örneği bir Azure Web App kapsayıcısına (Linux) dağıtılır.
pool:
vmImage: ubuntu-latest
variables:
azureSubscriptionEndpoint: Contoso
DockerNamespace: contoso.azurecr.io
DockerRepository: aspnetcore
WebAppName: containersdemoapp
steps:
- task: AzureRMWebAppDeployment@4
displayName: Azure App Service Deploy
inputs:
appType: webAppContainer
ConnectedServiceName: $(azureSubscriptionEndpoint)
WebAppName: $(WebAppName)
DockerNamespace: $(DockerNamespace)
DockerRepository: $(DockerRepository)
DockerImageTag: $(Build.BuildId)
Dağıtım yuvaları arasında Windows App Service'e web uygulaması dağıtma
Aşağıdaki örnek, bir web uygulamasını dağıtım yuvaları arasında bir Windows App Service'e dağıtır.
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
stages:
- stage: DeployDevStage
displayName: 'Deploy App to Dev Slot'
jobs:
- job: DeployApp
displayName: 'Deploy App'
steps:
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: 'drop'
targetPath: '$(System.DefaultWorkingDirectory)'
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'Fabrikam Azure Subscription - PartsUnlimited'
appType: 'webApp'
WebAppName: 'partsunlimited'
deployToSlotOrASE: true
ResourceGroupName: 'rgPartsUnlimited'
SlotName: 'Dev'
packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip'
- stage: DeployStagingStage
displayName: 'Deploy App to Staging Slot'
dependsOn: DeployDevStage
jobs:
- job: DeployApp
displayName: 'Deploy App'
steps:
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: 'drop'
targetPath: '$(System.DefaultWorkingDirectory)'
- task: AzureRmWebAppDeployment@4
inputs:
appType: webApp
ConnectionType: AzureRM
ConnectedServiceName: 'Fabrikam Azure Subscription - PartsUnlimited'
ResourceGroupName: 'rgPartsUnlimited'
WebAppName: 'partsunlimited'
Package: '$(System.DefaultWorkingDirectory)/**/*.zip'
deployToSlotOrASE: true
SlotName: 'staging'
Örnek Dağıtım Sonrası betiği
Görev, uygulamanın yapıtları App Service'e başarıyla kopyalandıktan sonra Azure App Service'te çalıştırılacak bir betik sağlayarak dağıtımı özelleştirme seçeneği sağlar. Satır içi dağıtım betiği veya yapıt klasörünüzdeki bir betik dosyasının yolunu ve adını sağlamayı seçebilirsiniz.
Uygulama bağımlılıklarınızı doğrudan App Service'e geri yüklemek istediğinizde bu çok kullanışlıdır. Node, PHP ve Python uygulamaları için paketlerin geri yüklenmesi, uygulama bağımlılığı aracıdan Azure App Service'e büyük bir yapıt kopyalandığında zaman aşımlarını önlemeye yardımcı olur.
Dağıtım betiği örneği:
@echo off
if NOT exist requirements.txt (
echo No Requirements.txt found.
EXIT /b 0
)
if NOT exist "$(PYTHON_EXT)/python.exe" (
echo Python extension not available >&2
EXIT /b 1
)
echo Installing dependencies
call "$(PYTHON_EXT)/python.exe" -m pip install -U setuptools
if %errorlevel% NEQ 0 (
echo Failed to install setuptools >&2
EXIT /b 1
)
call "$(PYTHON_EXT)/python.exe" -m pip install -r requirements.txt
if %errorlevel% NEQ 0 (
echo Failed to install dependencies>&2
EXIT /b 1
)
Gereksinimler
Gereksinim | Açıklama |
---|---|
İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
Üzerinde çalışır | Agent, DeploymentGroup |
Talep | Hiç kimse |
Özellikleri | Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz. |
Komut kısıtlamaları | Herhangi biri |
Ayarlanabilir değişkenler | Herhangi biri |
Aracı sürümü | 2.104.1 veya üzeri |
Görev kategorisi | Yerleştir |