Aracılığıyla paylaş


AzureRmWebAppDeployment@5 - Azure App Service v5 dağıtma görevi

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 Yayımlama profillerini kullanmak için belirtin.


Azure aboneliği
Giriş diğer adı: ConnectedServiceName. string. ConnectionType = AzureRMgerekir.

Dağıtım için Azure Resource Manager aboneliğini belirtin.


profil yolunu yayımlama
string. ConnectionType = PublishProfilegerekir. Varsayılan değer: $(System.DefaultWorkingDirectory)/**/*.pubxml.

Visual Studio'dan oluşturulan yayımlama profilinin yolu.


profil parolasını yayımlama
string. ConnectionType = PublishProfilegerekir.

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 = AzureRMgerekir. İ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 = AzureRMgerekir.

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 = truegerekir.

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 = truegerekir. 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 = webAppHyperVContainergerekir.

Ö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 = webAppHyperVContainergerekir.

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 = webAppHyperVContainerolduğ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 = functionAppLinuxgerekir. 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 Yayın. Joker karakterler desteklenir.

Örneğin, $(System.DefaultWorkingDirectory)/\*\*/\*.zip veya $(System.DefaultWorkingDirectory)/\*\*/\*.war.


RuntimeStack - Çalışma Zamanı Yığını
string. Opsiyonel. WebAppKind = webAppLinuxolduğ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 = functionAppLinuxolduğ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 = webAppHyperVContainerolduğ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 != functionAppContainerolduğ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ımhakkında daha fazla bilgi edinin.


Satır içi Betik
string. ScriptType == Inline Script && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainergerekir. 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 != functionAppContainergerekir.

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 .warolduğ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.configiçindir. azure app service dağıtımhakkında daha fazla bilgi edinin.


uygulama ayarlarını
string. Opsiyonel. ConnectionType = AzureRMolduğunda kullanın.

web uygulaması ayarlarını -key valuesö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 = AzureRMolduğunda kullanın.

web uygulaması yapılandırma ayarlarını -key valuesö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 .jarolduğ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 .jargerekir. İ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 .jarolduğ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 .jarolduğ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 .jarolduğ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 .jarolduğ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 .jarolduğ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 .jarolduğ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 .warolduğ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 .warolduğ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, connectionStringsve 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 .warolduğ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ştirmehakkında daha fazla bilgi edinin.


DeploymentTypeLinux - Dağıtım yöntemi
string. ConnectionType = AzureRM && WebAppKind = webAppLinuxgerekir. İ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 = webAppLinuxolduğ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 çıkış değişkenlerini tanımlar. Bu değişkenleri aşağı akış adımlarında, işlerde ve aşamalarda kullanabilirsiniz.

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.

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ı temel dağıtım teknolojisini kullanır.

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çin Azure PowerShell betiklerini çalıştırmak için kullanılabilir.

  • azure aboneliği. Azure'a dağıtmak için azure aboneliğininiş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ğeriyle true 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ında SCM_SKIP_SSL_VALIDATION veya SCM_SKIP_ASE_SSL_VALIDATION1 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 genişletin ve ek paket tabanlı dağıtım seçenekleri arasından seçim yapmak Dağıtım yöntemini seçin seçeneğini etkinleştirin.

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:

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 Kudu REST API'lerine dayanır.

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 V3konumunda 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.

  1. 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.
  2. 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.
  3. 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:

  1. Çözüm oluşturma görevinde, MSBuild Bağımsız Değişkenleri'ni olarak değiştirin:

    Derleme çözümü değerlerini gösteren ekran görüntüsü.

  2. Arşiv görevi ekleyin ve değerleri aşağıdaki gibi değiştirin:

    1. arşivleye Kök klasör veya dosyayı olarak değiştirin.

    2. 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ü.

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.

    web.config parametreleri oluştur iletişim kutusunun ekran görüntüsü.

  • Parametreleri düzenlemek için Python, Node.js, Go ve Java uygulamaları için web.config parametreleri oluştur düğmesine tıklayın.

    Application framework açılan listesinin ekran görüntüsü.

  • 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, Kilitli dosyaları yeniden adlandırın ve görevde Uygulamayı Çevrimdışına Al seçeneklerinin etkinleştirildiğinden . Sıfır kapalı kalma süresiyle dağıtımlar yapmak için yuva değiştirmeyi kullanın.

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ında SCM_SKIP_SSL_VALIDATION veya SCM_SKIP_ASE_SSL_VALIDATION1 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:

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,bir Azure Resource Manager hizmet bağlantısı gerektirir.

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 foldergerekir. 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

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