Skip to content

Instantly share code, notes, and snippets.

View ealsur's full-sized avatar

Matias Quaranta ealsur

View GitHub Profile
@ealsur
ealsur / hosts.json
Created January 15, 2019 20:06
Azure Cosmos DB + Functions - Health monitoring
{
"version": "2.0",
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"Host.Triggers.CosmosDB": "Trace"
}
}
}
@ealsur
ealsur / precompiled-output.cs
Created November 12, 2018 13:03
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)
{
@ealsur
ealsur / precompiled-input.cs
Created November 12, 2018 12:57
Azure Cosmos DB + Functions Cookbook - Multi master & preferred region
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "HttpInputBindingByIdInRoute/{id}")] HttpRequestMessage req,
[CosmosDB(databaseName: "%CosmosDBDatabase%",
collectionName: "%CosmosDBCollection%",
ConnectionStringSetting = "CosmosDBConnectionString",
UseMultipleWriteLocations = true,
PreferredLocations = "Central US,North Central US"
Id = "{id}")] Document document,
ILogger log)
{
@ealsur
ealsur / host.json
Created August 8, 2018 17:37
Custom ConnectionMode and Protocol for Functions V2
{
"cosmosDB": {
"connectionMode": "Direct",
"protocol": "Tcp"
}
}
@ealsur
ealsur / host.json
Created August 8, 2018 14:47
Custom ConnectionMode and Protocol
{
"documentDB": {
"connectionMode": "Direct",
"protocol": "Tcp"
}
}
@ealsur
ealsur / precompiled.cs
Created April 2, 2018 03:13
Azure Cosmos DB + Functions Cookbook - multi triggers
[FunctionName("Trigger1")]
public static void Run(
[CosmosDBTrigger("<your-monitored-database>",
"<your-monitored-collection>",
ConnectionStringSetting = "<your-connectionstring-setting>"
LeaseCollectionPrefix = "trigger1")]
IReadOnlyList<Document> input,
TraceWriter log)
{
log.Info("Documents modified " + input.Count);
@ealsur
ealsur / function2.json
Created April 2, 2018 02:00
Azure Cosmos DB + Functions Cookbook - multi triggers
{
"bindings": [
{
"type": "cosmosDBTrigger",
"name": "input",
"direction": "in",
"leaseCollectionName": "leases",
"connectionStringSetting": "<your-connectionstring-setting>",
"databaseName": "<your-monitored-database>",
"collectionName": "<your-monitored-collection>",
@ealsur
ealsur / function.json
Created April 2, 2018 01:59
Azure Cosmos DB + Functions Cookbook - multi triggers
{
"bindings": [
{
"type": "cosmosDBTrigger",
"name": "input",
"direction": "in",
"leaseCollectionName": "leases",
"connectionStringSetting": "<your-connectionstring-setting>",
"databaseName": "<your-monitored-database>",
"collectionName": "<your-monitored-collection>",
@ealsur
ealsur / project.json
Created March 9, 2018 07:38
Azure Cosmos DB + Functions Cookbook —secure access project.json
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.Azure.KeyVault": "2.3.2",
"Microsoft.Azure.Services.AppAuthentication": "1.1.0-preview"
}
}
}
}
@ealsur
ealsur / function.json
Created March 9, 2018 07:38
Azure Cosmos DB + Functions Cookbook —secure access function.json
{
"bindings": [
{
"name": "req",
"type": "httpTrigger",
"direction": "in"
},
{
"name": "$return",
"type": "http",