Skip to content

Instantly share code, notes, and snippets.

@ealsur
Created November 12, 2018 13:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ealsur/8db229a9d20b37bd4ba41aae033b8fe8 to your computer and use it in GitHub Desktop.
Save ealsur/8db229a9d20b37bd4ba41aae033b8fe8 to your computer and use it in GitHub Desktop.
Azure Cosmos DB + Functions Cookbook - Multi master & preferred region
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
[CosmosDB(databaseName: "%CosmosDBDatabase%",
collectionName: "%CosmosDBCollection%",
ConnectionStringSetting = "CosmosDBConnectionString",
UseMultipleWriteLocations = true,
PreferredLocations = "Central US"
)] IAsyncCollector<MyClass> documentsToSave,
ILogger log)
{
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
MyClass[] inputDocuments = JsonConvert.DeserializeObject<MyClass[]>(requestBody);
if (inputDocuments == null)
{
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
foreach (MyClass inputDocument in inputDocuments)
{
await documentsToSave.AddAsync(inputDocument);
log.LogInformation(inputDocument.id);
}
return new HttpResponseMessage(HttpStatusCode.Created);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment