Azure Developer Associate (YT) - Functions Flashcards
Wat is serverless?
Fully managed cloud service, billed on execution. Can be scale-to-zero
* Highly elastic-scalable
* highly available (heeft wel een warmup nodig)
* Highly durable
* Secure by default
Pay-for-value
Wat is Function as a Service (FAAS) zoals Azure function
Stuk code met event-driven integration trigger in een container.
Voor een serverless app ken je meerdere functions gebruiken.
Functions runnen alleen wanneer ze nodig zijn
FAAS is alleen serverless als je het volledig kunt beheren en scale-to-zero
Wat zijn de Azure function onderdelen?
- Trigger > gekozen event wat een function start. Maar 1 mogelijk
- Input Binding > 1:* datasources die de eerste functie krijgt
- Function App > Collectie of functies met hosting, Runtime en andere instellingen
- Output bindings > 1:* Data consumer dat de output krijg
Welke Storage options heeft een Azure Functions?
- Blob > binding by state & function keys
- Azure Files > File share in Consumption&Premium plan > Set by default
- Queue storage > gebruikt door task hubs en Durable functions
- Table storage > gebruikt door task hubs en Durable functions
Azure function: Welke Authorization levels zijn er?
- anonymous > geen key nodig
- function > functions specific API key nodig (default)
- admin > master key
is later aan te passen
Azure function: Debuggen gaat met Enable stream. Welke opties heb je daarvoor?
Enable streaming log geeft je twee opties
* Built-in log streaming (In Portal en vaak ook lokaal) > App Service laat je de stream of log files zien
* Live Metric Stream > Als je function met Application Insights is verbonden, zie je logdata en andere metric in near realtime
Azure function: Wat is een Application Runtime?
Een docker container met de juiste config. om jou code te runnen. Ondersteund standaard C#, Java, Node.js, PS Core, Python.
Je kunt ook een Custom Handler maken voor bijv. Rust, GO, Ruby ermee kunnen werken
Een Virtual machine dus
Windows vs Linux hosting
Probeer default Windows te gebruiken omdat niet alles voor Linux beschikbaar is. Voor Windows heb je een hogere serviceplan nog.
Connecten met Windows kan van SSH, RDP en Bastion
Connection met Linux kan met SSH en Bastion
Welke Function templates zijn er om als trigger in te stellen?
- http > ontvangt en returns HTTP
- timer
- Blob storage > by uploaded/updated van een blob
- Cosmos DB
- Quees storage
- Event Grid > Serverless even bus in Azure services
- Event Hub (streaming)
- Service Bus Queue (messaging)
- Service Bus Topics (pub/sub)
- SendGrid (email)
Waar slaan we de Azure function conf. op?
in de function.json definieer je triggers, bindings en andere configs settings
Wat doet de host.json binnen de Azure function sln?
De host.json is voor de Function App. Hierin staan conf options voor alle functions binnen de function App. Bijv:
* aggregator
* applicationsinsights
* cosmosdb
* extensions
* functions
* logging
* retry
* etc
Azure functions: Service plans
- Consumption (serverless) > Cold starts > Pay as you use based on CPU/Memory. Auto scale is mogelijk
- Premium > Pre-warmed > Je betaald voor de instance > Scale-out obv instances is mogelijk
- Dedicated (App Service Plan) > VM sharing > Je gebruikt bestaande VM’s tijdelijk om de functions te runnen. Dit is handing wanneer je VM’s hebt die je weinig gebruikt
Functions: Voordeel van Triggers&Bindings?
Voordeel: Je hebt geen hardcoded access nodig voor een externe service. De functions blijven daardoor cleaner
Wat doet een Trigger?
Specific event met payload wat de function invoked. Function kan maar 1 trigger hebben
Wat doet een binding?
Is de connection met een externe service
Er zijn 1:* input en output bindings
Supported: Blob, Cosmo, SQL, Dapr, EventGrid, Kafka, RabbitMQ, ServiceBus, SignalR etc etc.
ze hebben niet allemaal de triggers/input/output en de API versie is van belang
Function: Wat is de binding direction?
In de function.json heb je een direction property,
* Triggers zijn altijd in
* Input/output zijn altijd in en/of out
* Sommige bindings hebben inout als optie
Bijv. blob als input binding met daarnaast een blobTrigger
Wanneer je bijv alleen een HTTP trigger heb, heb je geen externe bindings nodig en is de waarde none
Wat is de Azure Function Core Tool?
CLI om je functions te testen:
* Toplevel > init, logs, new, run, start
Function: Wat is een custom handler?
Lichtgewicht webserver dat events krijgt van een Functions Host.
Custom handler gebruik je voor talen die geen support hebben zoals GO, Rust, Ruby
Een Customer handler heeft default de volgende file nodig: Host, function en local.settings.json met de Command, script of exe wat op de server moet runnen
Communicatie tussen Function en CustomHandler is altijd HTTP(s)
Function: Wat kan de reden zijn waarom een Function Unreachable is?
- Storage issues > deleted > cred. invalid > inaccedsible
- Daily execution quota full
- App behind firewall
Wat zijn Durable Functions?
Is een extension op de Azure function waarmee je stateful workflow kunt opzetten en bijhouden.
De function kan bestaan uit verschillende soorten functions en onderdeel zijn van een function orchestrator
Noem de 4 Durable function types
De eerste 3 zijn onderdeel van een workflow:
Client
* Vangt de trigger op en start de Orchestrator
Orchestrator
* statefull workflow (in code) waarin je meerdere functions kunt opzetten en in volgorde aanroept.
Activity
* Unit of work for van een Orchestrator function
(durable) Entity (beschikbaar vanaf 2.*)
* state managen van een entity die onder de storage explorer is te zien
* wordt gebruikt door Orchestrator of Durable Client
> kan andere function in sync of async aanroepen met output in local var
automatically checkpoint wanneer het moet wachten.
Local state ben je niet kwijt als een VM reboot
Talen: C#, JS, Python, F#, PS, PS7 > npm install durable-functions
Wat doet een Orchestration client function?
Function die de orchestrator kan oproepen.
Dit kan een HTTP request zijn waarin je de client op zet en start
Durable Function pattern: Chaining
uitvoeren van een sequence in een volgorde
Durable Function pattern: Fan-out/Fan-in
Opstarten van meerdere functions en alle response opsparen
Durable Function pattern: Asyn HTTP API
Voor het probleem dat een request te lang duurt.
Je redirect dan de client naar een getstatus endpoint
Durable Function pattern: Monitor
Polling proces die kijkt of de conditions true zijn.
Je kunt een orchestration combineren van 1:* monitor
Tegenovergestelde van async http pattern omdat dit idle gaat tot het weer moet werken
Durable Function pattern: Human interaction
Is lastig omdat we niet altijd aanwezig zijn. Vaak wordt hier een timeout voor gebruikt om de compenseren
Durable Function pattern: Aggregator (stateful)
verzameld event data over tijd in een afgesproken entity
Wat is Azure Compute Unit (ACU) ?
Manier om compute (CPU) performance van Azure SKU’s te vergelijken. Ze worden allemaal vergeleken met Small (Standard_A1) VM met een waarde van 100
Over welke Poort gaat SSH en RDP?
- SSH: 22, inloggen van met private/public key
- RDP: 3389, heeft GUI, inloggen met pw