AzureFunctionAppContainer@1 - kapsayıcı v1 görevi için Azure İşlevleri
Bir işlev uygulamasını Docker kapsayıcısıyla güncelleştirme.
İşlev Uygulamalarını Docker kapsayıcılarıyla güncelleştirin.
Syntax
# Azure Functions for container v1
# Update a function app with a Docker container.
- task: AzureFunctionAppContainer@1
inputs:
azureSubscription: # string. Required. Azure subscription.
appName: # string. Required. App name.
#deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
#resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group.
#slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
imageName: # string. Required. Image name.
#containerCommand: # string. Startup command.
# Application and Configuration Settings
#appSettings: # string. App settings.
#configurationStrings: # string. Configuration settings.
# Azure Function for container v1
# Update Function Apps with Docker containers.
- task: AzureFunctionAppContainer@1
inputs:
azureSubscription: # string. Required. Azure subscription.
appName: # string. Required. App name.
#deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
#resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group.
#slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
imageName: # string. Required. Image name.
#containerCommand: # string. Startup command.
# Application and Configuration Settings
#appSettings: # string. App settings.
#configurationStrings: # string. Configuration settings.
Girişler
azureSubscription
- Azure aboneliği
string
. Gereklidir.
Dağıtım için Azure Resource Manager aboneliğini seçer.
appName
- Uygulama adı
string
. Gereklidir.
Kapsayıcılar için İşlev Uygulamasının adı.
deployToSlotOrASE
- Yuvaya veya App Service Ortamı dağıtma
boolean
. Varsayılan değer: false
.
Var olan bir dağıtım yuvasına true
veya Azure App Service Ortamına dağıtmak için bu girişi olarak ayarlayın. Görevin her iki hedef için de bir Kaynak Grubu adı olması gerekir. Dağıtım yuvası seçeneği için, varsayılan dağıtım yuvası üretim yuvasına dağıtılır veya var olan diğer yuva adlarını belirtebilirsiniz. Dağıtım hedefi bir Azure App Service Ortamı ise yuva adını üretim olarak bırakın ve Kaynak Grubu adını belirtin.
resourceGroupName
- Kaynak grubu
string
. olduğunda deployToSlotOrASE = true
gereklidir.
Kapsayıcılar için İşlev Uygulamasını içeren Kaynak Grubunun adı.
slotName
- Yuvası
string
. olduğunda deployToSlotOrASE = true
gereklidir. Varsayılan değer: production
.
Üretim yuvası hariç mevcut bir yuvayı girer veya seçer.
imageName
- Resim adı
string
. Gereklidir.
Ö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
.
containerCommand
- Başlangıç komutu
string
.
Dağıtımdan sonra yürütülen başlangıç komutu. Örneğin, dotnet run
dotnet filename.dll.
appSettings
- Uygulama ayarları
string
.
Söz dizimini -key value
kullanarak uygulama ayarlarını girin (örneğin: -Port 5000
-RequestTimeout 5000
-WEBSITE_TIME_ZONE
). Boşluk içeren değerleri çift tırnak içine alın (örneğin: "Eastern Standard Time"
).
configurationStrings
- Yapılandırma ayarları
string
.
Söz dizimini -key value
kullanarak yapılandırma dizelerini girin (örneğin: -phpVersion 5.6
-linuxFxVersion: node|6.11
). Boşluk içeren değerleri çift tırnak içine alın.
Görev denetimi seçenekleri
Tüm görevlerin, görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz . Denetim seçenekleri ve ortak görev özellikleri.
Çıkış değişkenleri
Bu görev aşağı akış adımlarında, işlerde ve aşamalarda kullanabileceğiniz aşağıdaki çıkış değişkenlerini tanımlar.
AppServiceApplicationUrl
Seçili App Service uygulama URL'si.
Açıklamalar
Özel görüntü kullanarak Linux üzerinde Azure İşlevi dağıtmak için bu görevi kullanın.
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 bir sertifika kullanmak istiyorsanız, sertifikanın güvenilir bir sertifika yetkilisi tarafından imzalanması gerekir. Web uygulamanız sertifika doğrulama hataları veriyorsa, büyük olasılıkla otomatik olarak imzalanan bir sertifika kullanıyorsunuz. Hatayı çözmek için derleme veya yayın işlem hattındaki değere true
adlı VSTS_ARM_REST_IGNORE_SSL_ERRORS
bir değişken ayarlayın.
Sürüm uzun süre kilitleniyor ve sonra başarısız oluyor
Bu sorun, App Service planınızda yetersiz kapasitenin sonucu olabilir. Bu sorunu çözmek için App Service örneğinin ölçeğini artırarak kullanılabilir CPU, RAM ve disk alanını artırabilir veya farklı bir App Service planı deneyebilirsiniz.
5xx hata kodları
5xx hatası görüyorsanız Azure hizmetinizin durumunu denetleyin.
Azure İşlevi aniden çalışmayı durdurdu
Azure İşlevleri, son dağıtımın üzerinden bir yıldan fazla geçtiyse 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ütme için paket dosyasına başvurmak üzere bu SAS'yi kullanır, bu nedenle 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.
Hizmet bağlantımı nasıl yapılandırmalıyım?
Bu görev için Azure Resource Manager hizmeti bağlantısı gerekir.
Application Insights ile web işi dağıtımlarını nasıl yapılandırmalıyım?
bir App Service dağıtırken, 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'a 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 Azure Pipelines'a bağlanmasına veya ara sunucu üzerinden Azure DevOps Server olanak tanır. Bir web ara sunucusunun arkasında şirket içinde barındırılan aracı çalıştırma hakkında daha fazla bilgi edinin.
Örnekler
Bu örnek, kapsayıcıları kullanarak Linux'ta Azure İşlevleri dağıtır:
variables:
imageName: contoso.azurecr.io/azurefunctions-containers:$(build.buildId)
azureSubscription: Contoso
# To ignore SSL error uncomment the following variable
# VSTS_ARM_REST_IGNORE_SSL_ERRORS: true
steps:
- task: AzureFunctionAppContainer@1
displayName: Azure Function App on Container deploy
inputs:
azureSubscription: $(azureSubscription)
appName: functionappcontainers
imageName: $(imageName)
Gereksinimler
Gereksinim | Açıklama |
---|---|
İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
Üzerinde çalışır | Agent, DeploymentGroup |
Talep | Hiçbiri |
Özellikler | Bu görev, işteki sonraki görevler için hiç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 | Dağıtma |