SlideShare a Scribd company logo
1 of 39
Joe Raio
Senior Technical Evangelist
DX Audience
joe.raio@microsoft.com
@joescars
github.com/joescars
Based in Miami, FL United States.
Proud father. Passions are Music, Space,
Aviation & all things Technology
Serverless is to servers as wireless is
to wired.
Wireless internet still requires wires,
but customers don't need to
interact with them
{
"bindings": [
{
"name": "myQueueItem",
"type": "queueTrigger",
"direction": "in",
“queueName": "outputqueue",
"connection": "AzureWebJobsStorage"
},
{
"type": "blob",
"name": "outputBlob",
"path": "outblob/{rand-guid}.txt",
"connection": "AzureWebJobsStorage",
"direction": "out"
}
]
}
module.exports = function (context, myQueueItem, myOutputBlob) {
context.log('JavaScript queue trigger function ', myQueueItem);
//validate
if (myQueueItem.apiId && myQueueItem.method && myQueueItem.body)
{
const value = DoWork(myQueueItem);
if(value) {
context.bindings.myOutputBlob = JSON.stringify(value);
//myOutputBlob = JSON.stringify(value);
}
}
else {
//handle error queue item missing params
context.log('invalid queue item ', myQueueItem);
}
context.done();
}
public static void Run(byte[] image, string filename,
Stream outputBlob, TraceWriter log)
{
log.Info($"Processing image: {filename}");
var imageBuilder = ImageResizer.ImageBuilder.Current;
imageBuilder.Build(
image, outputBlob,
new ResizeSettings(640, 400, FitMode.Max, null), false);
}
{
"bindings": [
{
"name": "image",
"type": "blobTrigger",
"direction": "in",
"path": "card-input/{filename}.jpg",
"connection": "AzureWebJobsStorage"
},
{
"type": "blob",
"name": "outputBlob",
"path": "card-output/{filename}.jpg",
"connection": "AzureWebJobsStorage",
"direction": "out"
}
]
}
Every 15 minutes Clean tableFind and clean invalid data
File added to
Blob Storage
Transform CSV to data rows
CSV
Power BI
Chart graphic
Excel file saved
to OneDrive
Microsoft Graph API analyzes content Creates new sheets
with charts
Loaded web page
calls WebHook
Completed pageCreate ad based on user profile
Photo taken and
WebHook called Stores in blob storage Produces scaled images
Millions of devices feed
into Stream Analytics
Store data in
SQL Online
Transform to structured data
Deployment and management isolation
Customers
Products
Orders
API calls
customers.azurewebsites.net
products.azurewebsites.net
orders.azurewebsites.net
Function app A
/customers
Function app B
/products
Function app C
Function3/orders
Function1
API proxy endpoints
HttpTrigger function endpoints
Key:
/products
/orders
Function2
New file on site root: proxies.json
{
"proxies": {
"proxy1": {
"matchCondition": {
"methods": [],
"route": "/api/{test}"
},
"backendUri": "https://contoso.azurewebsites.net/api/{test}"
}
}
}
https://www.npmjs.com/package/azur
e-functions-core-tools
https://aka.ms/2017functiontools
Azure
Functions
Demo
• Costa Farms
http://aka.ms/costafarms
https://github.com/joescars/CostaIoTSensorProject
• Fish Angler
http://aka.ms/fishangler
https://github.com/FishAngler/AzureFunctions
• Simple Recon
https://github.com/simpledealersuite/media2azure
• NullspaceVR
https://github.com/DaveVoyles/NullspaceVR-web-portal/tree/master/AzureFunctions
• Missing Children Society of Canada
https://github.com/Missing-Children-Society-Canada
https://github.com/Azure/Azure-Functions
Azure WebJobs SDK script
Azure WebJobs SDK
Azure WebJobs SDK extensions
Azure Functions CLI
Azure Functions Portal
Azure Functions templates
Azure Functions samples
http://aka.ms/TryFunctions
https://aka.ms/func-github
Joe.Raio@Microsoft.com
Download this presentation:
slideshare.net/joeraio

More Related Content

What's hot

Drupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs DrupalDrupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs Drupal
Inna Tuyeva
 

What's hot (20)

Blazor in Microsoft Teams
Blazor in Microsoft TeamsBlazor in Microsoft Teams
Blazor in Microsoft Teams
 
Forge - DevCon 2016: Collaborating with Design Data
Forge - DevCon 2016: Collaborating with Design DataForge - DevCon 2016: Collaborating with Design Data
Forge - DevCon 2016: Collaborating with Design Data
 
Toronto SharePoint Camp 2010
Toronto SharePoint Camp 2010Toronto SharePoint Camp 2010
Toronto SharePoint Camp 2010
 
NextGen Portal for Your Organization
NextGen Portal for Your OrganizationNextGen Portal for Your Organization
NextGen Portal for Your Organization
 
Code first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with AzureCode first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with Azure
 
Go Serverless with Cosmos DB, Azure Functions and Blazor
Go Serverless with Cosmos DB, Azure Functions and BlazorGo Serverless with Cosmos DB, Azure Functions and Blazor
Go Serverless with Cosmos DB, Azure Functions and Blazor
 
Forge - DevCon 2016: Free your design data
Forge - DevCon 2016: Free your design dataForge - DevCon 2016: Free your design data
Forge - DevCon 2016: Free your design data
 
Public v1 real world example of azure functions serverless conf london 2016
Public v1 real world example of azure functions serverless conf london 2016 Public v1 real world example of azure functions serverless conf london 2016
Public v1 real world example of azure functions serverless conf london 2016
 
Forge - DevCon 2016: Visual Reporting with Connected Design Data
Forge - DevCon 2016: Visual Reporting with Connected Design DataForge - DevCon 2016: Visual Reporting with Connected Design Data
Forge - DevCon 2016: Visual Reporting with Connected Design Data
 
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
 
Typescript 102 angular and type script
Typescript 102   angular and type scriptTypescript 102   angular and type script
Typescript 102 angular and type script
 
Drupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs DrupalDrupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs Drupal
 
Polyglot Persistence in Azure
Polyglot Persistence in AzurePolyglot Persistence in Azure
Polyglot Persistence in Azure
 
Developing serverless applications with azure functions
Developing serverless applications with azure functionsDeveloping serverless applications with azure functions
Developing serverless applications with azure functions
 
Creating Data Driven HTML5 Applications
Creating Data Driven HTML5 ApplicationsCreating Data Driven HTML5 Applications
Creating Data Driven HTML5 Applications
 
Forge - DevCon 2016: Cloud PDM Demystified – The Future of File Management
Forge - DevCon 2016: Cloud PDM Demystified – The Future of File ManagementForge - DevCon 2016: Cloud PDM Demystified – The Future of File Management
Forge - DevCon 2016: Cloud PDM Demystified – The Future of File Management
 
Forge - DevCon 2016: 10 Great Fusion 360 Sample Applications
Forge - DevCon 2016: 10 Great Fusion 360 Sample ApplicationsForge - DevCon 2016: 10 Great Fusion 360 Sample Applications
Forge - DevCon 2016: 10 Great Fusion 360 Sample Applications
 
Forge - DevCon 2016: Building Value-Added Integrations with Autodesk’s IoT APIs
Forge - DevCon 2016: Building Value-Added Integrations with Autodesk’s IoT APIsForge - DevCon 2016: Building Value-Added Integrations with Autodesk’s IoT APIs
Forge - DevCon 2016: Building Value-Added Integrations with Autodesk’s IoT APIs
 
PUGML06 - Power BI Tips & Tricks from the Trenches
PUGML06 - Power BI Tips & Tricks from the TrenchesPUGML06 - Power BI Tips & Tricks from the Trenches
PUGML06 - Power BI Tips & Tricks from the Trenches
 
Scheduled Jobs in Azure
Scheduled Jobs in AzureScheduled Jobs in Azure
Scheduled Jobs in Azure
 

Similar to Code Europe - Azure Functions

09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Igor Bronovskyy
 
Get Back in Control of Your SQL with jOOQ at #Java2Days
Get Back in Control of Your SQL with jOOQ at #Java2DaysGet Back in Control of Your SQL with jOOQ at #Java2Days
Get Back in Control of Your SQL with jOOQ at #Java2Days
Lukas Eder
 

Similar to Code Europe - Azure Functions (20)

Serverless. What, Why, Who & How?
Serverless. What, Why, Who & How?Serverless. What, Why, Who & How?
Serverless. What, Why, Who & How?
 
Building serverless applications on azure
Building serverless applications on azureBuilding serverless applications on azure
Building serverless applications on azure
 
Serverless and IoT
Serverless and IoTServerless and IoT
Serverless and IoT
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure Functions
 
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure for SharePoint Developers - Workshop - Part 2: Azure FunctionsAzure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
 
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
 
Scalable web application architecture
Scalable web application architectureScalable web application architecture
Scalable web application architecture
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
當ZK遇見Front-End
當ZK遇見Front-End當ZK遇見Front-End
當ZK遇見Front-End
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB
 
Get Back in Control of your SQL
Get Back in Control of your SQLGet Back in Control of your SQL
Get Back in Control of your SQL
 
Get Back in Control of Your SQL with jOOQ at #Java2Days
Get Back in Control of Your SQL with jOOQ at #Java2DaysGet Back in Control of Your SQL with jOOQ at #Java2Days
Get Back in Control of Your SQL with jOOQ at #Java2Days
 
Introduction to REST API with Node.js
Introduction to REST API with Node.jsIntroduction to REST API with Node.js
Introduction to REST API with Node.js
 
A la découverte de TypeScript
A la découverte de TypeScriptA la découverte de TypeScript
A la découverte de TypeScript
 
Node azure
Node azureNode azure
Node azure
 
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
 
Programming proxies to do what we need so we don't have to talk to the networ...
Programming proxies to do what we need so we don't have to talk to the networ...Programming proxies to do what we need so we don't have to talk to the networ...
Programming proxies to do what we need so we don't have to talk to the networ...
 

Recently uploaded

➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
nirzagarg
 
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
nirzagarg
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
imonikaupta
 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
ydyuyu
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 

Recently uploaded (20)

➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
 
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
💚😋 Bilaspur Escort Service Call Girls, 9352852248 ₹5000 To 25K With AC💚😋
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 

Code Europe - Azure Functions

  • 1.
  • 2. Joe Raio Senior Technical Evangelist DX Audience joe.raio@microsoft.com @joescars github.com/joescars Based in Miami, FL United States. Proud father. Passions are Music, Space, Aviation & all things Technology
  • 3.
  • 4. Serverless is to servers as wireless is to wired. Wireless internet still requires wires, but customers don't need to interact with them
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. { "bindings": [ { "name": "myQueueItem", "type": "queueTrigger", "direction": "in", “queueName": "outputqueue", "connection": "AzureWebJobsStorage" }, { "type": "blob", "name": "outputBlob", "path": "outblob/{rand-guid}.txt", "connection": "AzureWebJobsStorage", "direction": "out" } ] } module.exports = function (context, myQueueItem, myOutputBlob) { context.log('JavaScript queue trigger function ', myQueueItem); //validate if (myQueueItem.apiId && myQueueItem.method && myQueueItem.body) { const value = DoWork(myQueueItem); if(value) { context.bindings.myOutputBlob = JSON.stringify(value); //myOutputBlob = JSON.stringify(value); } } else { //handle error queue item missing params context.log('invalid queue item ', myQueueItem); } context.done(); }
  • 14. public static void Run(byte[] image, string filename, Stream outputBlob, TraceWriter log) { log.Info($"Processing image: {filename}"); var imageBuilder = ImageResizer.ImageBuilder.Current; imageBuilder.Build( image, outputBlob, new ResizeSettings(640, 400, FitMode.Max, null), false); } { "bindings": [ { "name": "image", "type": "blobTrigger", "direction": "in", "path": "card-input/{filename}.jpg", "connection": "AzureWebJobsStorage" }, { "type": "blob", "name": "outputBlob", "path": "card-output/{filename}.jpg", "connection": "AzureWebJobsStorage", "direction": "out" } ] }
  • 15.
  • 16.
  • 17. Every 15 minutes Clean tableFind and clean invalid data
  • 18. File added to Blob Storage Transform CSV to data rows CSV Power BI Chart graphic
  • 19. Excel file saved to OneDrive Microsoft Graph API analyzes content Creates new sheets with charts
  • 20. Loaded web page calls WebHook Completed pageCreate ad based on user profile
  • 21. Photo taken and WebHook called Stores in blob storage Produces scaled images
  • 22. Millions of devices feed into Stream Analytics Store data in SQL Online Transform to structured data
  • 23.
  • 24. Deployment and management isolation Customers Products Orders API calls customers.azurewebsites.net products.azurewebsites.net orders.azurewebsites.net
  • 25. Function app A /customers Function app B /products Function app C Function3/orders Function1 API proxy endpoints HttpTrigger function endpoints Key: /products /orders Function2
  • 26. New file on site root: proxies.json { "proxies": { "proxy1": { "matchCondition": { "methods": [], "route": "/api/{test}" }, "backendUri": "https://contoso.azurewebsites.net/api/{test}" } } }
  • 27.
  • 28.
  • 29.
  • 31.
  • 33.
  • 34.
  • 36. • Costa Farms http://aka.ms/costafarms https://github.com/joescars/CostaIoTSensorProject • Fish Angler http://aka.ms/fishangler https://github.com/FishAngler/AzureFunctions • Simple Recon https://github.com/simpledealersuite/media2azure • NullspaceVR https://github.com/DaveVoyles/NullspaceVR-web-portal/tree/master/AzureFunctions • Missing Children Society of Canada https://github.com/Missing-Children-Society-Canada
  • 37. https://github.com/Azure/Azure-Functions Azure WebJobs SDK script Azure WebJobs SDK Azure WebJobs SDK extensions Azure Functions CLI Azure Functions Portal Azure Functions templates Azure Functions samples

Editor's Notes

  1. What is a technical evangelist?
  2. Talking points: (New) What do we go from here? Introducing Serverless, an event-driven process, which will grow and scale on demand. The only remaining question now becomes: How I architect my app to become Serverless? Pretty neat, right? It all sounds great, naturally, you may ask, how does Serverless fit into the picture?
  3. Abstraction of servers, infrastructure and configuration of operating system Event-driven scale Sub-second billing Stateless Serverless compute is a fully managed service. Some refer to it as Functions as a Service OS and Framework patching is performed for you There is zero administrative tasks and no need to manage any infrastructure You just deploy your code (function) and it runs Your code runs within seconds and for very short period of time Serverless compute scales quickly (almost instantly) and vastly Automatically scales within seconds No scale configuration is required (there is no way to configure scale or limits) Scales to match any given workload. Scales from zero to handle tens of thousands concurrent functions invocations within seconds Pay only for the time your code is running Serverless compute reacts to events React, in near real-time, to events and triggers Triggered by virtually any event from Azure service or 3rd party services Setup time, provisioning is long & costly
  4. “Pinnacle of PaaS compute” Not just hardware “servers”, but software servers are also managed for you Focus on business logic, not solving technical problems not core to business Lower effort to get started makes it easier to experiment (bots, etc.) Benefits of “Serverless”
  5. Bindings abstract away where the data is coming to Logic Apps Programming free paradigm with a visual designer, drag and drop workflows With Connectors to different types of services (eg an FTP server) Talking Points: (Updated on 4/3/17) Lets talk about what really makes up MSFT’s Serverless platform: At the center of the Serverless platform, is our compute offerings: Azure Functions and Azure Logic Apps. Azure Functions is an event based Serverless compute experience that helps you accelerate your development. Run time is open. Function code can be executed in vm or somewhere else, on prem or in clould. Logic Apps is a powerful orchestration tool. It enables building a Serverless app in minutes – by orchestrating multiple functions using a visual workflow tool. Say you have your apps up and running using Serverless. Congratulations! You now need to collect intelligence from different apps across platforms to take actions upon. There are a few essential components which we think are core to building Serverless applications are: Data/ Storage –Functions has triggers and bindings with Azure document DB and Azure Blob storage ** Triggers: Triggers are event responses used to trigger your custom code. They allow you to respond to events across the Azure platform or on premise. ** Bindings: Bindings represent the necessary meta data used to connect your code to the desired trigger or associated input or output data. Messaging such as queues and topics using Azure Service Bus and Azure Event Hubs Integration – that includes core LOB apps and SaaS apps integration via Azure Logic Apps. Intelligence on data and sentiment/ predictive analysis using Cognitive services and Machine learning Conversation as a service – how do we equip developers to build apps that offer an end-to-end experience for their end users – Azure Bot Service offers a Serverless interactive bot experience. More, developers are spending more time writing code that allows them to add huge business impact with Serverless. MSFT offers numerous development tools such as IDE Support for Visual Studio in functions and Logic Apps, enables local development (vs web browser coding environment), visual debugging capability, all with your tools of choice. Lastly, I also want to highlight top scenarios and use cases for Serverless: Real-time Stream analytics: Customers can use Functions to feed real-time streams of data from application tracking into structured data and store it in SQL online. SaaS event processing: Customers can use Functions and Logic Apps to analyze data from an excel file in Onedrive and perform validation, filtration, sorting and convert data into consumable business charts Web app architecture: Used a lot in creating targeted marketing collaterals – when a customer clicks on a webpage, it triggers a webhook, that uses a function to create an ad that matches the customer profile and displays a completed webpage. Real-time bot messaging: When customers send a message to a chatbox, Functions calls Cortana analytics to generate appropriate answers and sends a response back. //from before: Customers have different paths to build a Serverless app – start by building the distributed application components using functions by leveraging the numerous templates and declarative bindings Or Start with the workflow and orchestration of Serverless application using Azure Logic Apps. The visual designer enables developers to quickly and easily author, edit and visualize orchestration of multiple functions and workflow.
  6. The difference between trigger and binding…
  7. This is the whole (top level) Dev Ops story where Dev build wounderful apps, using CI they mange their code, builds, and releases. Connecting to a repository, they can deploy to Azure Websites, build in the cloud, deploy to a slot to test and validate, swap into production, deployed across the globe as needed, monitor and get feedback, on which devs can make updates. Rinse and repeat
  8. Languages:  C#, F#, Node.js, Python, PHP, batch, bash
  9. With that opening in mind and somewhat general understanding of what we are trying to prove here Now that we understand some of the pain points with having big application with many functions. It is important to take a moment to review some basic best practices for Functions: Functions should do one thing Functions should finish as quickly as possible Functions should be stateless Functions should be idempotent
  10. Stateless application that needs to scale