Serverless event-based architectures with Azure Cosmos DB and Azure Functions
APPLIES TO: NoSQL
Azure Functions provides the simplest way to connect to the change feed. You can create small reactive Azure Functions that will be automatically triggered on each new event in your Azure Cosmos DB container's change feed.
With the Azure Functions trigger for Azure Cosmos DB, you can leverage the Change Feed Processor's scaling and reliable event detection functionality without the need to maintain any worker infrastructure. Just focus on your Azure Function's logic without worrying about the rest of the event-sourcing pipeline. You can even mix the Trigger with any other Azure Functions bindings.
Note
The Azure Functions trigger uses latest version change feed mode. Currently, the Azure Functions trigger for Azure Cosmos DB is supported for use with the API for NoSQL only.
Requirements
To implement a serverless event-based flow, you need:
- The monitored container: The monitored container is the Azure Cosmos DB container being monitored, and it stores the data from which the change feed is generated. Any inserts, updates to the monitored container are reflected in the change feed of the container.
- The lease container: The lease container maintains state across multiple and dynamic serverless Azure Function instances and enables dynamic scaling. You can create the lease container automatically with the Azure Functions trigger for Azure Cosmos DB. You can also create the lease container manually. To automatically create the lease container, set the CreateLeaseContainerIfNotExists flag in the configuration. Partitioned lease containers are required to have a
/id
partition key definition.
Create your Azure Functions trigger for Azure Cosmos DB
Creating your Azure Function with an Azure Functions trigger for Azure Cosmos DB is now supported across all Azure Functions IDE and CLI integrations:
Visual Studio Extension for Visual Studio users.
Visual Studio Code Extension for Visual Studio Code users.
And finally Core CLI tooling for a cross-platform IDE agnostic experience.
Run your trigger locally
You can run your Azure Function locally with the Azure Cosmos DB Emulator to create and develop your serverless event-based flows without an Azure Subscription or incurring any costs.
Next steps
You can now continue to learn more about change feed in the following articles: