Build 2020 - Day 2 Overview

Day 2 of BUILD brought a lot of very cool sessions and more updates. Below are some notes from some of the sessions that I was able to attend do that I wanted to make sure get the attention they deserve

Read More

Share Comments

Build 2020 - Day 1 Overview

So, Day 1 of BUILD 2020 is behind us now, here are a few of the most exciting announcements (for me) and links to more details

Read More

Share Comments

Auto-Tagging Azure resources with tags from parent Resource Group

I’ve always enjoyed analyzing Azure Cost usage and patterns and have successfully helped 2 clients so far get a deeper understanding of their azure cost by exposing the data in a nice PowerBI dashboard.

As everyone who’s played with this before know, the key to good cost control and insights is good tagging.

So once I had the tagging strategy established we went ahead and tagged all the Resource Groups in the subscription(s). Once that was done it was time to push those tags down to the resources.

To do that, I decided the quickest (?) way to get there was to write a nice little power shell script to apply tags set at a Resource Group level, to its child resources.

Read More

Share Comments

Using a Data Factory to load data into CosmosDB without code

If you’re looking at a quick, serverless and no-code solution to load data into your Cosmos DB database, you should look no further than Data Factory. With it’s multitude of connectors for sourcing data and its built in sink connector for CosmosDB, you can quickly create a data pipeline to ingest, refresh or keep your Cosmos Database in sync.

Read the rest of the article for a quick step-by-step guide on setting this up. One caveat, this only works for a SQL CosmosDB account for now.

Read More

Share Comments

Deploying a SQL Database with ARM templates

I am trying to build a new ARM template to deploy, among others, a SQL server along with a Database.

My starting point was to export the template from the Azure resource group where I had this deployed and start from there. However, when trying to deploy that template I always got a Conflict status with this cryptical error message:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"status": "Failed",
"error": {
"code": "ResourceDeploymentFailure",
"message": "The resource operation completed with terminal provisioning state 'Failed'.",
"details": [
{
"code": "InternalServerError",
"message": "An unexpected error occured while processing the request. Tracking ID: '...'"
}
]
}
}

Read More

Share Comments

Ignite 2019 CosmosDB round-up

It’s been a few weeks since Ignite 2019 ended and I wanted to do a quick recap of the major (and some minor) announcements around Cosmos DB

Read More

Share Comments

Azure CosmosDB dotnet sdk v3 ["One of the specified inputs is invalid"]

So after an hour of frustration, I finally managed to figure out why I wasn’t able to do a simple Insert in a Cosmos collection using the latest v3 dotnet sdk

For the first time in a while I was playing with the raw SDK(shameless plug - I usually use the wrapper I wrote that abstracts away a lot of the internals of dealing with the documents and SDK itself) and I was getting this weird exeption while trying to perform the most basic Insert/Upsert operation:

1
await _container.UpsertItemAsync(movie, new PartitionKey(movie.Title))

__container’s PartitionKey definition is /Title_

1
Microsoft.Azure.Cosmos.CosmosException: 'Response status code does not indicate success: 400 Substatus: 0 Reason: (Message: {"Errors":["One of the specified inputs is invalid"]}

Read More

Share Comments

Announcing CosmosDB.Net 3.0 library

I’m incredibly proud to announce the release of the latest version of my CosmosDB .NET library.

The new version is a library that helps development against an Azure Cosmos DB database - SQL or Graph. It is a wrapper over the latest stable official Azure Cosmos DB .NET SDK Version 3.0 as well as the Gremlin.NET driver.

Here are some of the highlight features:

  • model annotations so you don’t have to create artificial properties in your model to handle Ids, Partition Keys and Labels.
  • mix SQL and Graph calls when working against a Gremlin enabled Azure Cosmos DB container.
  • fast parallel inserts/upserts with TPL Dataflow for bulk inserting.

Check it out on GitHub (https://github.com/alexdrenea/CosmosDb.Net) or get it from NuGet (nuget install CosmosDB.Net)and let me know what you think. Feedback is welcomed either in comments or on GitHub.

Share Comments

Simplify bearer token auth flow in Postman

If you’re developing API’s chances are you are using Postman to test or debug them.
If not, you should totally consider giving it a try, it’s possibly the best productivity tool out there in terms of playing with APIs either developed by you, or someone else.

In this article I want to present you a flow that you can use when working with APIs that require a bearer token for authentication.

Read More

Share Comments

Scaling an Azure Cosmos DB instance with Azure Automation

I wrote before about the need to be able to automatically scale your CosmosDB collections in an attempt to maximize performance while keeping cost at a minimum.

In that article I presented more of a “code-first” solution that you could deploy and use outside the Azure Portal, as a stand-alone tool.

This time, I’m exploring another option, that ties into some preexisting tools that Azure offers - Azure Automation

Read More

Share Comments