Freigeben über


AzureFunctionApp@2 – Azure Functions Deploy v2 task

Aktualisieren Sie eine Funktions-App mit .NET, Python, JavaScript, PowerShell, Java-basierten Webanwendungen.

Syntax

# Azure Functions Deploy v2
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@2
  inputs:
    connectedServiceNameARM: # string. Alias: azureSubscription. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    #isFlexConsumption: false # boolean. Is Function App on Flex Consumption Plan. Default: false.
    appName: # string. Required. Azure Functions App name. 
    #deployToSlotOrASE: false # boolean. Optional. Use when appType != "" && isFlexConsumption = false. 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 && isFlexConsumption = false. Runtime stack. 
  # Application and Configuration Settings
    #appSettings: # string. App settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != "" && isFlexConsumption = false && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v2
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@2
  inputs:
    connectedServiceNameARM: # string. Alias: azureSubscription. Required. Azure Resource Manager connection. 
    appType: # 'functionApp' | 'functionAppLinux'. Required. App type. 
    appName: # string. Required. Azure Functions App name. 
    #deployToSlotOrASE: false # boolean. Optional. Use when appType != "". 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' | 'DOTNET-ISOLATED|7.0' | 'JAVA|8' | 'JAVA|11' | 'NODE|8' | 'NODE|10' | 'NODE|12' | 'NODE|14' | 'NODE|16' | 'NODE|18' | 'PYTHON|3.6' | 'PYTHON|3.7' | 'PYTHON|3.8' | 'PYTHON|3.9' | 'PYTHON|3.10'. Optional. Use when appType = functionAppLinux. Runtime stack. 
  # Application and Configuration Settings
    #appSettings: # string. App settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.

Eingänge

connectedServiceNameARM - Azure Resource Manager-Verbindung
Eingabealias: azureSubscription. string. Erforderlich.

Wählen Sie das Azure Resource Manager-Abonnement für die Bereitstellung aus.


appType - App-Typ
string. Erforderlich. Zulässige Werte: functionApp (Funktions-App unter Windows), functionAppLinux (Funktions-App unter Linux).

Wählen Sie den Azure Function App-Typ für die Bereitstellung aus.


isFlexConsumption - Is Function App on Flex Consumption Plan
boolean. Standardwert: false.

Legen Sie diesen Wert auf true fest, wenn sich die Funktions-App in einem Flex-Verbrauchsplanbefindet.


appName - Azure Functions App-Name
string. Erforderlich.

Geben Sie den Namen einer vorhandenen Azure Functions-App an. Die aufgelisteten Funktions-Apps basieren auf dem ausgewählten App-Typ.


deployToSlotOrASE - Bereitstellen im Slot- oder App Service Environment-
boolean. Wahlfrei. Wird verwendet, wenn appType != "" && isFlexConsumption = false. Standardwert: false.

Stellt einen vorhandenen Bereitstellungsplatz oder eine Azure App Service-Umgebung bereit. Für beide Ziele benötigt der Vorgang einen Ressourcengruppennamen.

Wenn das Bereitstellungsziel ein Slot ist, wird standardmäßig der Produktionsplatz. Alle anderen vorhandenen Slotnamen können ebenfalls bereitgestellt werden.

Wenn das Bereitstellungsziel eine Azure App Service-Umgebung ist, lassen Sie den Slotnamen als Produktions- und geben Sie den Ressourcengruppennamen an.


deployToSlotOrASE - Bereitstellen im Slot- oder App Service Environment-
boolean. Wahlfrei. Wird verwendet, wenn appType != "". Standardwert: false.

Stellt einen vorhandenen Bereitstellungsplatz oder eine Azure App Service-Umgebung bereit. Für beide Ziele benötigt der Vorgang einen Ressourcengruppennamen.

Wenn das Bereitstellungsziel ein Slot ist, wird standardmäßig der Produktionsplatz. Alle anderen vorhandenen Slotnamen können ebenfalls bereitgestellt werden.

Wenn das Bereitstellungsziel eine Azure App Service-Umgebung ist, lassen Sie den Slotnamen als Produktions- und geben Sie den Ressourcengruppennamen an.


resourceGroupName - Ressourcengruppe
string. Erforderlich, wenn deployToSlotOrASE = true.

Der Ressourcengruppenname ist erforderlich, wenn das Bereitstellungsziel entweder ein Bereitstellungsplatz oder eine App Service-Umgebung ist.

Gibt die Azure-Ressourcengruppe ein, die den oben angegebenen Azure App Service enthält, oder wählt sie aus.


slotName - Slot-
string. Erforderlich, wenn deployToSlotOrASE = true. Standardwert: production.

Gibt einen vorhandenen Steckplatz mit Ausnahme des Produktionsplatzes ein, oder wählt ihn aus.


slotName - Slot-
string. Erforderlich, wenn deployToSlotOrASE = true. Standardwert: production.

Geben Sie einen anderen Steckplatz als den Produktionsplatz ein, oder wählen Sie ihn aus.


package - Paket- oder Ordner-
string. Erforderlich. Standardwert: $(System.DefaultWorkingDirectory)/**/*.zip.

Der Dateipfad zum Paket oder Ordner, das App Service-Inhalte enthält, die von MSBuild oder einer komprimierten ZIP-Datei generiert werden. Variablen ( Build | Release) und Wildcards werden unterstützt. Beispiel: $(System.DefaultWorkingDirectory)/**/*.zip.


runtimeStack - Runtime-Stapel-
string. Wahlfrei. Wird verwendet, wenn appType = functionAppLinux && isFlexConsumption = false. Zulässige Werte: 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.

Geben Sie das Framework und die Version an, auf dem Ihre Funktions-App ausgeführt wird. Sie können jedes der unterstützten Laufzeitversionenverwenden. Alte Werte wie DOCKER|microsoft/azure-functions-* sind veraltet. Neue Werte werden in der Dropdownliste im Aufgaben-Assistentenaufgeführt. Wenn eine neuere Version eines Frameworks in den unterstützten Laufzeitversionen verfügbar ist können Sie es angeben, auch wenn es sich nicht in der Liste befindet.

Anmerkung

Dieser Wert aktualisiert derzeit nicht das linuxFxVersion-, auf dem die Website ausgeführt wird. Dies bedeutet, dass Sie den Stapel nicht von Knoten 18 auf Knoten 20 aktualisieren können. Die Aufgabe aktualisiert derzeit nur die App-Einstellungen.


runtimeStack - Runtime-Stapel-
string. Wahlfrei. Wird verwendet, wenn appType = functionAppLinux. Zulässige Werte: DOTNET|2.2 (DOTNET|2.2 (functionapp v2)), DOTNET|3.1 (DOTNET|3.1 (functionapp v3)), DOTNET|6.0 (DOTNET|6.0 (functionapp v4)), DOTNET-ISOLATED|7.0 (DOTNET-ISOLATED|7.0 (functionapp v4)), JAVA|8 (JAVA|8 (functionapp v2/v) 3/v4)), JAVA|11 (JAVA|11 (functionapp v3/v4)), NODE|8 (NODE|8 (functionapp v2)), NODE|10 (NODE|10 (functionapp v2/v3)), NODE|12 (NODE|12 (functionapp v3)), NODE|14 (NODE|14 (functionapp v3/v4)), NODE|16 (NODE|16 (functionapp v4)), NODE|18 (NODE|18 (functionapp v4)), PYTHON|3.6 (PYTHON|3.6 (functionapp v2/v3)), PYTHON|3.7 (PYTHON|3.7 (functionapp v2/v) 3/v4)), PYTHON|3.8 (PYTHON|3.8 (functionapp v3/v4)), PYTHON|3.9 (PYTHON|3.9 (functionapp v3/v4)), PYTHON|3.10 (PYTHON|3.10 (functionapp v3/v4)).

Geben Sie das Framework und die Version an, auf dem Ihre Funktions-App ausgeführt wird. Sie können jedes der unterstützten Laufzeitversionenverwenden. Alte Werte wie DOCKER|microsoft/azure-functions-* sind veraltet. Neue Werte werden in der Dropdownliste im Aufgaben-Assistentenaufgeführt. Wenn eine neuere Version eines Frameworks in den unterstützten Laufzeitversionen verfügbar ist können Sie es angeben, auch wenn es sich nicht in der Liste befindet.


appSettings - App-Einstellungen
string.

Geben Sie die Anwendungseinstellungen mithilfe der Syntax -key value ein (z. B. -Port 5000-RequestTimeout 5000-WEBSITE_TIME_ZONE). Schließen Sie Werte ein, die Leerzeichen in doppelte Anführungszeichen enthalten (z. B. "Eastern Standard Time").

Weitere Informationen zu App-Einstellungen finden Sie unter Umgebungsvariablen und App-Einstellungen in Azure App Service.


deploymentMethod - Bereitstellungsmethode
string. Erforderlich, wenn appType != "" && isFlexConsumption = false && appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Zulässige Werte: auto (Automatische Erkennung), zipDeploy (Zip Deploy), runFromPackage (Zip Deploy with Run From Package). Standardwert: auto.

Gibt die Bereitstellungsmethode für die App an. Linux-Verbrauchs-Apps unterstützen diese Konfiguration nicht.


deploymentMethod - Bereitstellungsmethode
string. Erforderlich, wenn appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Zulässige Werte: auto (Automatische Erkennung), zipDeploy (Zip Deploy), runFromPackage (Zip Deploy with Run From Package). Standardwert: auto.

Gibt die Bereitstellungsmethode für die App an. Linux-Verbrauchs-Apps unterstützen diese Konfiguration nicht.


deploymentMethod - Bereitstellungsmethode
string. Erforderlich, wenn appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Zulässige Werte: auto (Automatische Erkennung), zipDeploy (Zip Deploy), runFromPackage (Zip Deploy with Run From Package). Standardwert: auto.

Wählt die Bereitstellungsmethode für die App aus. Linux-Verbrauchs-Apps unterstützen diese Konfiguration nicht.s


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.

Ausgabevariablen

Mit dieser Aufgabe werden die folgenden Ausgabevariablendefiniert, die Sie in nachgeschalteten Schritten, Aufträgen und Phasen verwenden können.

AppServiceApplicationUrl
Anwendungs-URL der ausgewählten Azure-Funktions-App.

Bemerkungen

Die Azure Function Deployment-Aufgabe wird verwendet, um Azure-Funktionen zu aktualisieren, um Funktionen in Azure bereitzustellen. Die Aufgabe funktioniert auf plattformübergreifenden Azure Pipelines-Agents unter Windows, Linux oder Mac und verwendet die zugrunde liegenden Bereitstellungstechnologien von RunFromPackage, Zip Deploy und Kudu REST-APIs.

Die Aufgabe funktioniert für die von Azure Functions unterstützten Sprachen.

Voraussetzungen für den Vorgang

Die folgenden Voraussetzungen müssen in den Zielcomputern eingerichtet werden, damit die Aufgabe ordnungsgemäß funktioniert.

Azure-Funktion

Die Aufgabe wird verwendet, um ein Azure Functions-Projekt in einer vorhandenen Azure-Funktion bereitzustellen. Die Azure Function-App sollte vor dem Ausführen der Aufgabe vorhanden sein. Die Azure Function App kann über das Azure-Portalerstellt werden. Alternativ kann die Azure PowerShell-Aufgabe verwendet werden, um AzureRM PowerShell-Skripts auszuführen, um die Azure Function-App bereitzustellen und zu konfigurieren.

Die Aufgabe kann verwendet werden, um Azure Functions (Windows/Linux) bereitzustellen.

Azure-Abonnement

Zum Bereitstellen in Azure muss ein Azure-Abonnement mithilfe der Registerkarte "Dienste" im Abschnitt "Kontoverwaltung" mit Azure-Pipelines verknüpft werden. Fügen Sie das Azure-Abonnement hinzu, das in der Definition "Build" oder "Release Management" verwendet werden soll, indem Sie den Bildschirm "Kontoverwaltung" öffnen (Zahnradsymbol oben rechts auf dem Bildschirm), und klicken Sie dann auf die Registerkarte "Dienste".

Erstellen Sie den ARM--Dienstendpunkt, und verwenden Sie Azure Resource Manager Endpunkttyp. Weitere Informationen finden Sie in den schritten, die im Link hieraufgeführt sind.

Die Aufgabe funktioniert nicht mit dem Azure Classic-Dienstendpunkt und listet diese Verbindungen nicht in den Parametern in der Aufgabe auf.

Bereitstellungsmethoden

In dieser Aufgabe stehen mehrere Bereitstellungsmethoden zur Verfügung.

Um die paketbasierte Bereitstellungsoption in einer Designeraufgabe zu ändern, erweitern Sie zusätzliche Bereitstellungsoptionen, und aktivieren Sie Select Deployment Method.

Basierend auf dem Typ des Azure App Service- und Azure Pipelines-Agents verwendet die Aufgabe eine geeignete Bereitstellungstechnologie. Die von Aufgaben verwendeten Bereitstellungstechnologien sind wie folgt:

Standardmäßig versucht die Aufgabe, die entsprechende Bereitstellungstechnologie basierend auf dem Eingabepaket, dem App-Diensttyp und dem Agentbetriebssystem auszuwählen.

  • Wenn ein Skript nach der Bereitstellung bereitgestellt wird, verwenden Sie ZIP Deploy.
  • Wenn der App-Diensttyp Web App unter Linux ist, verwenden Sie ZIP Deploy.
  • Wenn eine WAR-Datei bereitgestellt wird, verwenden Sie War Deploy.
  • Wenn eine .jar Datei bereitgestellt wird, verwenden Sie "Run-From-Zip".
  • Verwenden Sie für alle anderen Aufgaben "Von Paket ausführen" (über Zip Deploy).

Bei einem Nicht-Windows-Agent (für jeden App-Diensttyp) basiert die Aufgabe auf der Kudu-REST-API zum Bereitstellen der Web-App.

Kudu-REST-API

Die Kudu-REST-API funktioniert sowohl für Windows- als auch linux-Automatisierungs-Agents, wenn es sich bei dem Ziel um eine Web App unter Windows, eine Web-App unter Linux (integrierte Quelle) oder eine Funktions-App handelt. Die Aufgabe verwendet Kudu, um Dateien in den Azure App Service zu kopieren.

Zip Deploy

Zip Deploy erstellt ein .zip Bereitstellungspaket aus dem ausgewählten Paket oder Ordner. Anschließend wird der Dateiinhalt im Wwwroot-Ordner der App-Dienst-Namensfunktions-App in Azure bereitgestellt. Mit dieser Option werden alle vorhandenen Inhalte im Ordner "wwwroot" überschrieben. Weitere Informationen finden Sie unter Zip-Bereitstellung für Azure Functions.

Ausführen von Paketen

"Von Package ausführen" erstellt das gleiche Bereitstellungspaket wie zip Deploy. Anstatt Dateien im Ordner "wwwroot" bereitzustellen, stellt die Functions-Laufzeit das gesamte Paket bereit. Wenn Sie diese Option verwenden, werden Dateien im Ordner "wwwroot" schreibgeschützt. Weitere Informationen finden Sie unter Ausführen Ihrer Azure-Funktionen aus einer Paketdatei.

Fehlerbehebung

Fehler: Zugriffstoken für Azure konnte nicht abgerufen werden. Überprüfen Sie, ob der verwendete Dienstprinzipal gültig und nicht abgelaufen ist.

Die Aufgabe verwendet den Dienstprinzipal in der Dienstverbindung, um sich bei Azure zu authentifizieren. Wenn der Dienstprinzipal abgelaufen ist oder keine Berechtigungen für den App-Dienst besitzt, schlägt die Aufgabe mit diesem Fehler fehl. Überprüfen Sie die Gültigkeit des verwendeten Dienstprinzipals, und überprüfen Sie, ob er in der App-Registrierung vorhanden ist. Weitere Informationen finden Sie unter Verwenden der rollenbasierten Zugriffssteuerung zum Verwalten des Zugriffs auf Ihre Azure-Abonnementressourcen. Dieser Blogbeitrag enthält auch weitere Informationen zur Verwendung der Dienstprinzipalauthentifizierung.

SSL-Fehler

Wenn Sie ein Zertifikat in App Service verwenden möchten, muss das Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle signiert werden. Wenn Ihre Web-App Fehler bei der Zertifikatüberprüfung anzeigt, verwenden Sie wahrscheinlich ein selbstsigniertes Zertifikat. Legen Sie eine Variable namens VSTS_ARM_REST_IGNORE_SSL_ERRORS auf den Wert true in der Build- oder Releasepipeline fest, um den Fehler zu beheben.

Eine Freigabe hängt lange und schlägt dann fehl.

Dieses Problem könnte das Ergebnis unzureichender Kapazität in Ihrem App Service-Plan sein. Um dieses Problem zu beheben, können Sie die App Service-Instanz skalieren, um den verfügbaren CPU-, RAM- und Festplattenspeicher zu erhöhen, oder versuchen Sie es mit einem anderen App Service-Plan.

5xx Fehlercodes

Wenn ein 5-xx--Fehler angezeigt wird, den Status Ihres Azure-Dienstsüberprüfen.

Azure-Funktion funktionierte plötzlich nicht mehr

Azure Functions funktioniert möglicherweise plötzlich nicht mehr, wenn seit der letzten Bereitstellung mehr als ein Jahr vergangen ist. Wenn Sie mit "RunFromPackage" in "deploymentMethod" bereitstellen, wird ein SAS mit einem Ablaufdatum von 1 Jahr generiert und als Wert von "WEBSITE_RUN_FROM_PACKAGE" in der Anwendungskonfiguration festgelegt. Azure Functions verwendet dieses SAS, um auf die Paketdatei für die Funktionsausführung zu verweisen. Wenn die SAS abgelaufen ist, wird die Funktion nicht ausgeführt. Um dieses Problem zu beheben, stellen Sie es erneut bereit, um ein SAS mit einem Ablaufdatum von einem Jahr zu generieren.

Fehler: Kein Paket mit angegebenem Muster gefunden

Überprüfen Sie, ob das in der Aufgabe erwähnte Paket als Artefakt im Build oder einer vorherigen Phase veröffentlicht und in den aktuellen Auftrag heruntergeladen wird.

Fehler: Die Veröffentlichung mithilfe der ZIP-Bereitstellungsoption wird für den MsBuild-Pakettyp nicht unterstützt.

Webpakete, die über die MSBuild-Aufgabe (mit Standardargumenten) erstellt werden, weisen eine geschachtelte Ordnerstruktur auf, die nur von Web Deploy ordnungsgemäß bereitgestellt werden kann. Die Bereitstellungsoption zum Veröffentlichen in ZIP kann nicht verwendet werden, um diese Pakete bereitzustellen. Gehen Sie folgendermaßen vor, um die Verpackungsstruktur zu konvertieren:

  1. Ändern Sie in der Aufgabe "Projektmappe erstellen" die MSBuild-Argumente in /p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl="$(System.DefaultWorkingDirectory)\\WebAppContent":

    Screenshot mit den Buildlösungswerten.

  2. Fügen Sie eine Archivaufgabe hinzu, und ändern Sie die Werte wie folgt:

    1. Ändern Sie Stammordner oder -datei, um in $(System.DefaultWorkingDirectory)\\WebAppContentzu archivieren.

    2. Deaktivieren Sie den Namen des Voreingestellten Stammordners, um Pfade Kontrollkästchen zu archivieren:

      Screenshot mit den Archivwerten.

Die Bereitstellung von Funktions-Apps unter Windows ist erfolgreich, die App funktioniert jedoch nicht.

Dieses Problem kann auftreten, wenn eine web.config Datei in Ihrer App nicht vorhanden ist. Sie können ihrer Quelle entweder eine web.config Datei hinzufügen oder eine datei automatisch generieren, indem Sie die Anwendungs- und Konfigurationseinstellungen der Aufgabe verwenden.

  1. Wählen Sie die Aufgabe aus, und wechseln Sie zu Generieren web.config Parameter für Python, Node.js, Go- und Java-Apps:

    Screenshot mit dem Abschnitt

  2. Wählen Sie die Schaltfläche "Weitere" (...) unter Parameter web.config für Python generieren, Node.js, Go- und Java-Apps, um die Parameter zu bearbeiten:

    Screenshot mit den Parametern

  3. Wählen Sie ihren Anwendungstyp in der Liste Anwendungsframework aus.

  4. Wählen Sie OKaus. Dadurch werden die web.config Parameter aufgefüllt, die zum Generieren der web.config Datei erforderlich sind.

Häufig gestellte Fragen

Wie soll ich meine Dienstverbindung konfigurieren?

Für diese Aufgabe ist eine Azure Resource Manager-Dienstverbindungerforderlich.

Wie sollte ich die Bereitstellung von Webaufträgen mit Application Insights konfigurieren?

Wenn Sie Application Insights konfiguriert haben und Remove additional files at destinationaktiviert haben, müssen Sie auch Exclude files from the App_Data folderaktivieren, wenn Sie Remove additional files at destinationin einem App-Dienst bereitstellen. Durch Aktivieren dieser Option wird die Application Insights-Erweiterung in einem sicheren Zustand beibehalten. Dieser Schritt ist erforderlich, da der fortlaufende WebJob von Application Insights im ordner App_Data installiert ist.

Wie sollte ich meinen Agent konfigurieren, wenn er sich hinter einem Proxy befindet, während ich im App Service bereitstelle?

Wenn Ihr selbst gehosteter Agent einen Webproxy benötigt, können Sie den Agent während der Konfiguration über den Proxy informieren. Auf diese Weise kann Ihr Agent über den Proxy eine Verbindung mit Azure Pipelines oder Azure DevOps Server herstellen. Erfahren Sie mehr über das Ausführen eines selbst gehosteten Agents hinter einem Webproxy.

Ich kann nicht mithilfe einer Azure Resource Manager-Dienstverbindung und eines von Microsoft gehosteten Agents in einer internen App Service-Umgebung bereitstellen.

Standardmäßig funktioniert ein von Microsoft gehosteter Agent nicht mit einer App-Dienstumgebung. Stattdessen müssen Sie einen privaten Agent auf einem virtuellen Computer konfigurieren, der sich im gleichen virtuellen Netzwerk wie die App Service-Umgebung befindet. Legen Sie außerdem eine private DNS-Zone fest, um die Kommunikation zwischen den Ressourcen zu ermöglichen.

Beispiele

Hier ist ein Beispiel für einen YAML-Codeausschnitt, der Azure-Funktionen unter Windows bereitstellt:


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

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

Um eine Funktion unter Linux bereitzustellen, fügen Sie den parameter appType hinzu, und legen Sie ihn auf appType: functionAppLinuxfest. Wenn Sie keinen Wert angeben, ist functionApp der Standardwert.

Um die Bereitstellungsmethode explizit als Zip Deploy anzugeben, fügen Sie den Parameter deploymentMethod: zipDeployhinzu. Ein weiterer unterstützter Wert für diesen Parameter ist runFromPackage. Wenn Sie keinen Wert angeben, ist auto der Standardwert.

Eine exemplarische Vorgehensweise zum Erstellen einer CI/CD-Pipeline finden Sie unter Erstellen und Bereitstellen von Java in Azure Functions.

Anforderungen

Anforderung Beschreibung
Pipelinetypen YAML, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.104.1 oder höher
Vorgangskategorie Aufstellen