Tworzenie zadania za pomocą usługi Azure Container Apps
Zadania usługi Azure Container Apps umożliwiają uruchamianie konteneryzowanych zadań wykonywanych przez skończony czas trwania i zakończenie. Zadanie można wyzwolić ręcznie, zaplanować ich wykonywanie lub wyzwolić ich wykonywanie na podstawie zdarzeń.
Zadania najlepiej nadają się do zadań, takich jak przetwarzanie danych, uczenie maszynowe, oczyszczanie zasobów lub dowolny scenariusz, który wymaga przetwarzania na żądanie.
W tym przewodniku Szybki start utworzysz zadanie ręczne lub zaplanowane. Aby dowiedzieć się, jak utworzyć zadanie sterowane zdarzeniami, zobacz Wdrażanie zadania sterowanego zdarzeniami za pomocą usługi Azure Container Apps.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją.
- Jeśli nie masz konta, możesz je utworzyć teraz za darmo.
- Zainstaluj interfejs wiersza polecenia platformy Azure.
- Zapoznaj się z ograniczeniami zadań, aby zapoznać się z listą ograniczeń.
Ustawienia
Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.
az login
Upewnij się, że używasz najnowszej wersji interfejsu wiersza polecenia za pomocą polecenia uaktualnienia.
az upgrade
Zainstaluj najnowszą wersję rozszerzenia interfejsu wiersza polecenia usługi Azure Container Apps.
az extension add --name containerapp --upgrade
Microsoft.App
Zarejestruj przestrzenie nazw ,Microsoft.OperationalInsights
iMicrosoft.Storage
, jeśli nie zostały jeszcze zarejestrowane w ramach subskrypcji platformy Azure.az provider register --namespace Microsoft.App az provider register --namespace Microsoft.OperationalInsights az provider register --namespace Microsoft.Storage
Teraz, gdy konfiguracja interfejsu wiersza polecenia platformy Azure została ukończona, możesz zdefiniować zmienne środowiskowe używane w tym artykule.
RESOURCE_GROUP="jobs-quickstart" LOCATION="northcentralus" ENVIRONMENT="env-jobs-quickstart" JOB_NAME="my-job"
Tworzenie środowiska usługi Container Apps
Środowisko usługi Azure Container Apps działa jako bezpieczna granica wokół aplikacji i zadań kontenerów, dzięki czemu mogą współużytkować tę samą sieć i komunikować się ze sobą.
Utwórz grupę zasobów przy użyciu poniższego polecenia.
az group create \ --name "$RESOURCE_GROUP" \ --location "$LOCATION"
Utwórz środowisko Container Apps przy użyciu następującego polecenia.
az containerapp env create \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --location "$LOCATION"
Tworzenie i uruchamianie zadania ręcznego
Aby użyć zadań ręcznych, należy najpierw utworzyć zadanie z typem Manual
wyzwalacza, a następnie rozpocząć wykonywanie. Można uruchomić wiele wykonań tego samego zadania, a wiele wykonań zadań może być uruchamianych współbieżnie.
Utwórz zadanie w środowisku Container Apps przy użyciu następującego polecenia.
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"
Zadania ręczne nie są wykonywane automatycznie. Musisz rozpocząć wykonywanie zadania.
Uruchom wykonanie zadania przy użyciu następującego polecenia.
az containerapp job start \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP"
Polecenie zwraca szczegóły wykonania zadania, w tym jego nazwę.
Tworzenie i uruchamianie zaplanowanego zadania
Aby użyć zaplanowanych zadań, należy utworzyć zadanie z typem Schedule
wyzwalacza i wyrażeniem cron definiującym harmonogram.
Utwórz zadanie w środowisku Container Apps, które rozpoczyna się co minutę, używając następującego polecenia.
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 * * * *"
Wykonania zadań są uruchamiane automatycznie zgodnie z harmonogramem.
Zadania usługi Container Apps używają wyrażeń cron do definiowania harmonogramów. Obsługuje standardowy format wyrażenia cron z pięcioma polami minut, godziny, dnia miesiąca, miesiąca i dnia tygodnia.
Wyświetlanie listy ostatnich historii wykonywania zadania
Zadania usługi Container Apps utrzymują historię ostatnich wykonań. Możesz wyświetlić listę wykonań zadania.
az containerapp job execution list \
--name "$JOB_NAME" \
--resource-group "$RESOURCE_GROUP" \
--output table \
--query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
Wykonania zaplanowanych zadań są wyświetlane na liście podczas ich uruchamiania.
Status Name StartTime
--------- -------------- -------------------------
Succeeded my-job-jvsgub6 2023-05-08T21:21:45+00:00
Wykonywanie zapytań dotyczących dzienników wykonywania zadań
Zadanie wykonuje dzienniki wyjściowe do dostawcy rejestrowania skonfigurowanego dla środowiska usługi Container Apps. Domyślnie dzienniki są przechowywane w usłudze Azure Log Analytics.
Zapisz identyfikator obszaru roboczego usługi Log Analytics dla środowiska Container Apps w zmiennej.
LOG_ANALYTICS_WORKSPACE_ID=$(az containerapp env show \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --query "properties.appLogsConfiguration.logAnalyticsConfiguration.customerId" \ --output tsv)
Zapisz nazwę ostatniego wykonania zadania w zmiennej.
JOB_EXECUTION_NAME=$(az containerapp job execution list \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query "[0].name" \ --output tsv)
Uruchom zapytanie względem usługi Log Analytics na potrzeby wykonywania zadania przy użyciu następującego polecenia.
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"
Uwaga
ContainerAppConsoleLogs_CL
Dopóki tabela nie będzie gotowa, polecenie nie zwraca żadnych wyników lub z błędem:BadArgumentError: The request had some invalid properties
. Zaczekaj kilka minut i ponownie uruchom polecenie.Poniższe dane wyjściowe to przykład dzienników drukowanych przez wykonanie zadania.
[ "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!" ]
Czyszczenie zasobów
Jeśli nie zamierzasz nadal korzystać z tej aplikacji, uruchom następujące polecenie, aby usunąć grupę zasobów wraz ze wszystkimi zasobami utworzonymi w tym przewodniku Szybki start.
Uwaga
Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby spoza zakresu tego przewodnika Szybki start istnieją w określonej grupie zasobów, zostaną również usunięte.
az group delete --name "$RESOURCE_GROUP"
Napiwek
Masz problemy? Poinformuj nas o usłudze GitHub, otwierając problem w repozytorium usługi Azure Container Apps.