Gary Lumsden.

Gary Lumsden.

Cloud Architecture, Microsoft Azure, Code.

Azure Funksjon Apps Apps Deployment Slots.

Azure Function Apps stotter na distribusjonsspor (i forhandsvisning) akkurat som deres App Service sosken. Slik distribuerer du en Azure Function App med distribusjonsspor ved hjelp av en ARM-mal.

Oppdatering: Det var et par problemer med den opprinnelige malingen i dette innlegget. Den forste er beskrevet og lost her og det andre, mer kritiske problemet, her. Den siste malen nedenfor har blitt oppdatert med feilrettinger pa disse problemene.

Nar du distribuerer direkte til produksjonssporet (til det forrige, det eneste alternativet) for en HTTP-utlost-funksjon, kan forbrukerne motta HTTP 503 – Service Utilgjengelige svar og andre 50X-statuskoder. Dette er et problem for mange systemer som krever hoy tilgjengelighet. Distribusjonsspor er funksjonen som lofter Azure Function Apps fra et interessant prospekt til (nesten) klar for kritiske produksjonsbelastninger.

Ytterligere spor har sin egen nettadresse for a aktivere testing og kan byttes tilbake hvis en feil oppdages. Kritisk blir trafikken somlost omdirigert til det nye sporet. Bytte distribusjonssporet er en rask og viktigst, lar deg fortsette a betjene foresporsler og levere verdi til kundene dine.

Azure Funksjon App Slots fungerer pa samme mate som Azure Web Apps og inkluderer funksjoner som klissete innstillinger (kjent offisielt som Slot Settings) som deres App Service-kolleger.

Slots stottes ogsa i forbruksplanen, men bare ett ekstra distribusjonsspor er tilgjengelig. For de fleste brukssaker er dette sannsynligvis nok.

Det er et par viktige ting a huske pa:

Nar du utforer en bytte, bytter alle funksjoner i en funksjonsapp. Alle innstillinger vil ogsa byttes ut med mindre innstillingene som er sporspesifikke, er merket som Slot Settings. Kritisk nar appinnstillingene inneholder innstillinger for triggerbindingsinnstillinger, for eksempel hendelseshub-inngangstilkoblinger og SQL Database-utgangstilkoblinger.

Ressursbehandling Maler.

Mange organisasjoner bruker na Resource Manager Templates til a distribuere ressurser til Azure. I min rolle ma alle nye distribusjoner bruke ARM, og eksisterende distribusjoner blir oppdatert for a bruke ARM.

Som du forventer na at Azure Function Apps er GA, er det mulig a bruke dem med ARM Maler. Veiledning for distribusjon av funksjonsapper til enten Forbruker- eller App-serviceplaner, finner du i Veiledningen pa Microsoft Docs-siden.

ARM og Azure Funksjon App Slots.

Sa, det er mulig a distribuere Azure Function Apps ved hjelp av ARM, men hva med konfigurering av spor og sporinnstillinger siden de er forhandsvisningsfunksjoner? Gode nyheter! Dette er ogsa mulig, selv om det ikke er dokumentert med s rlig respekt for Azure Functions.

Hvis du ser pa en Azure Function App ARM Mal og sammenligner den med en Web App ARM Mal, vil du se at de er veldig like. Konfigurere spor og spilleautomater med ARM fungerer noyaktig pa samme mate som for en webapp.

Denne utklippet distribuerer et distribusjonsspor som heter utvikling og er en del ressurs av funksjonen App Ressource:

Denne ressursdefinisjonen ma inkluderes som en ressurs for funksjonen App ressurs i sin «ressurser»: [] array. Det ma ogsa eksplisitt avhenge av sin overordnede ressurs (funksjonen App).

Ogsa med notat i sporressursen er dets underressursoppsett som inkluderer appinnstillingene for sporet (som igjen ma eksplisitt avhenge av overordnet og «spot» monsteret!). En av innstillingene kalles StickySetting, som, som navnet antyder, vi vil at verdien skal ha en affinitet til kilde- og destinasjonsspor nar en bytte finner sted. Sa hvordan konfigurerer vi det i malen?

Dette ma ogsa inkluderes i «ressursene»: [] -armen av funksjonen app ressursen og igjen ma eksplisitt avhenge av foreldre ressurs. Bare oppgi innstillingsnavnene som vil v re sporinnstillinger i de uthevede linjene.

Nar malen er distribuert, bor du se i delen Programinnstillinger i Funksjonsportalen som StickySetting er satt til a v re en Slot Setting.

Full ARM-mal.

Disse utdragene er en del av en storre mal som er verdt a se pa i sin helhet for a gi sammenheng til de enkelte delene over. Den vil distribuere alle ressurser som kreves for en Azure Function App med utviklingsspor og inkluderer ogsa en Application Insights-konto, som er en god kandidat for sporinnstillinger og # 8211; endre malen for a opprette en Application Insights-konto for hvert spor, sett instrumentasjonsnokkelen i konfigurasjonen for funksjonsappen og sporet angi deretter at APPINSIGHTS_INSTRUMENTATIONKEY er en sporingsinnstilling. Da vil du kunne se og administrere app-telemetri for produksjon og utvikling separat.

Denne malen legger ogsa til en unik streng til navnet pa hver ressurs. Det betyr at distribusjon til en enkelt ressursgruppe er idempotent, men den kan ogsa distribueres til en annen ressursgruppe uten a matte endre noen av parameterne (med mindre du vil). Sannsynligheten for kollisjon av ressursnavn (og dermed nettadresser, etc) er sv rt liten.

Denne fullmalen har blitt oppdatert etter de snags jeg oppdaget (snag # 1, snag # 2) etter a ha opprinnelig publisert dette innlegget. Den opprinnelige mal finner du her.

Utplasseringsskriptet kan ogsa bli funnet i min GitHub. Gi det et forsok.

Dele denne:

Post navigasjon.

4 tanker om & ldquo; Implementere Azure Funksjon App med distribusjonsspor ved a bruke ARM Maler & rdquo;

Takk for denne serien av innlegg.

Forklar deg … Si at du ma legge til eller endre en tilpasset appinnstilling: Du vil bare ha denne innstillingen i distribusjonssporet, ikke sant? Du vil onske a validere den nye koden, med de nye innstillingene, mens du sitter i det sporet. Du vil kun soke om produksjon senere ved hjelp av slot-swap.

I hvert fall er det det jeg skjonte … Hvorfor stiller malmen innstillingene pa begge stedene?

Hei Iain. Jeg haper du har funnet dem nyttige.

Jeg vil bare kontrollere noen oppforsel for jeg gir deg et definitivt svar. Jeg kommer tilbake til deg ASAP.

Ja veldig nyttig, takk!

Jeg har ogsa funnet i dag at MSDeploying til oppsamlingssporet (MYAPP-MYSLOT.scm.azurewebsites.net) skaper funksjonene pa begge steder. Gjor det hele ganske meningslost.

Kontroller at verdien for WEBSITE_CONTENTSHARE er en annen verdi i hver sporkonfigurasjon.


Hallo! Vil du spille i det mest heldige kasinoet? Vi forbereder det for deg. Klikk her nå!