{"id":2171,"date":"2025-10-15T10:16:32","date_gmt":"2025-10-15T08:16:32","guid":{"rendered":"https:\/\/techlance.ddns.net\/?p=2171"},"modified":"2025-10-15T10:17:18","modified_gmt":"2025-10-15T08:17:18","slug":"azure-functions-v2-azure-container-apps-ymparistossa-uusi-suositeltu-malli-ja-siirtymaohje","status":"publish","type":"post","link":"https:\/\/techlance.ddns.net\/en\/azure-functions-v2-azure-container-apps-ymparistossa-uusi-suositeltu-malli-ja-siirtymaohje\/","title":{"rendered":"Azure Functions V2 Azure Container Apps -ymp\u00e4rist\u00f6ss\u00e4 \u2013 uusi suositeltu malli ja siirtym\u00e4ohje"},"content":{"rendered":"<p>Microsoft on julkaissut uuden, parannetun mallin <strong>Azure Functions -sovellusten ajamiseen Azure Container Apps -ymp\u00e4rist\u00f6ss\u00e4<\/strong>.<br>Uusi <strong>Functions V2<\/strong> -malli perustuu moderniin <strong>Microsoft.App Resource Provideriin (RP)<\/strong> ja korvaa aiemman <strong>V1-mallin (Microsoft.Web RP)<\/strong>.<br>T\u00e4m\u00e4 muutos yksinkertaistaa hallintaa, lis\u00e4\u00e4 ominaisuuksia ja mahdollistaa t\u00e4ysin natiivin Container Apps -kokemuksen Functions-sovelluksille.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u2699\ufe0f <strong>Mit\u00e4 Azure Functions Container Apps -mallit ovat<\/strong><\/h3>\n\n\n\n<p>Azure Functions on palvelumalli, jossa kehitt\u00e4j\u00e4 voi ajaa serveritt\u00f6mi\u00e4 funktioita skaalautuvassa ymp\u00e4rist\u00f6ss\u00e4 ilman infrastruktuurin hallintaa.<br>Azure Container Apps puolestaan tarjoaa konttipohjaisen, skaalautuvan ja joustavan ajoymp\u00e4rist\u00f6n.<\/p>\n\n\n\n<p>N\u00e4iden yhdistelm\u00e4 \u2013 <strong>Functions on Container Apps<\/strong> \u2013 tuo yhteen serveritt\u00f6m\u00e4n kehitysmallin ja konttien hallinnan joustavuuden.<\/p>\n\n\n\n<p>Microsoft tukee t\u00e4ll\u00e4 hetkell\u00e4 kahta l\u00e4hestymistapaa:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Malli<\/th><th>Resource Provider<\/th><th>Tila<\/th><th>Suositus<\/th><\/tr><\/thead><tbody><tr><td><strong>Functions V1<\/strong><\/td><td>Microsoft.Web RP (perinteinen malli)<\/td><td>Legacy<\/td><td>Ei suositeltu<\/td><\/tr><tr><td><strong>Functions V2<\/strong><\/td><td>Microsoft.App RP (uusi malli)<\/td><td>Aktiivinen<\/td><td>Suositeltu<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddf1 <strong>V1-mallin rajoitukset<\/strong><\/h2>\n\n\n\n<p>Vanha <strong>Functions V1<\/strong> -malli k\u00e4ytt\u00e4\u00e4 ns. v\u00e4lillist\u00e4 proxy-resurssia (Function App + Container App). T\u00e4m\u00e4 tekee hallinnasta monimutkaista ja rajoittaa toiminnallisuuksia.<\/p>\n\n\n\n<p>Keskeiset rajoitteet:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd27 <strong>Rajoitettu diagnostiikka ja virheenkorjaus<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ei suoraa p\u00e4\u00e4sy\u00e4 konttiin<\/li>\n\n\n\n<li>Ei reaaliaikaista lokien seurantaa<\/li>\n\n\n\n<li>Konsolin ja Live Log -toiminnot rajoitettu<\/li>\n\n\n\n<li>Diagnostiikka vain Log Analyticsin ja Application Insightsin kautta<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udda5\ufe0f <strong>Rajoitettu portaalikokemus<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ei tukea moniversioinnille (multi-revision)<\/li>\n\n\n\n<li>Ei Easy Auth -tukea<\/li>\n\n\n\n<li>Ei terveysprobeja tai mukautettuja domaineja<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd04 <strong>Dapr-yhteensopivuusongelmat<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ongelmat .NET Isolated Functions -projekteissa riippuvuuksien hallinnan vuoksi<\/li>\n\n\n\n<li>Rakennusprosessien yhteensopivuushaasteita<\/li>\n<\/ul>\n\n\n\n<p>N\u00e4iden rajoitusten vuoksi Microsoft suosittelee siirtymist\u00e4 V2-malliin mahdollisimman pian.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\ude80 <strong>Functions V2 \u2013 uusi ja suositeltu malli<\/strong><\/h2>\n\n\n\n<p>Uusi <strong>Functions V2<\/strong> perustuu <strong>Microsoft.App RP<\/strong> -malliin ja ottaa k\u00e4ytt\u00f6\u00f6n Azure Container Appsin natiivin toimintaymp\u00e4rist\u00f6n ilman v\u00e4lillist\u00e4 Function App -proxy\u00e4.<\/p>\n\n\n\n<p>T\u00e4m\u00e4 tarkoittaa:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Yksinkertaisempi resurssihallinta (vain yksi resurssi)<\/li>\n\n\n\n<li>Parempi skaalautuvuus ja valvonta<\/li>\n\n\n\n<li>Kaikki Container Apps -ominaisuudet k\u00e4ytett\u00e4viss\u00e4 suoraan<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 <strong>Keskeiset V2-ominaisuudet<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Ominaisuus<\/th><th>Kuvaus<\/th><\/tr><\/thead><tbody><tr><td><strong>Multi-revision &amp; Traffic Split<\/strong><\/td><td>Mahdollisuus hallita useita versioita ja jakaa liikennett\u00e4 niiden v\u00e4lill\u00e4<\/td><\/tr><tr><td><strong>Easy Auth<\/strong><\/td><td>Sis\u00e4\u00e4nrakennettu todennus ja valtuutus<\/td><\/tr><tr><td><strong>Private Endpoints<\/strong><\/td><td>Turvallinen p\u00e4\u00e4sy vain valtuutetusta verkosta<\/td><\/tr><tr><td><strong>Health Probes<\/strong><\/td><td>Terveystarkistukset automaattiseen skaalaamiseen<\/td><\/tr><tr><td><strong>Metrics &amp; Alerts<\/strong><\/td><td>Laajennettu valvonta ja h\u00e4lytykset<\/td><\/tr><tr><td><strong>Custom Domains &amp; SSL<\/strong><\/td><td>Mukautetut domainit ja hallitut varmenteet<\/td><\/tr><tr><td><strong>Scale Settings<\/strong><\/td><td>Polling- ja Cooldown-intervallit<\/td><\/tr><tr><td><strong>Secrets &amp; Sidecar Containers<\/strong><\/td><td>Suora tuki Container Appsin salaisuuksille ja rinnakkaiskonteille<\/td><\/tr><tr><td><strong>CI\/CD Integration<\/strong><\/td><td>Azure Pipelines ja GitHub Actions -tuki<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Yhteenveto:<\/strong><br>V2 tarjoaa t\u00e4yden Container Apps -kokemuksen \u2014 ilman V1:n rajoituksia.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u26a0\ufe0f <strong>Legacy-skenaario: suora konttikuvan k\u00e4ytt\u00f6\u00f6notto ilman FunctionApp-tyyppi\u00e4<\/strong><\/h2>\n\n\n\n<p>Joissain organisaatioissa Function-kuvia on otettu k\u00e4ytt\u00f6\u00f6n <strong>\u201ctavallisina Container Appeina\u201d<\/strong> ilman <code>--kind=functionapp<\/code> -asetusta.<br>Vaikka t\u00e4m\u00e4 mahdollistaa natiivien Container Apps -ominaisuuksien k\u00e4yt\u00f6n, se ei ole tuettu malli.<\/p>\n\n\n\n<p>Rajoitukset:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ei automaattista skaalautumista<\/li>\n\n\n\n<li>Ei p\u00e4\u00e4sy\u00e4 uusiin V2-toimintoihin (kuten Function Keys tai Invocation Count)<\/li>\n\n\n\n<li>Ei virallista tukea<\/li>\n<\/ul>\n\n\n\n<p><strong>Suositus:<\/strong> siirry Functions V2 -malliin mahdollisimman pian.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udded <strong>Siirtym\u00e4ohje: Functions V1 \u2192 V2<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Valmistelu<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Varmista, ett\u00e4 nykyinen sovelluksesi on V1 (Microsoft.Web RP)<\/li>\n\n\n\n<li>Tunnista k\u00e4ytetty konttikuva<\/li>\n\n\n\n<li>Tallenna ymp\u00e4rist\u00f6muuttujat, salaisuudet ja verkkoasetukset<\/li>\n\n\n\n<li>Tarkista Container App -ymp\u00e4rist\u00f6n quota (CPU, RAM, instanssit)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Luo uusi V2-sovellus<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Luo uusi Container App k\u00e4ytt\u00e4en asetusta <code>--kind=functionapp<\/code><\/li>\n\n\n\n<li>Voit k\u00e4ytt\u00e4\u00e4 samaa konttikuvaa \u2013 <strong>ei vaadi koodimuutoksia<\/strong><\/li>\n\n\n\n<li>Lis\u00e4\u00e4 aiemmat asetukset ja salaisuudet uuteen sovellukseen<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Testaus<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vahvista, ett\u00e4 kaikki triggerit (HTTP, Event Hub, Service Bus jne.) toimivat oikein<\/li>\n\n\n\n<li>Testaa tietokanta- ja tallennusyhteydet<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. DNS ja domainit<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Huomioi, ett\u00e4 V2-sovelluksella on eri oletus-URL<\/li>\n\n\n\n<li>P\u00e4ivit\u00e4 mahdolliset mukautetut domainit ja SSL-varmenteet<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. K\u00e4ytt\u00f6\u00f6notto (Cutover)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ohjaa tuotantoliikenne uuteen sovellukseen<\/li>\n\n\n\n<li>Seuraa suorituskyky\u00e4 ja virhelokeja<\/li>\n\n\n\n<li>Tiedota sidosryhmi\u00e4 muutoksesta<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Siivous<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Poista vanha V1-sovellus k\u00e4yt\u00f6st\u00e4<\/li>\n\n\n\n<li>P\u00e4ivit\u00e4 dokumentaatio ja DevOps-putket<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 <strong>Yhteenveto<\/strong><\/h2>\n\n\n\n<p><strong>Azure Functions V2 on Azure Container Apps<\/strong> edustaa modernia ja t\u00e4ysiverist\u00e4 mallia serveritt\u00f6mien sovellusten ajamiseen konttiymp\u00e4rist\u00f6ss\u00e4.<\/p>\n\n\n\n<p>Se tarjoaa:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>yksinkertaisemman hallinnan,<\/li>\n\n\n\n<li>paremmat CI\/CD- ja valvontaty\u00f6kalut,<\/li>\n\n\n\n<li>ja t\u00e4yden tuen Azure Container Appsin ominaisuuksille.<\/li>\n<\/ul>\n\n\n\n<p>\ud83d\udc49 Jos k\u00e4yt\u00e4t viel\u00e4 Functions V1 -mallia, nyt on oikea aika suunnitella siirtym\u00e4.<br>Microsoftin tavoitteena on siirt\u00e4\u00e4 kaikki Functions Container Apps -k\u00e4ytt\u00f6\u00f6notot V2-malliin vuoden 2026 aikana.<\/p>","protected":false},"excerpt":{"rendered":"<p>Microsoft on julkaissut uuden, parannetun mallin Azure Functions -sovellusten ajamiseen Azure Container Apps -ymp\u00e4rist\u00f6ss\u00e4.Uusi Functions V2 -malli perustuu moderniin Microsoft.App [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[19,10],"tags":[14],"class_list":["post-2171","post","type-post","status-publish","format-standard","hentry","category-azure","category-platform","tag-azure"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/techlance.ddns.net\/en\/wp-json\/wp\/v2\/posts\/2171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techlance.ddns.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techlance.ddns.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techlance.ddns.net\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techlance.ddns.net\/en\/wp-json\/wp\/v2\/comments?post=2171"}],"version-history":[{"count":0,"href":"https:\/\/techlance.ddns.net\/en\/wp-json\/wp\/v2\/posts\/2171\/revisions"}],"wp:attachment":[{"href":"https:\/\/techlance.ddns.net\/en\/wp-json\/wp\/v2\/media?parent=2171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techlance.ddns.net\/en\/wp-json\/wp\/v2\/categories?post=2171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techlance.ddns.net\/en\/wp-json\/wp\/v2\/tags?post=2171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}