SlideShare a Scribd company logo
Mastering Azure Functions
Agenda
• Azure Functions Concepts
• Life on the client side …
Big scenarios where you may miss the
server:
• Timer job
• Elevating privileges
• Hiding API keys with Function Proxies
• Resources – including all the code!
…if cloud computing was transportation
…you can buy or lease a car
and maintain it yourself
…you can rent a car
…if cloud computing was transportation
…you can buy or lease a car
and maintain it yourself
…you can rent a car and pay
for having it around even
when you are not driving
…you can rent a car
…if cloud computing was transportation
…you can buy or lease a car
and maintain it yourself
…you can rent a car and pay
for having it around even
when you are not driving
…you can use a ride sharing
app pay only for
transportation
Mastering Azure Functions
1
Functions
1.x
Functions
2.x
C# GA Preview
JavaScript GA Preview
F# GA Preview
Java Preview
PowerShell Experimental
Python Experimental
PHP Experimental
TypeScript Experimental
Batch (.cnd,
.bat)
Experimental
Bash Experimental
Type 1.x 2.x Trigger Input Output
Blob Storage ✔ ✔
1
✔ ✔ ✔
Cosmos DB ✔ ✔ ✔ ✔ ✔
Event Grid ✔ ✔ ✔
Event Hubs ✔ ✔ ✔ ✔
External File
2
✔ ✔ ✔
External Table
2
✔ ✔ ✔
HTTP ✔ ✔
1
✔ ✔
Microsoft Graph
Excel tables
✔ ✔ ✔
Microsoft Graph
OneDrive files
✔ ✔ ✔
Type 1.x 2.x Trigger Input Output
Microsoft Graph
Outlook email
✔ ✔
MS Graph Events ✔ ✔ ✔ ✔
MS Graph Auth
tokens
✔ ✔
Mobile Apps ✔ ✔ ✔ ✔
Notification Hubs ✔ ✔
Queue storage ✔ ✔
1
✔ ✔
SendGrid ✔ ✔ ✔
Service Bus ✔ ✔ ✔ ✔
Table storage ✔ ✔
1
✔ ✔
Timer ✔ ✔ ✔
Twilio ✔ ✔ ✔
Webhooks ✔ ✔ ✔
Mastering Azure Functions
Mastering Azure Functions
Functions
Runtime
Functions
Programming
Interface
App Service
App Hosting Plans
Triggers
Input Bindings
Output Bindings
File What it does
host.json Host settings
local.settings.json Settings during local debug (replaced by
Application Settings at runtime)
<folder>/function.json Define function, bindings
proxies.json Define function proxies
package.json/package-lock.json (JavaScript only) – npm packages
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"
}
]
}
Mastering Azure Functions
Azure Function
SPFx Solution
Azure Function
SPFx Solution
The secrets we
keep…
• Connection strings
• Application keys / Client
secrets
• Certificates, and passwords to
certificate private keys
• Encryption keys
• Service account passwords
Mastering Azure Functions
Do try this at home!
http://bit.ly/AzFuncTools
Want to not elevate permissions? Learn about “On Behalf Of”
flow in this great blog series by Vardhaman Deshpande
http://bit.ly/AzFuncOnBehalfOf
• Light-weight API management
• Change URL, manipulate request and
response
• Inherits the configuration of your Function
App
(e.g. authentication)
Azure Function Proxies
 http://bit.ly/AzFuncTools
http://bit.ly/AzureSPC-FuncJS
http://bit.ly/AzureSPC-FuncCS
 On Behalf Of Flow
http://bit.ly/AzFuncOnBehalfOf
http://bit.ly/AzureSPC-FuncCSOM
http://bit.ly/AzureSPC-FuncSPFx
http://bit.ly/AzureSPC-SiteScripts
Mastering Azure Functions

More Related Content

PDF
DigitalOcean Microservices Talk Rocket Internet Conf '16
PPT
Sanwaad presentation
PDF
Google Cloud Dataflow meets TensorFlow
PPTX
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
PDF
Launching and growing a startup on the Google Cloud Platform
PDF
TensorFlow on GCP
PPTX
High Performance API Mashups with Node.js and ql.io
ZIP
Javascript Everywhere From Nose To Tail
DigitalOcean Microservices Talk Rocket Internet Conf '16
Sanwaad presentation
Google Cloud Dataflow meets TensorFlow
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
Launching and growing a startup on the Google Cloud Platform
TensorFlow on GCP
High Performance API Mashups with Node.js and ql.io
Javascript Everywhere From Nose To Tail

What's hot (20)

PPTX
Using Google App Engine Python
PDF
MongoDB .local Paris 2020: Adéo @MongoDB : MongoDB Atlas & Leroy Merlin : et ...
PDF
"Работа с утечками в V8", Роман Кривцов, MoscowJS 19
PPTX
Rapid prototyping using azure functions - A walk on the wild side
PPTX
Kubernetes Optimization - How We Cut Our Cloud Infrastructure Cost By 40% Usi...
PDF
Google compute engine - overview
KEY
Amazon Web Services (cloud: is it good for anything?)
PDF
The Serverless First Mindset - Keynote
PPTX
How Docker Accelerates Continuous Development at ironSource: Containers #101 ...
PPTX
Redapt @ splunk .conf 2013 splunk in the hyperscale private cloud
PDF
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
PDF
Digdagによる大規模データ処理の自動化とエラー処理
PPTX
Azure management portal
PDF
AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...
PDF
Google Dataflow Intro
PDF
Docker in Action
PDF
Google App Engine Developer - Day4
PDF
Load balancing in the SRE way
PDF
Node withoutservers aws-lambda
PDF
Automating Workflows for Analytics Pipelines
Using Google App Engine Python
MongoDB .local Paris 2020: Adéo @MongoDB : MongoDB Atlas & Leroy Merlin : et ...
"Работа с утечками в V8", Роман Кривцов, MoscowJS 19
Rapid prototyping using azure functions - A walk on the wild side
Kubernetes Optimization - How We Cut Our Cloud Infrastructure Cost By 40% Usi...
Google compute engine - overview
Amazon Web Services (cloud: is it good for anything?)
The Serverless First Mindset - Keynote
How Docker Accelerates Continuous Development at ironSource: Containers #101 ...
Redapt @ splunk .conf 2013 splunk in the hyperscale private cloud
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
Digdagによる大規模データ処理の自動化とエラー処理
Azure management portal
AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...
Google Dataflow Intro
Docker in Action
Google App Engine Developer - Day4
Load balancing in the SRE way
Node withoutservers aws-lambda
Automating Workflows for Analytics Pipelines
Ad

Similar to Mastering Azure Functions (20)

PPTX
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
PPTX
Azure serverless computing
PPTX
Serverless DevOps - Chicago Code Camp 2018
PDF
Kandroid for nhn_deview_20131013_v5_final
PPTX
Deep Dive Azure Functions - Global Azure Bootcamp 2019
KEY
Extjs + Gears
PPT
Porting and Maintaining your C++ Game on Android without losing your mind
PDF
PuppetConf 2017: Kubernetes in the Cloud w/ Puppet + Google Container Engine-...
PDF
Azure Serverless Toolbox
PPTX
ServerLess by usama Azure fuctions.pptx
PPTX
Implementing Real-Time IoT Stream Processing in Azure
PPTX
How to create a Function App on Cosmos DB
PDF
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
PDF
Letswift19-clean-architecture
PPTX
Scaling python webapps from 0 to 50 million users - A top-down approach
PDF
Google's serverless journey: past to present
PPT
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
PDF
6. DISZ - Webalkalmazások skálázhatósága a Google Cloud Platformon
PPTX
StrongLoop Overview
PDF
Ignacy Kowalczyk
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure serverless computing
Serverless DevOps - Chicago Code Camp 2018
Kandroid for nhn_deview_20131013_v5_final
Deep Dive Azure Functions - Global Azure Bootcamp 2019
Extjs + Gears
Porting and Maintaining your C++ Game on Android without losing your mind
PuppetConf 2017: Kubernetes in the Cloud w/ Puppet + Google Container Engine-...
Azure Serverless Toolbox
ServerLess by usama Azure fuctions.pptx
Implementing Real-Time IoT Stream Processing in Azure
How to create a Function App on Cosmos DB
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Letswift19-clean-architecture
Scaling python webapps from 0 to 50 million users - A top-down approach
Google's serverless journey: past to present
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
6. DISZ - Webalkalmazások skálázhatósága a Google Cloud Platformon
StrongLoop Overview
Ignacy Kowalczyk
Ad

More from Bob German (20)

PPTX
Introduction to the Microsoft Bot Framework v4
PPTX
Adaptive cards 101
PPTX
Introduction to Teams Development - North American Collaboration Summit
PPTX
Future-proof Development for Classic SharePoint
PPTX
Azure for SharePoint Developers - Workshop - Part 4: Bots
PPTX
Azure for SharePoint Developers - Workshop - Part 3: Web Services
PPTX
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
PPTX
Azure for SharePoint Developers - Workshop - Part 5: Logic Apps
PPTX
Azure AD for browser-based application developers
PPTX
Going with the Flow: Rationalizing the workflow options in SharePoint Online
PPTX
Modern SharePoint, the Good, the Bad, and the Ugly
PPTX
Developing JavaScript Widgets
PPTX
Introduction to TypeScript
PPTX
Developing JavaScript Widgets
PPTX
TypeScript and SharePoint Framework
PPTX
German introduction to sp framework
PPTX
SPSNYC - Next Generation Portals
PPTX
Typescript 102 angular and type script
PPTX
Typescript 101 introduction
PPTX
Search First Migration - Using SharePoint 2013 Search for SharePoint 2010
Introduction to the Microsoft Bot Framework v4
Adaptive cards 101
Introduction to Teams Development - North American Collaboration Summit
Future-proof Development for Classic SharePoint
Azure for SharePoint Developers - Workshop - Part 4: Bots
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
Azure for SharePoint Developers - Workshop - Part 5: Logic Apps
Azure AD for browser-based application developers
Going with the Flow: Rationalizing the workflow options in SharePoint Online
Modern SharePoint, the Good, the Bad, and the Ugly
Developing JavaScript Widgets
Introduction to TypeScript
Developing JavaScript Widgets
TypeScript and SharePoint Framework
German introduction to sp framework
SPSNYC - Next Generation Portals
Typescript 102 angular and type script
Typescript 101 introduction
Search First Migration - Using SharePoint 2013 Search for SharePoint 2010

Recently uploaded (20)

PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
DOCX
The AUB Centre for AI in Media Proposal.docx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPT
Teaching material agriculture food technology
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
Modernizing your data center with Dell and AMD
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Encapsulation theory and applications.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The AUB Centre for AI in Media Proposal.docx
“AI and Expert System Decision Support & Business Intelligence Systems”
Digital-Transformation-Roadmap-for-Companies.pptx
Teaching material agriculture food technology
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Dropbox Q2 2025 Financial Results & Investor Presentation
Diabetes mellitus diagnosis method based random forest with bat algorithm
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
Modernizing your data center with Dell and AMD
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Encapsulation theory and applications.pdf
NewMind AI Monthly Chronicles - July 2025
Mobile App Security Testing_ A Comprehensive Guide.pdf
Big Data Technologies - Introduction.pptx
Encapsulation_ Review paper, used for researhc scholars
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity

Mastering Azure Functions

  • 2. Agenda • Azure Functions Concepts • Life on the client side … Big scenarios where you may miss the server: • Timer job • Elevating privileges • Hiding API keys with Function Proxies • Resources – including all the code!
  • 3. …if cloud computing was transportation …you can buy or lease a car and maintain it yourself
  • 4. …you can rent a car …if cloud computing was transportation …you can buy or lease a car and maintain it yourself …you can rent a car and pay for having it around even when you are not driving
  • 5. …you can rent a car …if cloud computing was transportation …you can buy or lease a car and maintain it yourself …you can rent a car and pay for having it around even when you are not driving …you can use a ride sharing app pay only for transportation
  • 7. 1
  • 8. Functions 1.x Functions 2.x C# GA Preview JavaScript GA Preview F# GA Preview Java Preview PowerShell Experimental Python Experimental PHP Experimental TypeScript Experimental Batch (.cnd, .bat) Experimental Bash Experimental
  • 9. Type 1.x 2.x Trigger Input Output Blob Storage ✔ ✔ 1 ✔ ✔ ✔ Cosmos DB ✔ ✔ ✔ ✔ ✔ Event Grid ✔ ✔ ✔ Event Hubs ✔ ✔ ✔ ✔ External File 2 ✔ ✔ ✔ External Table 2 ✔ ✔ ✔ HTTP ✔ ✔ 1 ✔ ✔ Microsoft Graph Excel tables ✔ ✔ ✔ Microsoft Graph OneDrive files ✔ ✔ ✔ Type 1.x 2.x Trigger Input Output Microsoft Graph Outlook email ✔ ✔ MS Graph Events ✔ ✔ ✔ ✔ MS Graph Auth tokens ✔ ✔ Mobile Apps ✔ ✔ ✔ ✔ Notification Hubs ✔ ✔ Queue storage ✔ ✔ 1 ✔ ✔ SendGrid ✔ ✔ ✔ Service Bus ✔ ✔ ✔ ✔ Table storage ✔ ✔ 1 ✔ ✔ Timer ✔ ✔ ✔ Twilio ✔ ✔ ✔ Webhooks ✔ ✔ ✔
  • 12. Functions Runtime Functions Programming Interface App Service App Hosting Plans Triggers Input Bindings Output Bindings
  • 13. File What it does host.json Host settings local.settings.json Settings during local debug (replaced by Application Settings at runtime) <folder>/function.json Define function, bindings proxies.json Define function proxies package.json/package-lock.json (JavaScript only) – npm packages
  • 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" } ] }
  • 18. The secrets we keep… • Connection strings • Application keys / Client secrets • Certificates, and passwords to certificate private keys • Encryption keys • Service account passwords
  • 20. Do try this at home! http://bit.ly/AzFuncTools Want to not elevate permissions? Learn about “On Behalf Of” flow in this great blog series by Vardhaman Deshpande http://bit.ly/AzFuncOnBehalfOf
  • 21. • Light-weight API management • Change URL, manipulate request and response • Inherits the configuration of your Function App (e.g. authentication) Azure Function Proxies
  • 22.  http://bit.ly/AzFuncTools http://bit.ly/AzureSPC-FuncJS http://bit.ly/AzureSPC-FuncCS  On Behalf Of Flow http://bit.ly/AzFuncOnBehalfOf http://bit.ly/AzureSPC-FuncCSOM http://bit.ly/AzureSPC-FuncSPFx http://bit.ly/AzureSPC-SiteScripts

Editor's Notes

  • #2: DEMO SETUP: Open PowerShell ISE to show certificate extract in ISE Postman – local debug / web service proxy Incognito browser as Katie Jordan Browser as me VS – timer job (C# function) VS Code – JS Function Cmder
  • #4: 3
  • #5: 4
  • #6: 5
  • #16: Show timer job output Show certificate, PowerShell to extract Show app registration Show extracted info in manifest Show permissions Show code in VS Local debug Show settings in Function App – point out App Svc settings vs. Func App settings Show func – run – show the generated function.json Walk thru code
  • #21: Demo adding a comment as Katie Jordan Show func tools Show local debug w/VS Code Show app settings Easy Auth Content deployment CORS Code walk-thru
  • #22: Show proxy.json Show function in portal Call from Postman