building serverless event-driven apps with azure event grid
TRANSCRIPT
Integrating the Digital Enterprise
Who am I?• Principal Consultant, Mexia
• Microsoft Azure MVP
• MCSE, MCT, MCPD, MCTS BizTalk & Azure
• Pluralsight Author
• www.mindovermessaging.com
• @daniel2me
Integrating the Digital Enterprise
Who could I be?• Support for men’s health
• Team: Mexia Mustachio’s
• Donations welcome!
• https://mobro.co/dantoomey
• Azure Functions – Serverless compute
• Logic Apps – Serverless connectivity and workflows
• Service Bus – Serverless messaging
• Event Grid – Serverless Events
Event : what happened
Event Publisher : where it took place
Topic: where publishers send events
Event Subscriptions: routes & filters events
Filters: EventTypes, SubjectBeginsWith, SubjectEndsWith
Event Handlers: app or service reacting to the event
750 BillionMessage operations on
Azure Service Bus Messaging (Standard)
per month
1.1 TrillionRequests every DAY
with Event Hubs
2MillionMessage Queues and Topics in Production
>30 PBMonthly Data Volume
85Of the 100 largest Azure
customers use messaging services
42 regionsRunning our services
7,098,888Downloads of our Nuget
package
99.9998%Success rate for service
IoT HubEvent Hub
Event stream
ingestion
1M+ msg/sec
Broadcasting
Real time /
Batch
256 KB
TTL 1 – 7 days
Capture to
Blob/DataLake
84 GB Store
Notification
Hub
Native Mobile
Push
Notifications
Service Bus
Queues &
Topics
Robust Rich
Messaging
Relay
Expose on-
prem services
to cloud
Outgress traffic
via a
bidirectional
socket
Storage
Queues
1st Gen Cloud
Messaging
Simple
Cost-Effective
Event Grid
Hyperscale
Event Routing
64 KB
Built-in
Publishers
Push-Push
No ordering
Filtering
Routing
TTL: 1 day
Future:
Dead-lettering
IoT messaging
management
Hyperscale
Cursor Access
Manage IoT
devices
2-way comms
aeg-sas-key header
aeg-sas-token
r={resource}&e={expiration}&s={signature}
Microsoft.EventGrid/ EventSubscriptions/Write
/subscriptions/{id}/ resourceGroups/{rg-name}/ providers/{provider}/ {res-type}/{resource-name}
/subscriptions/{id}/ resourceGroups/{rg-name}/ providers/Microsoft.EventGrid/ topics/{topic-name}
• Microsoft.EventGrid/*/read• Microsoft.EventGrid/*/write• Microsoft.EventGrid/*/delete• Microsoft.EventGrid/
eventSubscriptions/ getFullUrl/action
• Microsoft.EventGrid/topics/ listKeys/action
• Microsoft.EventGrid/topics/ regenerateKey/action
+ Custom roles
https://docs.microsoft.com/en-us/azure/event-grid/security-authentication
[
{
"topic": "/subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{storageacc}",
"subject": "/blobServices/default/containers/monitored/blobs/blob.json",
"eventType": "Microsoft.Storage.BlobCreated",
"eventTime": "2017-09-20T01:12:35.8066557Z",
"id": "9ac0de1a-001e-00da-23ad-311d4a06bb2f",
"data": {
"api": "PutBlob",
"clientRequestId": "9ac0de1a-9da0-11e7-9a3b-51cc40a2ca27",
"requestId": "9ac0de1a-001e-00da-23ad-311d4a000000",
"eTag": "0x9AC0FC4ADA5997D",
"contentType": "application/json",
"contentLength": 268,
"blobType": "BlockBlob",
"url": "https://{storageacc}.blob.core.windows.net/monitored/blob.json",
"sequencer": "00000000000019200000000000F12B37",
"storageDiagnostics": {
"batchId": "9ac0de1a-e1a1-44c5-a0a1-a66b2a191fc4"
}
}
}
]
{
"topic": "/subscriptions/{id}/resourcegroups/{rg}/providers/microsoft.eventgrid/topics/{topic}",
"id": " 9ac0de1a-83f2-4eb7-ab1f-e2e8d2ef1728",
"eventType": "CryptoCurrencyPriceObtained",
"subject": "cryptoCurrency/price/BTC",
"eventTime": "2017-09-19T11:37:01.1513463+00:00",
"data": {
"AUD": 4991.89
}
}
custom data
Routing Blob Storage Eventswith Event Grid
Storage blob
Event Grid
storageevent
storageevent
Webhook
Custom Event Grid Topic Publishing Service Fabric Logging Events
Service Fabric Event Grid
Azure Function
Storage table
Office 365
loggingevents
Filter:error events
all events
allevents
Logic App
emailalert
https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal
azure.com/eventgrid
aka.ms/gridQuestions
docs.microsoft.com/azure/ event-grid/
azure.com/serverless