Skip to main content

Inserting Data with Azure Functions in CosmosDB


I was wondering how to use Azure Function to insert data in CosmosDB when this function receives an HTTP request
Surprise!!  It´s easy 

Step 1. Create your DataBase and Collection inside CosmosDB in Azure. 


Step 2. Create Function App




Step 3.  Create a new function. In this case use template "HttpTrigger - C#"



Step 4. Select "Integrate" option 


Be sure to change option in "Allowed HTTP methods" and select only "POST" HTTP method. 


Step 5. Create output binding



Step 6.  Configuring output binding


a:  Name of the entity variable to insert in CosmosDB.
b:  Name of the collection where the entity will be inserted (see image in Step 1).
c:  Partition Key  in case you need to define it. 
d:  DataBase name in Cosmos DB (see image in Step 1).
e:  ConnectionString.


Step 7.   "Short" programming....

a: Entity variable referenced in Step 6. a
b: Entity type (custom class). 

outputDocument= req.Content.ReadAsAsync<DTODocument>().Result;  

The function of this line is to read the body content in the request and deserialized it to the variable of DTODocument type.



Step 8. Testing 


a: Get Azure Function endpoint to invoque it from any programming language.
b: Request body example in JSON format (DTODocument)
c: Also you can test the function inside Azure Function App context.


See you late !!!

Comments

Popular posts from this blog

Add more security to an Azure CosmosDB Account.

W e can access programmatically to Azure Cosmos DB resources to create, query, and delete databases, document collections, and documents via REST API. To perform operations on Azure Cosmos DB resources, you can send HTTPS requests with a selected method: GET, POST, PUT, or DELETE to an CosmosDB endpoint.  Frequently we build architecture with centralized access to a persistence layer, then we won't let other applications access directly to this layer. Suppose we have the following hypothetical scenario (see Figure 1): Figure 1. Hypothetical Scenario Only WEB API Service with IP1 is allowed to establish connections with CosmosDB EndPoint. The others elements showed as Application are not allowed. By default we have in our CosmosDB resource the following configuration (see Figure 2) in Firewall and Virtual Networks option. Figure 2. Default Configuration To show you how this feature works, we are going to create a WEP API with a single function (r

Querying CosmosDB. Part 1

Hi CosmosDB Community !!! I'd like to contribute with some posts about how to query Cosmos DB Collection with SQL API. Suppose we have a speaker list of differents events around a whole world. The link above represent speaker list example. Example1.json For all examples we will use Data Explore in Azure Portal. Anyway, you can use any API in any supported programming language to write your queries. We are not using Modeling data techniques or witting same data in different ways to avoid cross partition queries. The main objective of the post is how to use built-in functions and operators in CosmosDB SQL API. I'd like to list all events from Hassan Arteaga Rodríguez  Query SELECT * FROM c where c.speaker = "Hassan Arteaga Rodriguez" Results I need to list all events from MEXICO. Not all fields Query SELECT c.speaker, c.event_name,c.init_date,c.end_date FROM c where c.event_country = "MEXICO" Results

Some architectures with Cosmos DB and Azure Functions

Fig 1. Access Control Fig 2. Documents storage with reference to blob. Fig 3. Automatic storage maintenance of Documents with expiration. Fig 4. Reports.