Slide 1

Slide 1 text

Azure Functions Internals Andrea Ceroni [email protected] @andrekiba6 Sponsored by 7 febbraio 2019 Relatore

Slide 2

Slide 2 text

Azure Functions Internals Tipo di sessione: Frontale Durata sessione: 40min

Slide 3

Slide 3 text

Azure Functions speed up development reduce costs auto scale

Slide 4

Slide 4 text

Functions as a Service (FaaS) A platformfor running"functions", wichare simply yourcoderunningin responseto an event code + event + data Azure Fucntions =

Slide 5

Slide 5 text

Languages C# JavaScript F# Java Python

Slide 6

Slide 6 text

Trigger Timer: run a function on a schedule Message: listen for messages on a queue HTTP Request: implement web APIs or webhooks Blob Storage: Azure Storage blob creation Many more: Cosmos DB, Azure Service Bus, Event Grid...

Slide 7

Slide 7 text

Bindings Queue Blob Storage Table Storage Service Bus SendGrid Cosmos DB V2 J... ...

Slide 8

Slide 8 text

V1 vs V2 Azure Functions runtime versions overview

Slide 9

Slide 9 text

V1 vs V2 runtime

Slide 10

Slide 10 text

Hosting Models Consumption Plan (Serverless) Per-second billing 1.000.000 executions 400.000 GBs App Service Plan Reserved servers Predictable monthly cost Docker Container Run anywhere On premises Other cloud providers

Slide 11

Slide 11 text

Dev Environments Azure Portal https://portal.azure.com Experiments Proof of concept Visual Studio 2017 Powerful IDE Azure Functions extensions Debug and test locally Azure Functions Core Tools Cross platform Visual Studio Code Azure Functions extensions

Slide 12

Slide 12 text

Other Features Security API keys Identity provider integration Durable Functions Define workflows Run task in parallel Retries and error handling Proxies Route incoming requests Static website Transform requests and responses

Slide 13

Slide 13 text

Function App unit of deployment share common configuration scale together logically related

Slide 14

Slide 14 text

Deploy Function App Manual Deploy Visual Studio or VS Code Create a new Function App Publish to an existing Function App Git Automated deployment Configure in portal GitHub or Azure DevOps Zip Kudu API Azure Functions Core Tools Azure CLI

Slide 15

Slide 15 text

Demo

Slide 16

Slide 16 text

[FunctionName("Question")] public static async Task AskQuestion( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route="question")] HttpRequest req, ILogger log) { var body = await new StreamReader(req.Body).ReadToEndAsync(); var question = JsonConvert.DeserializeObject(body); if(iKnowTheAnswer J) return new OkObjectResult(Answer()); return new NotFoundResult() L; }

Slide 17

Slide 17 text

Usefull Links https://docs.microsoft.com/en-us/azure/azure-functions/ https://docs.microsoft.com/en-us/azure/azure-functions/functions-versions https://github.com/Azure/Azure-Functions https://github.com/Azure/azure-functions-host https://github.com/Azure/azure-webjobs-sdk-extensions https://github.com/Azure/azure-webjobs-sdk/wiki/Creating-custom-input-and-output-bindings https://mikhail.io https://devkimchi.com

Slide 18

Slide 18 text

Thanks!