0Pricing
Cloud & IT Cert Prep · Lekcja

Azure Container Apps

Proszę wdrożyć aplikację mikrousługową w Azure Container Apps z integracją sidecar Dapr, skonfigurować ruch przychodzący i użyć autoskalowania opartego na KEDA, wyzwalanego długością kolejki Service Bus.

Azure Container Apps to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Czym są Azure Container Apps?

Azure Container Apps (ACA) to w pełni zarządzana, bezserwerowa usługa hostingu kontenerów, zbudowana na bazie Kubernetes i KEDA (Kubernetes Event-Driven Autoscaling). W przeciwieństwie do AKS nie zarządzają Państwo bezpośrednio płaszczyzną sterowania, pulami węzłów ani manifestami Kubernetes. Zamiast tego wdrażają Państwo kontenery za pomocą prostego interfejsu wiersza polecenia lub definicji YAML, a platforma Azure zajmuje się całą orkiestracją. ACA doskonale nadaje się do mikrousług, zapleczy API, procesów roboczych sterowanych zdarzeniami i zadań przetwarzania w tle, które muszą skalować się dynamicznie, w tym do zera.

Środowiska Container Apps

Środowisko Container Apps to odizolowana granica, w ramach której działa co najmniej jedna aplikacja Container App. Wszystkie aplikacje w środowisku współdzielą tę samą sieć wirtualną i obszar roboczy usługi Log Analytics. Środowiska są przypisane do regionu i grupy zasobów. Można wdrożyć wiele środowisk, aby odizolować zespoły lub etapy (produkcję i środowisko przejściowe). Środowisko można opcjonalnie wstrzyknąć do sieci VNet, aby umożliwić prywatną komunikację między aplikacjami Container Apps a innymi usługami platformy Azure bez korzystania z publicznego internetu.

# Create a Container Apps environment
az containerapp env create \
  --name myACAEnvironment \
  --resource-group myRG \
  --location eastus

Wdrażanie aplikacji Container App

Aby wdrożyć aplikację Container App, należy określić obraz kontenera (z usługi Azure Container Registry lub dowolnego publicznego rejestru), liczbę replik oraz zmienne środowiskowe. Aplikacja jest publicznie dostępna za pośrednictwem automatycznie wygenerowanego adresu URL HTTPS po włączeniu ruchu przychodzącego zewnętrznego. Konfiguracja ruchu przychodzącego obejmuje port docelowy, podział ruchu na potrzeby wdrożeń blue-green oraz określenie, czy dozwolony jest wyłącznie protokół HTTP lub HTTPS. ACA pobiera obraz w czasie wdrażania; środowisko musi mieć uprawnienia do pobierania obrazów z rejestru.

# Deploy a container app from Azure Container Registry
az containerapp create \
  --name myapi \
  --resource-group myRG \
  --environment myACAEnvironment \
  --image myacr.azurecr.io/myapi:latest \
  --target-port 8080 \
  --ingress external \
  --registry-server myacr.azurecr.io \
  --min-replicas 1 \
  --max-replicas 10

Autoskalowanie oparte na KEDA

Container Apps skaluje się za pomocą komponentów skalujących KEDA, które reagują na metryki zewnętrzne. Wbudowane komponenty skalujące KEDA obejmują: ruch HTTP (liczba jednoczesnych żądań na replikę), głębokość kolejki Azure Service Bus (liczba oczekujących komunikatów), Azure Storage Queue, Cron (skalowanie zależne od czasu) oraz CPU/pamięć. Gdy wartość metryki skalera spadnie do zera, a minReplicas będzie ustawione na 0, Container Apps skaluje się do zera — nie generując kosztów obliczeniowych do czasu nadejścia nowych żądań. Skalowanie do zera doskonale sprawdza się w przypadku procesów roboczych sterowanych zdarzeniami o sporadycznym obciążeniu.

# Scale based on Service Bus queue depth
az containerapp update \
  --name myworker \
  --resource-group myRG \
  --scale-rule-name sbqueue-scaler \
  --scale-rule-type azure-servicebus \
  --scale-rule-metadata 'queueName=orders' 'namespace=myservicebusns' 'messageCount=5' \
  --scale-rule-auth 'connection=servicebus-connection-secret:connection' \
  --min-replicas 0 \
  --max-replicas 20

Integracja z Dapr

Dapr (Distributed Application Runtime) to przenośne środowisko uruchomieniowe sterowane zdarzeniami, które upraszcza tworzenie mikrousług. Container Apps zapewnia natywną integrację z Dapr — można ją włączyć dla każdej aplikacji za pomocą pojedynczej flagi. Dapr udostępnia bloki konstrukcyjne do obsługi: wywoływania usług (z ponawianiem prób i mTLS), komunikacji pub/sub (abstrahującej Service Bus i Event Hubs), zarządzania stanem (abstrahującego Redis i Cosmos DB) oraz powiązań wyjściowych. Dzięki Dapr mikrousługi komunikują się za pośrednictwem sidecara Dapr, bez znajomości szczegółów bazowej infrastruktury.

# Enable Dapr on a Container App
az containerapp update \
  --name myapi \
  --resource-group myRG \
  --enable-dapr \
  --dapr-app-id myapi \
  --dapr-app-port 8080 \
  --dapr-app-protocol http

Wersje i podział ruchu

Każde wdrożenie aplikacji Container App tworzy nową wersję. W trybie wielu wersji można podzielić ruch między wersje na potrzeby wdrożeń blue-green lub kanarkowych. Można na przykład skierować 10% ruchu do nowej wersji, a 90% do bieżącej stabilnej wersji. Przed zwiększeniem udziału ruchu nowej wersji do 100% należy monitorować w niej współczynniki błędów i opóźnienia. Stare wersje można dezaktywować, ale pozostają one w historii, co umożliwia natychmiastowe wycofanie zmiany przez przywrócenie wcześniejszego udziału ruchu.

# Set traffic split between two revisions
az containerapp ingress traffic set \
  --name myapi \
  --resource-group myRG \
  --revision-weight myapi--abc123=90 myapi--def456=10

Tajemnice i zmienne środowiskowe

Container Apps obsługuje dwa sposoby wstrzykiwania konfiguracji: zmienne środowiskowe (do nies wrażliwej konfiguracji, takiej jak flagi funkcji lub adresy URL interfejsów API) oraz tajniki (do wartości wrażliwych, takich jak parametry połączenia). Tajniki są przechowywane na poziomie aplikacji Container App i wskazywane przez zmienne środowiskowe lub komponenty Dapr. W celu zapewnienia najwyższego poziomu bezpieczeństwa należy odwoływać się do tajników z usługi Azure Key Vault za pomocą tożsamości zarządzanej, aby wartość sekretu była pobierana w czasie działania i nigdy nie była przechowywana w płaszczyźnie konfiguracji aplikacji Container App.

# Add a secret to a Container App
az containerapp secret set \
  --name myapi \
  --resource-group myRG \
  --secrets 'db-password=supersecretpassword'

# Reference the secret as an environment variable
az containerapp update \
  --name myapi \
  --resource-group myRG \
  --set-env-vars 'DB_PASSWORD=secretref:db-password'

Zadania: obciążenia wykonywane do zakończenia

Container Apps Jobs rozszerza platformę o obsługę obciążeń wykonywanych do zakończenia — kontenerów, które są uruchamiane, wykonują pracę, a następnie kończą działanie. Zadania obsługują trzy typy wyzwalaczy: Manual (wyzwalane za pośrednictwem interfejsu API lub interfejsu wiersza polecenia), Scheduled (wyrażenie cron) oraz Event-driven (skalowanie KEDA wyzwala każde wykonanie). Opłaty za zadania są naliczane wyłącznie za rzeczywisty czas wykonywania, dlatego doskonale nadają się one do przetwarzania wsadowego, generowania raportów, migracji baz danych oraz potoków wnioskowania ML uruchamianych okresowo lub w odpowiedzi na zdarzenia.

# Create a scheduled Container Apps job (run every hour)
az containerapp job create \
  --name my-batch-job \
  --resource-group myRG \
  --environment myACAEnvironment \
  --trigger-type Schedule \
  --cron-expression '0 * * * *' \
  --image myacr.azurecr.io/batchjob:latest \
  --cpu 0.5 --memory 1Gi

Obserwowalność: dzienniki i metryki

Container Apps wysyła dzienniki systemowe (zdarzenia platformy, takie jak tworzenie rewizji i skalowanie) oraz dzienniki konsoli (strumienie stdout/stderr aplikacji) do obszaru roboczego Log Analytics dołączonego do środowiska. Dzienniki można wyszukiwać za pomocą KQL: ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'myapi' | project TimeGenerated, Log_s. Wbudowane metryki Azure Monitor obejmują liczbę replik, liczbę żądań, opóźnienie żądań oraz wykorzystanie procesora i pamięci dla każdej repliki — wszystkie są dostępne w witrynie Azure Portal bez dodatkowej konfiguracji.

# Stream live logs from a Container App
az containerapp logs show \
  --name myapi \
  --resource-group myRG \
  --follow

ACA a AKS i App Service

Wybór odpowiedniej platformy kontenerowej Azure: Container Apps najlepiej sprawdza się w przypadku mikrousług, procesów roboczych sterowanych zdarzeniami i interfejsów API, gdy potrzebują Państwo zalet Kubernetes bez zarządzania klastrem — szczególnie gdy istotne jest skalowanie do zera. AKS jest najlepszym wyborem, gdy potrzebują Państwo pełnej kontroli nad Kubernetes, niestandardowych operatorów lub określonych konfiguracji węzłów (GPU, duża ilość pamięci). App Service najlepiej nadaje się do tradycyjnych aplikacji internetowych i interfejsów API, gdy zespół programistyczny preferuje prosty model PaaS bez narzutu związanego z zarządzaniem kontenerami. Wszystkie trzy usługi obsługują kontenery; różnica dotyczy poziomu złożoności zarządzania i zakresu kontroli.

Sieć: ruch przychodzący wewnętrzny i zewnętrzny

Container Apps obsługuje dwa tryby ruchu przychodzącego: External (publicznie dostępny za pośrednictwem równoważonego obciążeniem punktu końcowego HTTPS z automatyczną obsługą TLS) oraz Internal (dostępny wyłącznie z tego samego środowiska Container Apps lub z zasobów połączonych z siecią VNet za pomocą peeringu). Wewnętrzny ruch przychodzący jest używany w przypadku usług zaplecza, które nigdy nie powinny być udostępniane w internecie. Aplikacje mogą wywoływać się wzajemnie za pomocą automatycznie wygenerowanej wewnętrznej nazwy DNS http://myapi w tym samym środowisku, co umożliwia prostą komunikację między usługami bez wdrażania bramy API.

Szybkie sprawdzenie

Sprawdź swoją znajomość zagadnień Microsoft Azure Fundamentals (AZ-900) omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji dowiedzieli się Państwo, że Azure Container Apps zapewnia bezserwerowe uruchamianie kontenerów oparte na Kubernetes i KEDA, bez konieczności zarządzania klastrem, skalery KEDA umożliwiają skalowanie do zera na podstawie długości kolejki, ruchu HTTP lub harmonogramów cron, a integracja z Dapr upraszcza komunikację między mikrousługami i zarządzanie stanem. W następnej części połączymy wszystkie elementy w kompletny kompleksowy przepływ pracy dewelopera.

Często zadawane pytania

Czy lekcja „Azure Container Apps” jest bezpłatna?

Tak — pełny tekst „Azure Container Apps” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „Azure Container Apps”?

Proszę wdrożyć aplikację mikrousługową w Azure Container Apps z integracją sidecar Dapr, skonfigurować ruch przychodzący i użyć autoskalowania opartego na KEDA, wyzwalanego długością kolejki Service… Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?

Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Azure Container Apps”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?

Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tożsamość zarządzana do uwierzytelniania bez haseł
  2. Azure Service Bus do komunikacji rozdzielonej
  3. Azure Container Apps
  4. Kompletny przepływ pracy dewelopera
← Powrót do Cloud & IT Cert Prep