Monday, February 28, 2022

Azure Functions

  • Needs storage account for creating Azure function
  • Runtime stack can be .net, java, node.js etc


Azure Functions can be hosted as 

  • Consumption plan (serverless - auto scale, has time limit of 5 minutes for each method invocation, pay per use)
  • Azure app service (no time limit, monthly plan service)
  • Premium plan (faster performance, reserved instances, enhanced security)
  • Docker container (on premises or any cloud provider)


Azure Function types

  • HTTP Function Triggers (web hooks, use for APIs invocation)
  • Timer Trigger (scheduled tasks, CRON expression)
  • Blob Storage Trigger (data operation, run when a new file is uploaded to Blob storage)
  • Queue Trigger (run in response to a message on a queue)
  • Cosmos DB Trigger (run when a document is created or updated)
  • Event Trigger
  • Graph Trigger
  • SendGrid Trigger (3rd party - send email)
  • Twilio Trigger (3rd party - send text)


Every Azure function has exactly one trigger


HTTP Request Trigger

Security considerations:

Anonymous (no key required)

Security key per function

Admin: key per function app


Input and Output Bindings

Example for Input Bindings:

Blob storage binding - read all contents of a file in Blob storage

Cosmos DB binding - look up a document in a cosmos DB database

Queue storage binding - read a message from queue

Microsoft Graph binding - access OneDrive


To develop locally, 

Azure Functions VS Code extension

we can use Azure storage emulator, Azure Cosmos DB Emulator

Command to run the function: func start

Call the endpoint using postman or powershell command "Invoke-WebRequest <endpoint>"

When a message is posted to a queue, we can use a free tool "Azure storage explorer" to view the queue and actual message


Azure Durable Functions (for workflows)

Create stateful, serverless workflows / orchestration

Orchestration Patters

Function Chaining

Fan-out Fan-in

Asynchronous HTTP APIs

Monitor pattern (Poll and sleep)

Human Interaction (Process approval / escalate)

Install Microsoft.Azure.WebJobs.Extensions.DurableTask nuget package



Thursday, February 24, 2022

Azure Service Bus

Azure Messaging Paradigms

  • Event Grid - Best suited for reactive programming (something happened here and somebody wants to know it)
  • Event Hubs - Telemetry and distributed data streaming
  • Storage Queues - just a queue. Once the messages are read, they will be removed from queue.
  • Service Bus

    • Multi tenant cloud message service that sends information between applications and services
    • Queue, Topics and Subscriptions
    • Publishers and Subscribers
    • Queues
      • Messages in the queue are ordered and timestamped on arrival. After that messages are saved safely in a redundant strategy so that it's not lost
      • The receiver has to ASK for message
    • Topics and Subscriptions
      • Pub/Sub pattern
    • Storage queue can grow more than 80 GB
    • Service Bus can grow only upto 80 GB
    • Service Bus guarantees FIFO, duplicate detection

  • Create Service Bus Namespace
    • eg: Mycompany.servicebus.windows.net
    • Pricing tier
    • Subscription
    • Resource group
    • Location
  • Primary Connection string (to connect to the bus)
  • Create queue
    • Queue Name
    • Size

  • Topics and Subscriptions
    • Subscribers are invoked or notified when a message of interest appears

AZ-104

Microsoft Azure is huge and it has hundreds of services underneath its umbrella It's actually going to be quite difficult to comprehend ...