KEMBAR78
Azure Functions & Serverless Computing | PPTX
Azure Functions
For Serverless computing
The “Evolution” of Application Platforms
What is Serverless?
Serverless is Great!
Serverless Application Platform Components
Common Scenarios
Web Glue
Bots IoT
Azure Functions
Create a “serverless”
event-driven
experience that
extends the existing
Azure App Service
platform by building
“nanoservices” that can
scale based on
demand
Supported Languages and Tools
Create functions in
JavaScript, C#, Python,
and PHP, as well as
scripting options such as
Bash, Batch, and
PowerShell, that can be
triggered by virtually
any event in Azure, 3rd
party services, or on
premise systems
Common Scenarios
Your App or
Service
Office
365
Office
Graph
Azure
Storage
Other
Functions
Legacy
Systems
Web
Services
• Timer-based processing
• Azure service event processing
• SaaS event processing
• Serverless web application
architectures
• Serverless mobile backends
• Real-time stream processing
• Real-time bot messaging
Function App Templates
Function App templates are
categorized into general areas of
Timer, Data Processing, and
Webhook & API
• BlobTrigger
• EventHubTrigger
• Generic webhook
• GitHub webhook
• HTTPTrigger
• QueueTrigger
• ServiceBusQueueTrigger
• ServiceBusTopicTrigger
• TimerTrigger
• Blank & Experimental
Timer Function Apps
• Run at explicitly specified intervals, like every day at 2:00 am
using CRON expressions, like “0 */5 * * * *“ (every 5 minutes)
• Can send information to other systems, but typically don’t
“return” information, only write to logs
• Great for redundant cleanup and data management
• Great for checking state of services
• Can be combined with other functions
Data Processing Function Apps
• Run when triggered by a data event, such as an item being
added to a queue or container
• Typically have in and out parameters
• Great for responding to CRUD events
• Great for performing CRUD events
• Great for moving content
• Access data across services
Webhook & API Function Apps
• Triggered by events in other services, like GitHub, Team
Foundation Services, Office 365, OneDrive, Microsoft
PowerApps
• Takes in a request and sends back a response
• Often mimic Web API and legacy web services flows
• Typically need CORS settings managed
• Best for exposing functionality to other apps and services
• Great for building Logic Apps
code
Anatomy of a Function
• A “Run” file that containing the
function code
• A “Function” file containing all
service and trigger bindings and
parameters
• A “Project” file containing project
assembly and NuGet package
references
• App Service settings, such as
connection strings and API keys
.NET Core and
Project references
Function
configuration
Executable code
Function Bindings
Type Service Trigger Input Output
Schedule Azure Functions ✔
HTTP (REST or webhook) Azure Functions ✔ ✔*
Blob Storage Azure Storage ✔ ✔ ✔
Events Azure Event Hubs ✔ ✔
Queues Azure Storage ✔ ✔
Tables Azure Storage ✔ ✔
Tables Azure Mobile Apps ✔ ✔
No-SQL DB Azure DocumentDB ✔ ✔
Push Notifications Azure Notification Hubs ✔
Bindings serve as the basis for all connections to and from a
function. Many bindings can be “bi-directional” as well.
Testing Functions
• Command-line tools
• 3rd party products such as
Postman and Swagger
• Direct web calls via cURL
• Nested functions
• Microsoft Azure Storage
Explorer
• Visual Studio Cloud
Explorer
References
• https://azure.microsoft.com
• https://azure.microsoft.com/en-in/services/functions/
• https://info.microsoft.com/microsoft-serverless-approach-webinar-
on-demand.html
• https://docs.microsoft.com
Azure Functions & Serverless Computing

Azure Functions & Serverless Computing

  • 1.
  • 2.
    The “Evolution” ofApplication Platforms
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
    Azure Functions Create a“serverless” event-driven experience that extends the existing Azure App Service platform by building “nanoservices” that can scale based on demand
  • 8.
    Supported Languages andTools Create functions in JavaScript, C#, Python, and PHP, as well as scripting options such as Bash, Batch, and PowerShell, that can be triggered by virtually any event in Azure, 3rd party services, or on premise systems
  • 9.
    Common Scenarios Your Appor Service Office 365 Office Graph Azure Storage Other Functions Legacy Systems Web Services • Timer-based processing • Azure service event processing • SaaS event processing • Serverless web application architectures • Serverless mobile backends • Real-time stream processing • Real-time bot messaging
  • 10.
    Function App Templates FunctionApp templates are categorized into general areas of Timer, Data Processing, and Webhook & API • BlobTrigger • EventHubTrigger • Generic webhook • GitHub webhook • HTTPTrigger • QueueTrigger • ServiceBusQueueTrigger • ServiceBusTopicTrigger • TimerTrigger • Blank & Experimental
  • 11.
    Timer Function Apps •Run at explicitly specified intervals, like every day at 2:00 am using CRON expressions, like “0 */5 * * * *“ (every 5 minutes) • Can send information to other systems, but typically don’t “return” information, only write to logs • Great for redundant cleanup and data management • Great for checking state of services • Can be combined with other functions
  • 12.
    Data Processing FunctionApps • Run when triggered by a data event, such as an item being added to a queue or container • Typically have in and out parameters • Great for responding to CRUD events • Great for performing CRUD events • Great for moving content • Access data across services
  • 13.
    Webhook & APIFunction Apps • Triggered by events in other services, like GitHub, Team Foundation Services, Office 365, OneDrive, Microsoft PowerApps • Takes in a request and sends back a response • Often mimic Web API and legacy web services flows • Typically need CORS settings managed • Best for exposing functionality to other apps and services • Great for building Logic Apps
  • 14.
    code Anatomy of aFunction • A “Run” file that containing the function code • A “Function” file containing all service and trigger bindings and parameters • A “Project” file containing project assembly and NuGet package references • App Service settings, such as connection strings and API keys .NET Core and Project references Function configuration Executable code
  • 15.
    Function Bindings Type ServiceTrigger Input Output Schedule Azure Functions ✔ HTTP (REST or webhook) Azure Functions ✔ ✔* Blob Storage Azure Storage ✔ ✔ ✔ Events Azure Event Hubs ✔ ✔ Queues Azure Storage ✔ ✔ Tables Azure Storage ✔ ✔ Tables Azure Mobile Apps ✔ ✔ No-SQL DB Azure DocumentDB ✔ ✔ Push Notifications Azure Notification Hubs ✔ Bindings serve as the basis for all connections to and from a function. Many bindings can be “bi-directional” as well.
  • 16.
    Testing Functions • Command-linetools • 3rd party products such as Postman and Swagger • Direct web calls via cURL • Nested functions • Microsoft Azure Storage Explorer • Visual Studio Cloud Explorer
  • 18.
    References • https://azure.microsoft.com • https://azure.microsoft.com/en-in/services/functions/ •https://info.microsoft.com/microsoft-serverless-approach-webinar- on-demand.html • https://docs.microsoft.com

Editor's Notes

  • #8 Azure Functions are part of the Azure Web + Mobile suite of App Services and are designed to enable the creation of small pieces of meaningful, reusable methods, easily shared across services. These serverless, event-driven methods are often referred to as “nanoservices” due to their small size. Although an Azure Function can contain quite a bit of code, they are typically designed to serve a single purpose, and respond to events in connected services.
  • #9 Azure Functions can be created in most common development and scripting languages, and can be “triggered” by events in other Azure App Services, such as Web, Mobile, Logic, and API apps. Azure Functions can also be exposed via HTTP URL schemes for easy integration into legacy systems.
  • #10 Azure Functions are “event-driven” meaning they run based on associated and configure events, or “triggers”. For example an Azure Function could be triggered by a simple timer, such as running a process once every 24-hours, or triggered by an event in a document management system, such as when a new document is uploaded to a SharePoint library. Azure Functions can also respond to Azure-specific events, such as an image added to a Storage Blob or a notification arriving in a Message Queue.
  • #11 Although Azure Functions can be created from scratch”, the Azure Portal exposes a large number of ever-growing templates to help get developers started. These templates are typically designed with specific triggers in mind, such as a Blob Storage event, or a GitHub webhook event. Templates can easily form the basis for robust function creation, and are really designed just to get a developer started.
  • #12 Timer Functions are exactly what they sound like: Functions triggered by a specific time event. Timer Functions are perfect for clean up and maintenance processes and can easily be combined with other functions for more robust scenarios. Timer Functions us CRON expressions to configure schedules. It’s a good idea to get familiar with CRON syntax, but in the meantime there are a number of tools online to help you build CRON expressions.
  • #13 Data Processing Functions are triggered by activity in a datastore, such as a table, queue, or container. Data Processing Functions also typically have both “in” and “out” parameters, meaning they can accept an object as a parameter, and then process information and then return another object from within the function. This is not the same as a “return” value, as most Azure Functions either return void, or an HTTP response such as “created”, “accepted”, or “OK”.
  • #14 Webhook and API Functions are designed to easily integrate with 3rd party systems, like GitHub, Office 365, and especially Microsoft PowerApps. Since Webhook and API Functions are often exposed to external or legacy systems, they typically need CORS settings managed in order to “allow” external resources to “see” and execute the function. Most Azure Logic Apps leverage Webhook and API Functions directly.
  • #15 An Azure Function is really a group of a few files that work in harmony. All actual function logic resides in a “Run” file written in a language of choice. A “Project” file is similar to a project file in other technologies such as .NET Core or Universal Windows Platform and contains “secondary” assembly references such as NuGet packages. Finally a “Function” file contains information about triggers and parameters, such as locations of Storage Queue connection strings and whether the parameter is design as an “in”, “out” or “bi-directional”. Optionally, additional configuration is also found in the Function App Settings such as an API Key or database connection string.
  • #16 Without bindings, an Azure Function would just be a “disconnected” algorithm without any way to serve a purpose. Bindings server to connect functions and output to other services. Some of the most common binding types and features are listed in the table, however variations and adaptations can and do exist.
  • #17 Many Azure Functions are exposed via an actual URL that can be called directly from a web client or browser. When an Azure Function is not exposed via a URL its common practice to call the function from another function, such as a Timer-based Function for testing purposes only. Since Azure Functions can be nested, testing scenarios can be quite varied. For managing and testing Azure Functions that integrate with Storage Containers, Microsoft provides the Microsoft Azure Storage Explorer, as well as the Visual Studio Cloud Explorer. The Logs console in the Azure Function Designer is also a great way to view and trace function processing.