Creare un processo con App Azure Container
I processi di App Azure Container consentono di eseguire attività in contenitori che vengono eseguite per una durata e un'uscita finiti. È possibile attivare un processo manualmente, pianificarne l'esecuzione o attivarne l'esecuzione in base a eventi.
I processi sono più adatti per attività come l'elaborazione dei dati, l'apprendimento automatico, la pulizia delle risorse o qualsiasi scenario che richiede l'elaborazione su richiesta.
In questa guida introduttiva si crea un processo manuale o pianificato. Per informazioni su come creare un processo basato su eventi, vedere Distribuire un processo basato su eventi con app contenitore di Azure.
Prerequisiti
- Un account Azure con una sottoscrizione attiva.
- Se non hai un account, puoi crearlo gratuitamente.
- Installare l'interfaccia della riga di comando di Azure.
- Per un elenco delle limitazioni, vedere Restrizioni dei processi.
Attrezzaggio
Per accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.
az login
Assicurarsi di eseguire la versione più recente dell'interfaccia della riga di comando tramite il comando di aggiornamento.
az upgrade
Installare la versione più recente dell'estensione dell'interfaccia della riga di comando di App Azure Container.
az extension add --name containerapp --upgrade
Registrare gli
Microsoft.App
spazi dei nomi eMicrosoft.OperationalInsights
se non sono già stati registrati nella sottoscrizione di Azure.az provider register --namespace Microsoft.App az provider register --namespace Microsoft.OperationalInsights
Dopo aver completato la configurazione dell'interfaccia della riga di comando di Azure, è possibile definire le variabili di ambiente usate in questo articolo.
RESOURCE_GROUP="jobs-quickstart" LOCATION="northcentralus" ENVIRONMENT="env-jobs-quickstart" JOB_NAME="my-job"
Creare un ambiente app contenitore
L'ambiente app Azure Container funge da limite sicuro per le app e i processi del contenitore, in modo che possano condividere la stessa rete e comunicare tra loro.
Creare un gruppo di risorse usando il comando seguente.
az group create \ --name "$RESOURCE_GROUP" \ --location "$LOCATION"
Creare l'ambiente App contenitore usando il comando seguente.
az containerapp env create \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --location "$LOCATION"
Creare ed eseguire un processo manuale
Per usare i processi manuali, creare prima un processo con tipo di Manual
trigger e quindi avviare un'esecuzione. È possibile avviare più esecuzioni dello stesso processo e più esecuzioni di processi possono essere eseguite simultaneamente.
Creare un processo nell'ambiente App contenitore usando il comando seguente.
az containerapp job create \ --name "$JOB_NAME" --resource-group "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \ --trigger-type "Manual" \ --replica-timeout 1800 \ --image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \ --cpu "0.25" --memory "0.5Gi"
I processi manuali non vengono eseguiti automaticamente. È necessario avviare un'esecuzione del processo.
Avviare un'esecuzione del processo usando il comando seguente.
az containerapp job start \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP"
Il comando restituisce i dettagli dell'esecuzione del processo, incluso il nome.
Creare ed eseguire un processo pianificato
Per usare i processi pianificati, creare un processo con tipo di Schedule
trigger e un'espressione cron che definisce la pianificazione.
Creare un processo nell'ambiente App contenitore che viene avviato ogni minuto usando il comando seguente.
az containerapp job create \
--name "$JOB_NAME" --resource-group "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
--trigger-type "Schedule" \
--replica-timeout 1800 \
--image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \
--cpu "0.25" --memory "0.5Gi" \
--cron-expression "*/1 * * * *"
Le esecuzioni dei processi vengono avviate automaticamente in base alla pianificazione.
I processi di App contenitore usano espressioni cron per definire le pianificazioni. Supporta il formato di espressione cron standard con cinque campi per minuto, ora, giorno del mese, mese e giorno della settimana.
Elencare la cronologia di esecuzione dei processi recenti
I processi di App contenitore mantengono una cronologia delle esecuzioni recenti. È possibile elencare le esecuzioni di un processo.
az containerapp job execution list \
--name "$JOB_NAME" \
--resource-group "$RESOURCE_GROUP" \
--output table \
--query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
Le esecuzioni di processi pianificati vengono visualizzate nell'elenco durante l'esecuzione.
Status Name StartTime
--------- -------------- -------------------------
Succeeded my-job-jvsgub6 2023-05-08T21:21:45+00:00
Eseguire query sui log di esecuzione dei processi
L'esecuzione del processo restituisce i log di output al provider di registrazione configurato per l'ambiente App contenitore. Per impostazione predefinita, i log vengono archiviati in Azure Log Analytics.
Salvare l'ID dell'area di lavoro Log Analytics per l'ambiente App contenitore in una variabile.
LOG_ANALYTICS_WORKSPACE_ID=$(az containerapp env show \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --query "properties.appLogsConfiguration.logAnalyticsConfiguration.customerId" \ --output tsv)
Salvare il nome dell'esecuzione del processo più recente in una variabile.
JOB_EXECUTION_NAME=$(az containerapp job execution list \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query "[0].name" \ --output tsv)
Eseguire una query su Log Analytics per l'esecuzione del processo usando il comando seguente.
az monitor log-analytics query \ --workspace "$LOG_ANALYTICS_WORKSPACE_ID" \ --analytics-query "ContainerAppConsoleLogs_CL | where ContainerGroupName_s startswith '$JOB_EXECUTION_NAME' | order by _timestamp_d asc" \ --query "[].Log_s"
Nota
Finché la
ContainerAppConsoleLogs_CL
tabella non è pronta, il comando non restituisce risultati o con un errore:BadArgumentError: The request had some invalid properties
. Attendere alcuni minuti ed eseguire di nuovo il comando.L'output seguente è un esempio dei log stampati dall'esecuzione del processo.
[ "2023/04/24 18:38:28 This is a sample application that demonstrates how to use Azure Container Apps jobs", "2023/04/24 18:38:28 Starting processing...", "2023/04/24 18:38:33 Finished processing. Shutting down!" ]
Pulire le risorse
Se non si intende continuare a usare questa applicazione, eseguire il comando seguente per eliminare il gruppo di risorse insieme a tutte le risorse create in questa guida introduttiva.
Attenzione
Il comando seguente elimina il gruppo di risorse specificato e tutte le risorse contenute al suo interno. Se nel gruppo di risorse specificato sono presenti anche risorse diverse da quelle usate in questa guida di avvio rapido, verranno eliminate.
az group delete --name "$RESOURCE_GROUP"
Suggerimento
Problemi? Segnalare il problema in GitHub aprendo un problema nel repository di App contenitore di Azure.