This hands-on workshop will walk you through various tasks of managing Azure infrastructure with the focus on serverless compute and managed Azure services. All the resources are provisioned with Pulumi in the infrastructure-as-code fashion.
You will be building an end-to-end Drone Delivery application that is based on two reference architectures defined by Microsoft.
The project consists of two parts: a web front-end and a data processing pipeline.
The application serves static content from Azure Blob Storage and implements an API using Azure Functions. The API reads data from Cosmos DB and returns the results to the web app.
The application ingests a stream of data, processes the data, and writes the results to a back-end database (Cosmos DB).
Before proceeding, ensure your machine is ready to go:
The first lab takes you on a tour of infrastructure as code concepts:
- Creating a New Project
- Configuring Azure
- Provisioning Infrastructure
- Updating your Infrastructure
- Making Your Stack Configurable
- Creating a Second Stack
- Destroying Your Infrastructure
In this lab, you deploy an Azure Function App with HTTP-triggered serverless functions.
In this lab, you deploy a Azure Function Apps that is triggered by messages in an Event Hub. Device data from the messages are saved to Azure Cosmos DB. You setup a dead-letter queue for messages that failed to be processed and Azure Application Insights for monitoring.
In this lab, you deploy an Azure Function App that retrieves data from the Cosmos DB collection. That's the first step to building a web application that shows drone data to end users.
In this lab, you add an HTML frontend application that displays drone status data. You deploy a static website to a new Storage Account, including the HTML and JavaScipt files.
In this lab, you add an API Management service in front of Azure Functions. You change the website to talk to that API Management service.
In this lab, you add an Azure CDN service in front of the Storage Account.
In this lab, you enable Azure Active Directory OAuth2 authentication in the status website.