Udostępnij za pośrednictwem


AzureFunctionAppContainer@1 — Azure Functions dla zadania kontenera w wersji 1

Aktualizowanie aplikacji funkcji przy użyciu kontenera platformy Docker.

Aktualizowanie aplikacji funkcji za pomocą kontenerów platformy Docker.

Składnia

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

Dane wejściowe

azureSubscription - Subskrypcja platformy Azure
string. Wymagane.

Wybiera subskrypcję usługi Azure Resource Manager dla wdrożenia.


appName - Nazwa aplikacji
string. Wymagane.

Nazwa aplikacji funkcji dla kontenerów.


deployToSlotOrASE - Wdrażanie w miejscu lub App Service Environment
boolean. Wartość domyślna: false.

Ustaw te dane wejściowe na true wdrożenie w istniejącym miejscu wdrożenia lub środowisku Azure App Service. Zadanie wymaga nazwy grupy zasobów dla obu obiektów docelowych. W przypadku opcji miejsca wdrożenia wartość domyślna jest wdrażana w miejscu produkcyjnym lub można określić dowolną inną istniejącą nazwę miejsca. Jeśli celem wdrożenia jest środowisko Azure App Service, pozostaw nazwę miejsca jako środowisko produkcyjne i określ nazwę grupy zasobów.


resourceGroupName - Grupa zasobów
string. Wymagane, gdy deployToSlotOrASE = true.

Nazwa grupy zasobów, która zawiera aplikację funkcji dla kontenerów.


slotName - Gniazdo
string. Wymagane, gdy deployToSlotOrASE = true. Wartość domyślna: production.

Wprowadza lub wybiera istniejące miejsce, z wyłączeniem miejsca produkcyjnego .


imageName - Nazwa obrazu
string. Wymagane.

Globalnie unikatowa nazwa domeny najwyższego poziomu dla określonego rejestru lub przestrzeni nazw.

Uwaga: W pełni kwalifikowana nazwa obrazu będzie mieć format: <registry or namespace> <repository> <tag>. Na przykład myregistry.azurecr.io/nginx:latest.


containerCommand - Polecenie uruchamiania
string.

Polecenie uruchamiania wykonywane po wdrożeniu. Na przykład: dotnet rundotnet filename.dll.


appSettings - Ustawienia aplikacji
string.

Wprowadź ustawienia aplikacji przy użyciu składni -key value (na przykład :-RequestTimeout 5000-Port 5000-WEBSITE_TIME_ZONE ). Oto wartości zawierające spacje w cudzysłowach podwójnych (na przykład : "Eastern Standard Time").


configurationStrings - Ustawienia konfiguracji
string.

Wprowadź ciągi konfiguracji przy użyciu składni -key value (na przykład: -phpVersion 5.6-linuxFxVersion: node|6.11). Ujmij wartości, które zawierają spacje w cudzysłowach podwójnych.


Opcje sterowania zadaniami

Wszystkie zadania mają opcje sterowania oprócz ich danych wejściowych zadań. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.

Zmienne wyjściowe

To zadanie definiuje następujące zmienne wyjściowe, które można używać w krokach podrzędnych, zadaniach i etapach.

AppServiceApplicationUrl
Adres URL aplikacji wybranej App Service.

Uwagi

To zadanie służy do wdrażania funkcji platformy Azure w systemie Linux przy użyciu obrazu niestandardowego.

Błąd: Nie można pobrać tokenu dostępu dla platformy Azure. Sprawdź, czy użyta jednostka usługi jest prawidłowa i nie wygasła.

Zadanie używa jednostki usługi w połączeniu usługi do uwierzytelniania za pomocą platformy Azure. Jeśli jednostka usługi wygasła lub nie ma uprawnień do App Service, zadanie kończy się niepowodzeniem z powodu tego błędu. Sprawdź, czy używana jednostka usługi jest poprawna i czy jest obecna w rejestracji aplikacji. Aby uzyskać więcej informacji, zobacz Używanie kontroli dostępu na podstawie ról do zarządzania dostępem do zasobów subskrypcji platformy Azure. Ten wpis w blogu zawiera również więcej informacji na temat korzystania z uwierzytelniania jednostki usługi.

Błąd protokołu SSL

Jeśli chcesz użyć certyfikatu w App Service, certyfikat musi być podpisany przez zaufany urząd certyfikacji. Jeśli Twoja aplikacja internetowa wyświetla błędy walidacji certyfikatu, prawdopodobnie używasz certyfikatu z podpisem własnym. Ustaw zmienną o nazwie VSTS_ARM_REST_IGNORE_SSL_ERRORS na wartość true w potoku kompilacji lub wydania, aby rozwiązać ten problem.

Wydanie zawiesza się przez długi czas, a następnie kończy się niepowodzeniem

Ten problem może być wynikiem niewystarczającej pojemności w planie App Service. Aby rozwiązać ten problem, możesz skalować w górę wystąpienie App Service w celu zwiększenia dostępnego procesora CPU, pamięci RAM i miejsca na dysku lub spróbować użyć innego planu App Service.

Kody błędów 5xx

Jeśli widzisz błąd 5xx , sprawdź stan usługi platformy Azure.

Funkcja platformy Azure nagle przestała działać

Azure Functions może nagle przestać działać, jeśli od ostatniego wdrożenia minęło więcej niż rok. W przypadku wdrożenia za pomocą polecenia "RunFromPackage" w elemecie "deploymentMethod" zostanie wygenerowana sygnatura dostępu współdzielonego z datą wygaśnięcia 1 roku i ustawiona jako wartość "WEBSITE_RUN_FROM_PACKAGE" w konfiguracji aplikacji. Azure Functions używa tej sygnatury dostępu współdzielonego do odwołania do pliku pakietu na potrzeby wykonywania funkcji, więc jeśli sygnatura dostępu współdzielonego wygasła, funkcja nie zostanie wykonana. Aby rozwiązać ten problem, wdróż ponownie, aby wygenerować sygnaturę dostępu współdzielonego z datą wygaśnięcia jednego roku.

Jak skonfigurować połączenie z usługą?

To zadanie wymaga połączenia usługi Azure Resource Manager.

Jak skonfigurować wdrażanie zadań internetowych za pomocą usługi Application Insights?

W przypadku wdrażania w App Service, jeśli skonfigurowano usługę Application Insights i włączono tę funkcjęRemove additional files at destination, należy również włączyć Exclude files from the App_Data folderusługę . Włączenie tej opcji powoduje zachowanie rozszerzenia usługi Application Insights w bezpiecznym stanie. Ten krok jest wymagany, ponieważ ciągłe zadanie WebJob usługi Application Insights jest instalowane w folderze App_Data.

Jak skonfigurować agenta, jeśli znajduje się on za serwerem proxy podczas wdrażania w App Service?

Jeśli własny agent wymaga internetowego serwera proxy, możesz poinformować agenta o serwerze proxy podczas konfiguracji. Dzięki temu agent może nawiązać połączenie z usługą Azure Pipelines lub Azure DevOps Server za pośrednictwem serwera proxy. Dowiedz się więcej o uruchamianiu własnego agenta za internetowym serwerem proxy.

Przykłady

W tym przykładzie wdrożono Azure Functions w systemie Linux przy użyciu kontenerów:


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)

Wymagania

Wymaganie Opis
Typy potoków YAML, kompilacja klasyczna, wersja klasyczna
Działa na Agent, DeploymentGroup
Wymagania Brak
Możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
Ograniczenia poleceń Dowolne
Zmienne w formie tabeli settable Dowolne
Wersja agenta 2.104.1 lub nowsza
Kategoria zadania Wdrażanie