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

Kapsayıcılar için İşlev Uygulamasını içeren Kaynak Grubunun adı.


slotName - Yuvası
string. olduğunda deployToSlotOrASE = truegereklidir. 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 rundotnet 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 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'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