server-less architectures and azure functions · pdf fileazure portal or visual studio...
TRANSCRIPT
![Page 1: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/1.jpg)
1
![Page 2: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/2.jpg)
2
Programming
Functions
Introducing
Azure Functions
Serverless
architectures
Debugging and testing
Going to
production
Wrapup
![Page 3: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/3.jpg)
3
Server-less architectures and Azure Functions
![Page 4: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/4.jpg)
4
There are no servers…
When you do not need them
![Page 5: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/5.jpg)
5
Servers and compute
Available when you need it
![Page 6: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/6.jpg)
6
Event-drivenResponds to external triggers
Instant scalingAbstraction of server infrastructure
Scales when needed
Pay by consumptionCharged by sub-second units of compute
![Page 7: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/7.jpg)
7
![Page 8: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/8.jpg)
8
![Page 9: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/9.jpg)
9
Stores in Blob storage Produces scaled images
![Page 10: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/10.jpg)
10
Function apps• Hosted as Azure App Service
• JSON based configuration
• Running (multiple) functions
Bindings for input and outputZero or more possible
Triggers and bindings can vary per function
![Page 11: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/11.jpg)
11
http://github.com/Azure/Azure-Functions
![Page 12: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/12.jpg)
12
![Page 13: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/13.jpg)
13
ScriptsAzure Portal or Visual Studio Code
.NET with C#Visual Studio 2017
Instant feedback and testing
Less controlAzure tooling generates metadata files
Integrates with source control
1 2
Achieve higher code qualityCompilation and code analysis
Unit testing
Combine in CI/CD pipelines
![Page 14: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/14.jpg)
14
DemoCreating and using Azure Functions
![Page 15: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/15.jpg)
16
Developing Azure Functionswith .NET and Visual Studio
![Page 16: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/16.jpg)
17
![Page 17: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/17.jpg)
18
![Page 18: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/18.jpg)
19
![Page 19: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/19.jpg)
20
[FunctionName("HelloWorldFunction")]public static HttpResponseMessage Run(
[HttpTrigger] HttpRequestMessage req,TraceWriter log)
{log.Info("C# HTTP trigger function processed a request.");
return req.CreateResponse(HttpStatusCode.OK, "Hello, World!");}
Defines what this function
is triggered by
![Page 20: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/20.jpg)
21
[FunctionName("ImageAnalyzer")][return: Queue("AnalysisResults", Connection="…")]public static string Run([QueueTrigger("ImagesToAnalyze", Connection="…")] string imageName,[Blob("images/{queueTrigger}",FileAccess.Read, Connection = "…")] Stream blob, TraceWriter log) {return ...;
}
Connection property refers
to value from settings
Attribute values can refer to
trigger metadata with { }
![Page 21: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/21.jpg)
22
![Page 22: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/22.jpg)
23
DemoProgramming Azure Functionswith Visual Studio 2017
![Page 23: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/23.jpg)
24
[FunctionName("ValidateBlobSize")]public static void Run(
[QueueTrigger("ImagesInput", Connection = "…")] string blobNameInQueue,
[Blob("images/{queueTrigger}",FileAccess.Read, Connection = "…")] Stream blob,
TraceWriter log) { // Your function code …}
![Page 24: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/24.jpg)
25
[FunctionName("FunctionQueueTrigger")]public static void Run(
[QueueTrigger("imagesinput", Connection = "…")]string blobNameInQueue,[Blob("images/{queueTrigger}", FileAccess.Read, Connection = "…")]Stream blob,
[Queue("imagestoolarge", Connection = "…")]ICollector<string> imagesTooLarge,TraceWriter log)
![Page 25: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/25.jpg)
26
Debugging and testingAzure Functions
![Page 26: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/26.jpg)
27
![Page 27: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/27.jpg)
28
Tools to trigger
![Page 28: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/28.jpg)
29
![Page 29: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/29.jpg)
30
Blob and queue
• Simply supply message
content
• Depends on input type
(string, byte[] or
POCO class)
HttpRequestMessage
• Able to be constructed
as dummy object
• Set properties for Body
and Headers
• Similar for
HttpResponse(Message)
TraceWriter
• Inherit and override
Write method for mock
• Alternatively use ILogger
provided through DI
![Page 30: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/30.jpg)
31
DemoDebugging and unit testing Azure Functions
![Page 31: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/31.jpg)
32
![Page 32: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/32.jpg)
33
![Page 33: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/33.jpg)
34
{
"IsEncrypted": false,"Values": {
"AzureWebJobsStorage": "",
"key1": "value1"},
"ConnectionStrings": {"db": {
"ConnectionString": “...",
"ProviderName": "System.Data.SqlClient"}
}} local.settings.json file
![Page 34: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/34.jpg)
35
DemoDeploying Azure Functions
![Page 35: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/35.jpg)
36
Consumption-basedScaling as needed
Might require time to provide compute instances
App Service planAvailable scale
Not so much server-less
Easy to combine with PaaS
Azure Functions RuntimeLocal installation of hosts
Connected via SQL Server database
Infrastructure operationsNot so much server-less
Azure On-premises
![Page 36: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/36.jpg)
37
{"aggregator": {
"batchSize": 1000,"flushTimeout": "00:00:30"
},"logger": {
"categoryFilter": {"defaultLevel": "Information","categoryLevels": {
"Host": "Error","Function": "Error","Host.Aggregator": "Information"
}}
}}
![Page 37: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/37.jpg)
38
![Page 38: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/38.jpg)
39
Single responsibility principleDo one thing focussed
Finish as quickly as possibleAvoid long running functions
Stateless, idempotent and defensive
Cross function communicationMessaging: Storage Queues (small <64 KB) or Service Bus (<256 KB)
Service Bus topics for message filtering
Event Hub for high volume messaging
![Page 39: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/39.jpg)
40
![Page 40: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/40.jpg)
41
Resources
https://aka.ms/tryfunctions
https://functions.azure.com
https://docs.microsoft.com/en-us/azure/azure-functions/
https://github.com/Azure/Azure-Functions
Channel9
![Page 41: Server-less architectures and Azure Functions · PDF fileAzure Portal or Visual Studio Code.NET with C# ... Programming Azure Functions with Visual Studio 2017. 24 ... Connected via](https://reader030.vdocuments.site/reader030/viewer/2022021317/5a78aca37f8b9ae6228b4bb9/html5/thumbnails/41.jpg)
42