AzureFunctionApp@1 — zadanie Azure Functions v1

Zaktualizuj aplikację funkcji przy użyciu platformy .NET, Python, JavaScript, programu PowerShell, aplikacji internetowych opartych na języku Java.

Wdrażanie funkcji platformy Azure dla systemu Linux lub Windows.

Składnia

# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. Azure Functions 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.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOTNET|6.0' | 'DOTNET-ISOLATED|6.0' | 'DOTNET-ISOLATED|7.0' | 'DOTNET-ISOLATED|8.0' | 'JAVA|8' | 'JAVA|11' | 'JAVA|17' | 'JAVA|21' | 'NODE|14' | 'NODE|16' | 'NODE|18' | 'NODE|20' | 'PYTHON|3.8' | 'PYTHON|3.9' | 'PYTHON|3.10' | 'PYTHON|3.11'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. Azure Functions 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.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOTNET|2.2' | 'DOTNET|3.1' | 'DOTNET|6.0' | 'JAVA|8' | 'JAVA|11' | 'NODE|8' | 'NODE|10' | 'NODE|12' | 'NODE|14' | 'NODE|16' | 'PYTHON|3.6' | 'PYTHON|3.7' | 'PYTHON|3.8' | 'PYTHON|3.9'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. Azure Functions 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.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # '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 appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    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.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # '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 appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    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.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0' | 'DOCKER|microsoft/azure-functions-node8:2.0'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v1
# Deploy an Azure Function for Linux or Windows.
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: # string. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    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.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # 'DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0' | 'DOCKER|microsoft/azure-functions-node8:2.0'. Optional. Use when appType = functionAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = functionAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != functionAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.

Dane wejściowe

azureSubscription - Połączenie usługi Azure Resource Manager
string. Wymagane.

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


appType - Typ aplikacji
string. Wymagane. Dozwolone wartości: functionApp (Aplikacja funkcji w systemie Windows), functionAppLinux (Aplikacja funkcji w systemie Linux).


appName - nazwa aplikacji Azure Functions
string. Wymagane.

Wprowadza lub wybiera nazwę istniejącej aplikacji Azure Functions. Wyświetlone aplikacje funkcji będą oparte na wybranym typie aplikacji.


appName - Nazwa aplikacji
string. Wymagane.

Wprowadza lub wybiera nazwę istniejącej aplikacji Azure Functions. Wyświetlone aplikacje funkcji będą oparte na wybranym typie aplikacji.


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

Wdraża w istniejącym miejscu wdrożenia lub środowisku Azure App Service. W przypadku obu obiektów docelowych zadanie wymaga nazwy grupy zasobów.

Jeśli celem wdrożenia jest miejsce docelowe, domyślnie zostanie ono ustawione na miejsce produkcyjne . Można również podać 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 jest wymagana, gdy celem wdrożenia jest miejsce wdrożenia lub App Service Environment.

Wprowadza lub wybiera grupę zasobów platformy Azure zawierającą Azure App Service określone powyżej.


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

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


package - Pakiet lub folder
string. Wymagane. Wartość domyślna: $(System.DefaultWorkingDirectory)/**/*.zip.

Ścieżka pliku do pakietu lub folderu zawierającego App Service zawartość wygenerowaną przez program MSBuild, skompresowany plik zip lub plik wojenny. Obsługiwane są zmienne (wersjakompilacji | ) i symbole wieloznaczne. Na przykład $(System.DefaultWorkingDirectory)/**/*.zip or $(System.DefaultWorkingDirectory)/**/*.war.


runtimeStack - Stos środowiska uruchomieniowego
string. Opcjonalny. Użyj polecenia , gdy appType = functionAppLinux. Dozwolone wartości: DOTNET|6.0, DOTNET-ISOLATED|6.0PYTHON|3.10PYTHON|3.9PYTHON|3.8NODE|20NODE|18DOTNET-ISOLATED|7.0NODE|16NODE|14JAVA|8DOTNET-ISOLATED|8.0JAVA|11JAVA|17JAVA|21. PYTHON|3.11

Określ strukturę i wersję, w ramach których aplikacja funkcji zostanie uruchomiona. Możesz użyć dowolnej z obsługiwanych wersji środowiska uruchomieniowego. Stare wartości, takie jak DOCKER|microsoft/azure-functions-* , są przestarzałe. Nowe wartości są wyświetlane na liście rozwijanej w asystent zadania. Jeśli istnieje nowsza wersja platformy dostępnej w obsługiwanych wersjach środowiska uruchomieniowego , możesz ją określić, nawet jeśli nie znajduje się na liście.


runtimeStack - Stos środowiska uruchomieniowego
string. Opcjonalny. Użyj polecenia , gdy appType = functionAppLinux. Dozwolone wartości: DOTNET|2.2 (DOTNET|2.2 (functionapp v2)), DOTNET|3.1 (DOTNET|3.1 (functionapp v3)), (DOTNET|6.0 (functionapp v4 JAVA|8 )), DOTNET|6.0 (JAVA|8 (functionapp v2/v3/v4) JAVA|11 ), (JAVA|11 (functionapp v3/v4)), (NODE|8 (functionapp v2)), (NODE|8 (functionapp v2)), (JAVA|11 (functionapp v2) NODE|8NODE|10 ) NODE|10 (functionapp v2/v3)), (NODE|12 (functionapp v3)), NODE|14NODE|12 (NODE|14 (functionapp v3/v4)), (NODE|16 (functionapp v4 NODE|16PYTHON|3.6 )), (PYTHON|3.6 (functionapp v2/v3)), PYTHON|3.7 (PYTHON|3.7 (functionapp v2/v3/v4)), PYTHON|3.8 (PYTHON|3.8 (functionapp v3/v4)), PYTHON|3.9 (PYTHON|3.9 (functionapp v3/v4)).

Określ strukturę i wersję, w ramach których aplikacja funkcji zostanie uruchomiona. Możesz użyć dowolnej z obsługiwanych wersji środowiska uruchomieniowego. Stare wartości, takie jak DOCKER|microsoft/azure-functions-* , są przestarzałe. Nowe wartości są wyświetlane na liście rozwijanej w asystent zadania. Jeśli istnieje nowsza wersja platformy dostępnej w obsługiwanych wersjach środowiska uruchomieniowego , możesz ją określić, nawet jeśli nie znajduje się na liście.


runtimeStack - Stos środowiska uruchomieniowego
string. Opcjonalny. Użyj polecenia , gdy appType = functionAppLinux. Dozwolone wartości: DOTNET|2.2 (DOTNET|2.2 (functionapp v2)), DOTNET|3.1 (DOTNET|3.1 (functionapp v3)), (JAVA|8 (functionapp v2/v3)), JAVA|8 (JAVA|11 (functionapp v3) NODE|8 ), (NODE|8 (functionapp v2)), (NODE|10 (functionapp v3 JAVA|11 ) NODE|10 ) 2/v3)), NODE|12 (NODE|12 (functionapp v3)), NODE|14 (NODE|14 (functionapp v3)), PYTHON|3.6 (PYTHON|3.6 (functionapp v2/v3)), PYTHON|3.7 (PYTHON|3.7 (functionapp v2/v3)), PYTHON|3.8 (PYTHON|3.8 (functionapp v3)).

Określ strukturę i wersję, w ramach których aplikacja funkcji zostanie uruchomiona. Możesz użyć dowolnej z obsługiwanych wersji środowiska uruchomieniowego. Stare wartości, takie jak DOCKER|microsoft/azure-functions-* , są przestarzałe. Nowe wartości są wyświetlane na liście rozwijanej w asystent zadania. Jeśli istnieje nowsza wersja platformy dostępnej w obsługiwanych wersjach środowiska uruchomieniowego , możesz ją określić, nawet jeśli nie znajduje się na liście.


runtimeStack - Stos środowiska uruchomieniowego
string. Opcjonalny. Użyj polecenia , gdy appType = functionAppLinux. Dozwolone wartości: DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0 (.NET), DOCKER|microsoft/azure-functions-node8:2.0 (JavaScript).

Określ strukturę i wersję, w ramach których aplikacja funkcji zostanie uruchomiona. Możesz użyć dowolnej z obsługiwanych wersji środowiska uruchomieniowego. Stare wartości, takie jak DOCKER|microsoft/azure-functions-* , są przestarzałe. Nowe wartości są wyświetlane na liście rozwijanej w asystent zadania. Jeśli istnieje nowsza wersja platformy dostępnej w obsługiwanych wersjach środowiska uruchomieniowego , możesz ją określić, nawet jeśli nie znajduje się na liście.


startUpCommand - Polecenie uruchamiania
string. Opcjonalny. Użyj polecenia , gdy appType = functionAppLinux.

Wprowadza polecenie uruchamiania. Na przykład:

dotnet run
dotnet filename.dll


customWebConfig - Generowanie parametrów web.config dla aplikacji Python, Node.js, Go i Java
string. Opcjonalny. Użyj polecenia , gdy appType != functionAppLinux && package NotEndsWith .war.

Standardowa Web.config zostanie wygenerowana i wdrożona w Azure App Service, jeśli aplikacja jej nie ma. Wartości w web.config różnią się w zależności od struktury aplikacji i można je edytować. Na przykład w przypadku aplikacji node.js web.config będą miały plik startowy i wartości modułu iis_node. Ta funkcja edycji dotyczy tylko wygenerowanego web.config.


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.


deploymentMethod - Metoda wdrażania
string. Wymagane, gdy appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Dozwolone wartości: auto (automatyczne wykrywanie), zipDeploy (Wdrażanie zip), runFromPackage (Zip Deploy with Run From Package). Wartość domyślna: auto.

Wybiera metodę wdrażania dla aplikacji.


deploymentMethod - Metoda wdrażania
string. Wymagane, gdy appType != functionAppLinux && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Dozwolone wartości: auto (automatyczne wykrywanie), zipDeploy (Wdrażanie zip), runFromPackage (Uruchamianie z pakietu). Wartość domyślna: auto.

Wybiera metodę wdrażania dla aplikacji.


Opcje sterowania zadania

Wszystkie zadania mają opcje sterowania oprócz 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

Użyj zadania Aplikacja funkcji platformy Azure, aby wdrożyć funkcje na platformie Azure.

Metody wdrażania

W tym zadaniu jest dostępnych kilka metod wdrażania. Wartość domyślna to auto.

Aby zmienić opcję wdrażania opartego na pakiecie w zadaniu projektanta, rozwiń pozycję Dodatkowe opcje wdrażania i włącz opcję Wybierz metodę wdrażania.

Na podstawie typu agenta Azure App Service i usługi Azure Pipelines zadanie używa odpowiedniej technologii wdrażania. Technologie wdrażania używane przez zadania są następujące:

Domyślnie zadanie próbuje wybrać odpowiednią technologię wdrażania na podstawie pakietu wejściowego, App Service typu i systemu operacyjnego agenta.

  • Jeśli zostanie podany skrypt po wdrożeniu, użyj narzędzia Zip Deploy.
  • Jeśli typ App Service to Aplikacja internetowa w systemie Linux, użyj polecenia Zip Deploy.
  • Jeśli zostanie podany plik war, użyj polecenia War Deploy.
  • Jeśli zostanie podany plik .jar, użyj polecenia Run-From-Zip.
  • W przypadku wszystkich innych zadań użyj polecenia Uruchom z pakietu (za pomocą narzędzia Zip Deploy).

W przypadku agenta innego niż Windows (dla dowolnego typu App Service) zadanie opiera się na interfejsie API REST Kudu w celu wdrożenia aplikacji internetowej.

Kudu REST API

Interfejs API REST Kudu działa zarówno na agentach automatyzacji systemu Windows, jak i Linux, gdy elementem docelowym jest aplikacja internetowa w systemie Windows, aplikacja internetowa w systemie Linux (wbudowane źródło) lub aplikacja funkcji. Zadanie używa kudu do kopiowania plików do Azure App Service.

Wdrażanie z pliku zip

Narzędzie Zip Deploy tworzy pakiet wdrożeniowy .zip z wybranego pakietu lub folderu. Następnie wdraża zawartość pliku w folderze wwwroot aplikacji funkcji App Service name na platformie Azure. Ta opcja zastępuje całą istniejącą zawartość w folderze wwwroot. Aby uzyskać więcej informacji, zobacz Wdrażanie zip dla Azure Functions.

Uruchamianie z pakietu

Polecenie Uruchom z poziomu pakietu tworzy ten sam pakiet wdrożeniowy co zip deploy. Zamiast wdrażać pliki w folderze wwwroot, środowisko uruchomieniowe usługi Functions instaluje cały pakiet. W przypadku korzystania z tej opcji pliki w folderze wwwroot stają się tylko do odczytu. Aby uzyskać więcej informacji, zobacz Uruchamianie funkcji Azure Functions z pliku pakietu.

Rozwiązywanie problemów

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.

Błąd: nie znaleziono żadnego pakietu z określonym wzorcem

Sprawdź, czy pakiet wymieniony w zadaniu został opublikowany jako artefakt w kompilacji lub na poprzednim etapie i pobrany w bieżącym zadaniu.

Błąd: Opcja publikowania przy użyciu wdrażania zip nie jest obsługiwana dla typu pakietu msBuild

Pakiety sieci Web utworzone za pośrednictwem zadania MSBuild (z domyślnymi argumentami) mają zagnieżdżonych struktury folderów, które można wdrożyć poprawnie tylko za pomocą narzędzia Web Deploy. Nie można użyć opcji wdrażania publikowania do zip w celu wdrożenia tych pakietów. Aby przekonwertować strukturę pakowania, wykonaj następujące kroki:

  1. W zadaniu kompilowania rozwiązania zmień argumenty MSBuild na /p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl="$(System.DefaultWorkingDirectory)\\WebAppContent":

    Zrzut ekranu przedstawiający wartości rozwiązania kompilacji.

  2. Dodaj zadanie Archiwum i zmień wartości w następujący sposób:

    1. Zmień folder główny lub plik na archiwum na $(System.DefaultWorkingDirectory)\\WebAppContent.

    2. Wyczyść pole wyboru Prepend root folder do ścieżek archiwum :

      Zrzut ekranu przedstawiający wartości Archiwum.

Wdrażanie aplikacji funkcji w systemie Windows kończy się pomyślnie, ale aplikacja nie działa

Ten problem może wystąpić, jeśli plik web.config nie jest obecny w aplikacji. Możesz dodać plik web.config do źródła lub automatycznie wygenerować go przy użyciu ustawień aplikacji i konfiguracji zadania.

  1. Wybierz zadanie i przejdź do pozycji Generowanie parametrów web.config dla aplikacji Python, Node.js, Go i Java:

    Zrzut ekranu przedstawiający sekcję Generowanie parametrów web.config.

  2. Wybierz przycisk Więcej (...) w obszarze Generuj parametry web.config dla języków Python, Node.js, Go i Java, aby edytować parametry:

    Zrzut ekranu przedstawiający parametry Generowanie web.config.

  3. Wybierz typ aplikacji na liście Struktura aplikacji .

  4. Wybierz przycisk OK. Spowoduje to wypełnienie parametrów web.config wymaganych do wygenerowania pliku web.config.

Często zadawane pytania

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.

Nie mogę wdrożyć w wewnętrznym App Service Environment przy użyciu połączenia usługi Azure Resource Manager i agenta hostowanego przez firmę Microsoft

Zgodnie z projektem agent hostowany przez firmę Microsoft nie będzie działać z App Service Environment. Zamiast tego należy skonfigurować agenta prywatnego na maszynie wirtualnej, która znajduje się w tej samej sieci wirtualnej co App Service Environment. Ustaw również prywatną strefę DNS, aby umożliwić komunikację między zasobami.

Przykłady

Oto przykładowy fragment kodu YAML, który wdraża funkcje platformy Azure w systemie Windows:


variables:
  azureSubscription: Contoso
  # To ignore SSL error, uncomment the below variable
  # VSTS_ARM_REST_IGNORE_SSL_ERRORS: true

steps:
- task: AzureFunctionApp@1
  displayName: Azure Function App Deploy
  inputs:
    azureSubscription: $(azureSubscription)
    appName: samplefunctionapp
    appType: functionApp
    package: $(System.DefaultWorkingDirectory)/**/*.zip

Aby wdrożyć funkcję w systemie Linux, dodaj appType parametr i ustaw go na appType: functionAppLinux. Jeśli nie określisz wartości, functionApp jest wartością domyślną.

Aby jawnie określić metodę wdrażania jako Zip Deploy, dodaj parametr deploymentMethod: zipDeploy. Inną obsługiwaną wartością tego parametru jest runFromPackage. Jeśli nie określisz wartości, auto jest wartością domyślną.

Aby zapoznać się z przewodnikiem pokazującym sposób tworzenia potoku ciągłej integracji/ciągłego wdrażania, zobacz Kompilowanie i wdrażanie języka Java w Azure Functions.

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