AzureFunctionAppContainer@1 – Azure Functions für Container v1-Task
Aktualisieren einer Funktions-App mit einem Docker-Container.
Aktualisieren von Funktions-Apps mit Docker-Containern.
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.
Eingaben
azureSubscription
- Azure-Abonnement
string
. Erforderlich.
Wählt das Azure Resource Manager-Abonnement für die Bereitstellung aus.
appName
- App-Name
string
. Erforderlich.
Der Name der Funktions-App für Container.
deployToSlotOrASE
- Bereitstellen im Slot oder App Service-Umgebung
boolean
. Standardwert. false
.
Legen Sie diese Eingabe auf festtrue
, um die Bereitstellung in einem vorhandenen Bereitstellungsslot oder Azure App Service Umgebung durchzuführen. Die Aufgabe benötigt einen Ressourcengruppennamen für beide Ziele. Für die Bereitstellungsslotoption wird standardmäßig im Produktionsslot bereitgestellt, oder Sie können einen anderen vorhandenen Slotnamen angeben. Wenn es sich bei dem Bereitstellungsziel um eine Azure App Service-Umgebung handelt, behalten Sie den Slotnamen produktion bei, und geben Sie den Namen der Ressourcengruppe an.
resourceGroupName
- Ressourcengruppe
string
. Erforderlich, wenn deployToSlotOrASE = true
.
Der Name der Ressourcengruppe, die die Funktions-App für Container enthält.
slotName
- Slot
string
. Erforderlich, wenn deployToSlotOrASE = true
. Standardwert. production
.
Gibt einen vorhandenen Slot mit Ausnahme des Produktionsslots ein oder wählt diese aus.
imageName
- Bildname
string
. Erforderlich.
Ein global eindeutiger Domänenname der obersten Ebene für Ihre spezifische Registrierung oder Ihren Namespace.
Hinweis: Ein vollqualifizierter Imagename hat das folgende Format: <registry or namespace> <repository> <tag>
. Beispielsweise myregistry.azurecr.io/nginx:latest
.
containerCommand
- Startbefehl
string
.
Der Startbefehl, der nach der Bereitstellung ausgeführt wird. Beispiel: dotnet run
dotnet filename.dll.
.
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, die Leerzeichen enthalten, in doppelte Anführungszeichen ein (z. B. ). "Eastern Standard Time"
configurationStrings
- Konfigurationseinstellungen
string
.
Geben Sie die Konfigurationszeichenfolgen mithilfe der Syntax -key value
ein (z. B. ). -phpVersion 5.6
-linuxFxVersion: node|6.11
Schließen Sie Werte, die Leerzeichen enthalten, in doppelte Anführungszeichen ein.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.
Ausgabevariablen
Diese Aufgabe definiert die folgenden Ausgabevariablen, die Sie in Downstreamschritten, Aufträgen und Phasen verwenden können.
AppServiceApplicationUrl
Die Anwendungs-URL des ausgewählten App Service.
Hinweise
Verwenden Sie diese Aufgabe, um eine Azure-Funktion unter Linux mithilfe eines benutzerdefinierten Images bereitzustellen.
Fehler: Das 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 die App Service hat, schlägt der Task mit diesem Fehler fehl. Überprüfen Sie die Gültigkeit des verwendeten Dienstprinzipals, und vergewissern Sie sich, dass er in der App-Registrierung vorhanden ist. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf Ihre Azure-Abonnementressourcen mithilfe der rollenbasierten Zugriffssteuerung. 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 Zertifikatüberprüfungsfehler meldet, 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.
Ein Release bleibt für längere Zeit hängen und wird dann nicht erfolgreich abgeschlossen.
Dieses Problem kann auf unzureichende Kapazität in Ihrem App Service-Plan resultieren. Um dieses Problem zu beheben, können Sie die App Service instance hochskalieren, um die verfügbaren CPU-, RAM- und Datenträgerspeicherplätze zu erhöhen, oder versuchen Sie es mit einem anderen App Service Plan.
Fehlercodes vom Typ 5xx
Wenn der Fehler 5xx angezeigt wird, überprüfen Sie die status Ihres Azure-Diensts.
Azure-Funktion funktioniert 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 eine SAS mit einem Ablaufdatum von 1 Jahr generiert und als Wert von "WEBSITE_RUN_FROM_PACKAGE" in der Anwendungskonfiguration festgelegt. Azure Functions verwendet diese SAS, um auf die Paketdatei für die Funktionsausführung zu verweisen. Wenn die SAS also abgelaufen ist, wird die Funktion nicht ausgeführt. Um dieses Problem zu beheben, stellen Sie erneut bereit, um eine SAS mit einem Ablaufdatum von einem Jahr zu generieren.
Wie sollte ich meine Dienstverbindung konfigurieren?
Für diese Aufgabe ist eine Azure Resource Manager-Dienstverbindung erforderlich.
Wie sollte ich die Webauftragsbereitstellung mit Application Insights konfigurieren?
Wenn Sie die Bereitstellung in einem App Service durchführen, wenn Sie Application Insights konfiguriert und aktiviert Remove additional files at destination
haben, müssen Sie auch aktivierenExclude files from the App_Data folder
. Wenn Sie diese Option aktivieren, bleibt die Application Insights-Erweiterung in einem sicheren Zustand. Dieser Schritt ist erforderlich, da der fortlaufende Application Insights-WebJob im Ordner App_Data installiert ist.
Wie sollte ich meinen Agent konfigurieren, wenn er sich bei der Bereitstellung in App Service hinter einem Proxy befindet?
Wenn Für Ihren selbstgehosteten Agent ein Webproxy erforderlich ist, 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 die Ausführung eines selbstgehosteten Agents hinter einem Webproxy.
Beispiele
In diesem Beispiel wird Azure Functions unter Linux mithilfe von Containern bereitgestellt:
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)
Anforderungen
Anforderung | BESCHREIBUNG |
---|---|
Pipelinetypen | YAML, Klassischer Build, klassisches Release |
Wird ausgeführt auf | Agent, DeploymentGroup |
Forderungen | Keine |
Capabilities | Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag. |
Befehlseinschränkungen | Any |
Setzbare Variablen | Any |
Agent-Version | 2.104.1 oder höher |
Aufgabenkategorie | Bereitstellen |