Azure Container Apps
Ota mikropalvelusovellus käyttöön Azure Container Appsissa Dapr-sidecar-integraation avulla, määritä ingress ja käytä Service Bus -jonon syvyyden käynnistämää KEDA-pohjaista automaattista skaalausta
Azure Container Apps on ilmainen Cloud & IT Cert Prep-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cloud & IT Cert Prep-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.
Mitä Azure Container Apps on?
Azure Container Apps (ACA) on täysin hallittu palvelimeton konttien isännöintipalvelu, joka perustuu Kubernetes-järjestelmään ja KEDA:an (Kubernetes Event-Driven Autoscaling). Toisin kuin AKS:ssä, Teidän ei tarvitse hallita ohjaustasoa, solmuryhmiä tai Kubernetes-manifesteja suoraan. Sen sijaan otatte kontit käyttöön yksinkertaisella CLI-komennolla tai YAML-määrityksellä, ja Azure huolehtii kaikesta orkestroinnista. ACA soveltuu erinomaisesti mikropalveluille, API-taustapalveluille, tapahtumapohjaisille työntekijöille ja taustakäsittelytehtäville, joiden on skaalauduttava dynaamisesti, mukaan lukien skaalaus nollaan.
Container Apps -ympäristöt
Container Apps -ympäristö on eristetty raja, jonka sisällä yksi tai useampi Container App suoritetaan. Kaikki ympäristön sovellukset jakavat saman näennäisverkon ja Log Analytics -työtilan. Ympäristöt rajataan alueelle ja resurssiryhmälle. Voitte ottaa käyttöön useita ympäristöjä tiimien tai vaiheiden (tuotanto ja valmistelu) eristämiseksi. Ympäristö voidaan halutessa injektoida VNet-verkkoon omaan näennäisverkkoonne, jolloin Container Apps -sovellukset ja muut Azure-palvelut voivat viestiä yksityisesti ilman julkista internetiä.
# Create a Container Apps environment
az containerapp env create \
--name myACAEnvironment \
--resource-group myRG \
--location eastusContainer App -sovelluksen käyttöönotto
Container App -sovelluksen käyttöönottoa varten määritätte konttikuvan (Azure Container Registrystä tai mistä tahansa julkisesta rekisteristä), replikoiden määrän ja ympäristömuuttujat. Sovellus on käytettävissä julkisesti automaattisesti luodun HTTPS-URL-osoitteen kautta, jos otatte ulkoisen sisääntulon käyttöön. Sisääntulon määritykseen kuuluvat kohdeportti, liikenteen jako blue-green-käyttöönottoja varten sekä se, sallitaanko vain HTTP- vai myös HTTPS-liikenne. ACA noutaa kuvan käyttöönoton yhteydessä, joten ympäristöllä on oltava nouto-oikeudet rekisteriin.
# 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 10KEDA-pohjainen automaattinen skaalaus
Container Apps skaalautuu KEDA-skaalainten avulla, jotka käynnistyvät ulkoisten mittareiden perusteella. Sisäänrakennettuja KEDA-skaalaimia ovat muun muassa HTTP-liikenne (samanaikaiset pyynnöt replikaa kohden), Azure Service Bus -jonon syvyys (odottavien viestien määrä), Azure Storage Queue, Cron (aikaperusteinen skaalaus) sekä CPU/muisti. Kun skaalaimen mittarin arvo laskee nollaan ja minReplicas on asetettu arvoon 0, Container Apps skaalautuu nollaan – laskentakustannuksia ei synny ennen uusien pyyntöjen saapumista. Skaalaus nollaan sopii erinomaisesti tapahtumapohjaisille työntekijöille, joiden työkuorma on satunnaista.
# 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 20Dapr-integrointi
Dapr (Distributed Application Runtime) on siirrettävä, tapahtumapohjainen ajonaikainen ympäristö, joka yksinkertaistaa mikropalvelujen rakentamista. Container Apps sisältää alkuperäisen Dapr-integroinnin – otatte sen käyttöön sovelluskohtaisesti yhdellä lipulla. Dapr tarjoaa rakennuspalikoita seuraaviin tarkoituksiin: palvelukutsut (uudelleenyritykset ja mTLS), julkaise–tilaa-viestintä (Service Busin ja Event Hubsin abstraktointi), tilanhallinta (Redisin ja Cosmos DB:n abstraktointi) sekä tulossidonnat. Dapr-sovelluksissa mikropalvelut viestivät Dapr-sidecarin kautta tuntematta taustalla olevan infrastruktuurin yksityiskohtia.
# 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 httpRevisiot ja liikenteen jakaminen
Jokainen Container App -sovelluksen käyttöönotto luo uuden revision-version. Usean revision tila mahdollistaa liikenteen jakamisen revisioiden välillä blue-green- tai canary-käyttöönottoja varten. Voitte esimerkiksi ohjata 10 % liikenteestä uuteen revisioon ja 90 % nykyiseen vakaaseen revisioon. Valvokaa uuden revision virhemääriä ja viivettä ennen kuin kasvatatte sen liikenneosuuden 100 prosenttiin. Vanhat revisiot voidaan poistaa käytöstä, mutta ne säilytetään historiassa, joten välitön palautus on mahdollista siirtämällä liikenneosuus takaisin.
# Set traffic split between two revisions
az containerapp ingress traffic set \
--name myapi \
--resource-group myRG \
--revision-weight myapi--abc123=90 myapi--def456=10Salaisuudet ja ympäristömuuttujat
Container Apps tukee kahta tapaa lisätä määrityksiä: ympäristömuuttujat (ei-luottamukselliset määritykset, kuten ominaisuusliput tai API-URL-osoitteet) ja salaisuudet (luottamukselliset arvot, kuten yhteysmerkkijonot). Salaisuudet tallennetaan Container App -tasolla, ja niihin viitataan ympäristömuuttujilla tai Dapr-komponenteilla. Turvallisinta on viitata salaisuuksiin Azure Key Vaultista hallitun identiteetin avulla, jolloin salaisuus noudetaan ajonaikaisesti eikä sitä koskaan tallenneta Container Appin määritystasolle.
# 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'Työt: loppuun suoritettavat työkuormat
Container Apps Jobs laajentaa alustaa tukemaan kerralla loppuun suoritettavia työkuormia eli säilöjä, jotka käynnistyvät, suorittavat tehtävänsä ja lopettavat. Jobit tukevat kolmea käynnistystyyppiä: Manual (käynnistetään API:n tai CLI:n kautta), Scheduled (cron-lauseke) ja Event-driven (KEDA-skaalain käynnistää jokaisen suorituksen). Jobien laskutus perustuu vain todelliseen suoritusaikaan, joten ne sopivat erinomaisesti eräkäsittelyyn, raporttien luomiseen, tietokantojen migraatioihin ja säännöllisesti tai tapahtumien perusteella suoritettaviin ML-päättelyputkiin.
# 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 1GiHavainnointi: lokit ja metriikat
Container Apps lähettää järjestelmälokit (alustan tapahtumat, kuten revision luominen ja skaalaus) ja konsolilokit (sovelluksesi stdout/stderr) ympäristöön liitettyyn Log Analytics -työtilaan. Kyselyt tehdään KQL:llä: ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'myapi' | project TimeGenerated, Log_s. Sisäänrakennetut Azure Monitor -metriikat sisältävät replikoiden määrän, pyyntöjen määrän, pyyntöjen viiveen sekä suorittimen ja muistin käytön replikaa kohden. Kaikki nämä ovat käytettävissä Azure-portaalissa ilman lisämäärityksiä.
# Stream live logs from a Container App
az containerapp logs show \
--name myapi \
--resource-group myRG \
--followACA vs. AKS vs. App Service
Oikean Azure-säilöalustan valinta: Container Apps sopii parhaiten mikropalveluille, tapahtumapohjaisille työntekijöille ja API-rajapinnoille, kun haluatte Kubernetesin hyödyt ilman klusterin hallintaa – erityisesti silloin, kun skaalaus nollaan on hyödyllistä. AKS sopii parhaiten tilanteisiin, joissa tarvitsette täyden hallinnan Kubernetesista, mukautettuja operaattoreita tai tietynlaisia solmumäärityksiä (GPU, suuri muistikapasiteetti). App Service sopii parhaiten perinteisille verkkosovelluksille ja API-rajapinnoille, kun kehittäjätiimi suosii yksinkertaista PaaS-mallia ilman säilöjen hallinnan lisäkuormaa. Kaikki kolme tukevat säilöjä; ero on hallinnan monimutkaisuuden ja hallinnan laajuuden välillä.
Verkottuminen: sisäinen ja ulkoinen ingress
Container Apps tukee kahta ingress-tilaa: External (julkisesti käytettävissä kuormaa tasapainottavan HTTPS-päätepisteen kautta automaattisella TLS-suojauksella) ja Internal (käytettävissä vain samasta Container Apps -ympäristöstä tai VNet-peeringillä yhdistetyistä resursseista). Sisäistä ingressiä käytetään taustapalveluille, joita ei saa koskaan julkaista internetiin. Sovellukset voivat kutsua toisiaan samassa ympäristössä automaattisesti luodulla sisäisellä DNS-nimellä http://myapi, mikä mahdollistaa yksinkertaisen palveluiden välisen viestinnän ilman API-yhdyskäytävän käyttöönottoa.
Pikatesti
Testaa tämän oppitunnin Microsoft Azure Fundamentals (AZ-900) -käsitteiden ymmärtämistä.
Oppitunnin yhteenveto
Tässä oppitunnissa opitte, että Azure Container Apps tarjoaa Kubernetesin ja KEDA:n päälle rakennetun palvelimettoman säilöjen isännöinnin ilman klusterin hallintaa, KEDA-skaalain mahdollistaa skaalauksen nollaan jonon pituuden, HTTP-liikenteen tai cron-aikataulujen perusteella ja Dapr-integraatio yksinkertaistaa mikropalveluiden välistä viestintää ja tilanhallintaa. Seuraavaksi yhdistämme kaiken kattavaksi päästä päähän ulottuvaksi kehittäjän työnkuluksi.
Opi Cloud & IT Cert Prep tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 150
- Oppitunnit
- 600
Usein kysytyt kysymykset
Onko oppitunti ”Azure Container Apps” ilmainen?
Kyllä – oppitunnin ”Azure Container Apps” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cloud & IT Cert Prep-kurssin, päivitä CoddyKit PROhon. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Azure Container Apps”?
Ota mikropalvelusovellus käyttöön Azure Container Appsissa Dapr-sidecar-integraation avulla, määritä ingress ja käytä Service Bus -jonon syvyyden käynnistämää KEDA-pohjaista automaattista skaalausta Harjoittelet Cloud & IT Cert Prep-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Cloud & IT Cert Prep-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Cloud & IT Cert Prep-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Azure Container Apps”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Cloud & IT Cert Prep-oppitunnilla?
Kyllä. Jokainen Cloud & IT Cert Prep-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Hallittu identiteetti salasanattomaan todentamiseen
- Azure Service Bus irrotettuun viestintään
- Azure Container Apps
- Kehittäjän päästä päähän -työnkulku