AzureFunctionAppContainer@1 - Funzioni di Azure per l'attività contenitore v1
Aggiornare un'app per le funzioni con un contenitore Docker.
Sintassi
# 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.
Ingressi dati
azureSubscription
-
sottoscrizione di Azure
string
. Obbligatorio.
Seleziona il sottoscrizione di Azure Resource Manager per la distribuzione.
nome app
string
. Obbligatorio.
Nome dell'app per le funzioni per contenitori.
deployToSlotOrASE
-
distribuire nell'ambiente del servizio app o slot
boolean
. Valore predefinito: false
Impostare questo input su true
per la distribuzione in uno slot di distribuzione esistente o nell'ambiente del servizio app di Azure. L'attività richiede un nome di gruppo di risorse per entrambe le destinazioni. Per l'opzione slot di distribuzione, l'impostazione predefinita viene distribuita nello slot di produzione oppure è possibile specificare qualsiasi altro nome di slot esistente. Se la destinazione di distribuzione è un ambiente del servizio app di Azure, lasciare il nome dello slot come di produzione e specificare il nome del gruppo di risorse.
resourceGroupName
-
gruppo di risorse
string
. Obbligatorio quando deployToSlotOrASE = true
.
Nome del gruppo di risorse che contiene l'app per le funzioni per i contenitori.
slotName
-
slot
string
. Obbligatorio quando deployToSlotOrASE = true
. Valore predefinito: production
Immette o seleziona uno slot esistente, escluso lo slot di produzione.
imageName
-
Nome immagine
string
. Obbligatorio.
Un nome di dominio di primo livello univoco globale per il registro o lo spazio dei nomi specifico.
Nota: Un nome di immagine completo sarà del formato: <registry or namespace> <repository> <tag>
. Ad esempio: myregistry.azurecr.io/nginx:latest
.
containerCommand
-
comando di avvio
string
.
Comando di avvio che viene eseguito dopo la distribuzione. Ad esempio, dotnet run
dotnet filename.dll.
impostazioni dell'app
string
.
Immettere le impostazioni dell'applicazione usando la sintassi -key value
(ad esempio: -Port 5000
-RequestTimeout 5000
-WEBSITE_TIME_ZONE
). Racchiudere i valori che contengono spazi tra virgolette doppie , ad esempio "Eastern Standard Time"
.
configurationStrings
-
impostazioni di configurazione
string
.
Immettere le stringhe di configurazione usando la sintassi -key value
( ad esempio, -phpVersion 5.6
-linuxFxVersion: node|6.11
). Racchiudere i valori che contengono spazi tra virgolette doppie.
Opzioni di controllo delle attività
Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Questa attività definisce le variabili di output seguenti , che è possibile utilizzare nei passaggi downstream, nei processi e nelle fasi.
AppServiceApplicationUrl
L'URL dell'applicazione del servizio app selezionato.
Osservazioni:
Usare questa attività per distribuire una funzione di Azure in Linux usando un'immagine personalizzata .
Errore: Non è stato possibile recuperare il token di accesso per Azure. Verificare se l'entità servizio usata è valida e non scaduta.
L'attività usa l'entità servizio nella connessione al servizio per l'autenticazione con Azure. Se l'entità servizio è scaduta o non dispone delle autorizzazioni per il servizio app, l'attività non riesce con questo errore. Verificare la validità dell'entità servizio usata e controllare che sia presente nella registrazione dell'app. Per altre informazioni, vedere Usare il controllo degli accessi in base al ruolo per gestire l'accesso alle risorse della sottoscrizione di Azure. Questo post di blog contiene anche altre informazioni sull'uso dell'autenticazione dell'entità servizio.
Errore SSL
Se si vuole usare un certificato nel servizio app, il certificato deve essere firmato da un'autorità di certificazione attendibile. Se l'app Web restituisce errori di convalida dei certificati, è probabile che si stia usando un certificato autofirmato. Impostare una variabile denominata VSTS_ARM_REST_IGNORE_SSL_ERRORS
sul valore true
nella pipeline di compilazione o versione per risolvere l'errore.
Una versione si blocca per molto tempo e quindi ha esito negativo
Questo problema potrebbe essere il risultato di capacità insufficiente nel piano di servizio app. Per risolvere questo problema, è possibile aumentare le prestazioni dell'istanza del servizio app per aumentare la CPU, la RAM e lo spazio su disco disponibili o provare con un piano di servizio app diverso.
5xx codici di errore
Se viene visualizzato un errore di 5xx, controllare lo stato del servizio di Azure.
La funzione di Azure ha improvvisamente smesso di funzionare
Funzioni di Azure può improvvisamente smettere di funzionare se sono trascorsi più di un anno dall'ultima distribuzione. Se si esegue la distribuzione con "RunFromPackage" in "deploymentMethod", viene generata una firma di accesso condiviso con data di scadenza di 1 anno e impostata come valore di "WEBSITE_RUN_FROM_PACKAGE" nella configurazione dell'applicazione. Funzioni di Azure usa questa firma di accesso condiviso per fare riferimento al file del pacchetto per l'esecuzione della funzione, quindi se la firma di accesso condiviso è scaduta, la funzione non verrà eseguita. Per risolvere questo problema, eseguire di nuovo la distribuzione per generare una firma di accesso condiviso con una data di scadenza di un anno.
Come configurare la connessione al servizio?
Questa attività richiede una connessione al servizio Azure Resource Manager .
Come configurare la distribuzione di processi Web con Application Insights?
Quando si esegue la distribuzione in un servizio app, se è stato configurato Application Insights ed è stato abilitato Remove additional files at destination
, è necessario abilitare anche Exclude files from the App_Data folder
. L'abilitazione di questa opzione mantiene l'estensione di Application Insights in uno stato sicuro. Questo passaggio è necessario perché il processo Web continuo di Application Insights è installato nella cartella App_Data.
Come si configura l'agente se è dietro un proxy durante la distribuzione nel servizio app?
Se l'agente self-hosted richiede un proxy Web, è possibile informare l'agente sul proxy durante la configurazione. In questo modo l'agente può connettersi ad Azure Pipelines o al server Azure DevOps tramite il proxy. Altre informazioni sull'esecuzione di un agente self-hosted dietro un proxy Web.
Esempi
Questo esempio distribuisce Funzioni di Azure in Linux usando contenitori:
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)
Requisiti
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
richieste | Nessuno |
funzionalità di | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Qualunque |
variabili impostabili | Qualunque |
Versione dell'agente | 2.104.1 o versione successiva |
Categoria attività | Distribuire |