Delen via


AzureFunctionAppContainer@1 - Azure Functions voor container v1-taak

Een functie-app bijwerken met een Docker-container.

Syntaxis

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

Invoer

azureSubscription - Azure-abonnement
string. Verplicht.

Selecteert het Azure Resource Manager-abonnement voor de implementatie.


appName - app-naam
string. Verplicht.

De naam van de functie-app voor containers.


deployToSlotOrASE - implementeren in site- of App Service Environment-
boolean. Standaardwaarde: false.

Stel deze invoer in op true om te implementeren naar een bestaande implementatiesite of Azure App Service Environment. De taak heeft een resourcegroepnaam nodig voor beide doelen. Voor de implementatiesiteoptie wordt de standaardimplementatie naar de productiesite site geïmplementeerd of kunt u een andere bestaande sitenaam opgeven. Als het implementatiedoel een Azure App Service Environment is, laat u de sitenaam staan als productie- en geeft u de naam van de resourcegroep op.


resourceGroupName - resourcegroep
string. Vereist wanneer deployToSlotOrASE = true.

De naam van de resourcegroep die de functie-app voor containers bevat.


slotName - Slot
string. Vereist wanneer deployToSlotOrASE = true. Standaardwaarde: production.

Hiermee wordt een bestaande site ingevoerd of geselecteerd, met uitzondering van de productiesite site.


imageName - naam van installatiekopieën
string. Verplicht.

Een wereldwijd unieke domeinnaam op het hoogste niveau voor uw specifieke register of naamruimte.

Opmerking: een volledig gekwalificeerde installatiekopieënnaam heeft de volgende indeling: <registry or namespace> <repository> <tag>. Bijvoorbeeld: myregistry.azurecr.io/nginx:latest.


containerCommand - opdracht Opstarten
string.

De opstartopdracht die na de implementatie wordt uitgevoerd. Bijvoorbeeld dotnet rundotnet filename.dll.


appSettings - app-instellingen
string.

Voer de toepassingsinstellingen in met behulp van de syntaxis -key value (bijvoorbeeld: -Port 5000-RequestTimeout 5000-WEBSITE_TIME_ZONE). Plaats waarden tussen spaties tussen dubbele aanhalingstekens (bijvoorbeeld: "Eastern Standard Time").


configurationStrings - Configuratie-instellingen
string.

Voer de configuratietekenreeksen in met behulp van de syntaxis -key value (bijvoorbeeld: -phpVersion 5.6-linuxFxVersion: node|6.11). Plaats waarden tussen spaties tussen dubbele aanhalingstekens.


Opties voor taakbeheer

Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.

Uitvoervariabelen

Deze taak definieert de volgende uitvoervariabelen, die u kunt gebruiken in downstreamstappen, taken en fasen.

AppServiceApplicationUrl
de toepassings-URL van de geselecteerde App Service.

Opmerkingen

Gebruik deze taak om een Azure-functie in Linux te implementeren met behulp van een aangepaste installatiekopieën.

Fout: kan het toegangstoken voor Azure niet ophalen. Controleer of de gebruikte service-principal geldig is en niet is verlopen.

De taak gebruikt de service-principal in de serviceverbinding om te verifiëren met Azure. Als de service-principal is verlopen of geen machtigingen heeft voor de App Service, mislukt de taak met deze fout. Controleer de geldigheid van de service-principal die wordt gebruikt en of deze aanwezig is in de appregistratie. Zie Op rollen gebaseerd toegangsbeheer gebruiken voor het beheren van de toegang tot uw Azure-abonnementsresourcesvoor meer informatie. Dit blogbericht bevat ook meer informatie over het gebruik van service-principalverificatie.

SSL-fout

Als u een certificaat in App Service wilt gebruiken, moet het certificaat worden ondertekend door een vertrouwde certificeringsinstantie. Als uw web-app u certificaatvalidatiefouten geeft, gebruikt u waarschijnlijk een zelfondertekend certificaat. Stel een variabele met de naam VSTS_ARM_REST_IGNORE_SSL_ERRORS in op de waarde true in de build- of release-pijplijn om de fout op te lossen.

Een release loopt lang vast en mislukt

Dit probleem kan het gevolg zijn van onvoldoende capaciteit in uw App Service-plan. U kunt dit probleem oplossen door het App Service-exemplaar omhoog te schalen om de beschikbare CPU, RAM en schijfruimte te vergroten of een ander App Service-plan te gebruiken.

5xx foutcodes

Als u een fout van 5xx ziet, de status van uw Azure-service controleren.

Azure Function werkt plotseling niet meer

Azure Functions werkt mogelijk plotseling niet meer als er meer dan één jaar is verstreken sinds de laatste implementatie. Als u implementeert met 'RunFromPackage' in 'deploymentMethod', wordt een SAS met een vervaldatum van 1 jaar gegenereerd en ingesteld als de waarde 'WEBSITE_RUN_FROM_PACKAGE' in de toepassingsconfiguratie. Azure Functions gebruikt deze SAS om te verwijzen naar het pakketbestand voor de uitvoering van de functie. Als de SAS is verlopen, wordt de functie dus niet uitgevoerd. U kunt dit probleem oplossen door opnieuw te implementeren om een SAS te genereren met een vervaldatum van één jaar.

Hoe moet ik mijn serviceverbinding configureren?

Voor deze taak is een Azure Resource Manager-serviceverbindingvereist.

Hoe moet ik de implementatie van webtaken configureren met Application Insights?

Wanneer u implementeert in een App Service, moet u ook inschakelen als u Remove additional files at destination Insights hebt geconfigureerd en u Exclude files from the App_Data folderhebt ingeschakeld. Als u deze optie inschakelt, blijft de Application Insights-extensie veilig. Deze stap is vereist omdat de continue webtaak van Application Insights is geïnstalleerd in de map App_Data.

Hoe moet ik mijn agent configureren als deze zich achter een proxy bevindt terwijl ik implementeer in App Service?

Als uw zelf-hostende agent een webproxy vereist, kunt u de agent informeren over de proxy tijdens de configuratie. Hierdoor kan uw agent via de proxy verbinding maken met Azure Pipelines of Azure DevOps Server. Meer informatie over het uitvoeren van een zelf-hostende agent achter een webproxy.

Voorbeelden

In dit voorbeeld wordt Azure Functions in Linux geïmplementeerd met behulp van containers:


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)

Vereisten

Voorwaarde Beschrijving
Pijplijntypen YAML, klassieke build, klassieke release
Wordt uitgevoerd op Agent, DeploymentGroup
eisen Geen
mogelijkheden Deze taak voldoet niet aan de vereisten voor volgende taken in de taak.
opdrachtbeperkingen Welk dan ook
variabelen instellen Welk dan ook
Agentversie 2.104.1 of hoger
Taakcategorie Implementeren