Skip to content

Instantly share code, notes, and snippets.

Matias Quaranta ealsur

View GitHub Profile
@ealsur
ealsur / run.csx
Last active Oct 14, 2018
Azure Cosmos DB + Functions Cookbook: static client
View run.csx
#r "Microsoft.Azure.Documents.Client"
using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using System.Net;
using System.Configuration;
private static string endpointUrl = ConfigurationManager.AppSettings["cosmosDBAccountEndpoint"];
private static string authorizationKey = ConfigurationManager.AppSettings["cosmosDBAccountKey"];
private static DocumentClient client = new DocumentClient(new Uri(endpointUrl), authorizationKey);
@ealsur
ealsur / wrong-run.csx
Last active Jan 22, 2018
Azure Cosmos DB + Functions Cookbook: static client (wrong scenario)
View wrong-run.csx
#r "Microsoft.Azure.Documents.Client"
using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using System.Net;
private static string endpointUrl = ConfigurationManager.AppSettings["cosmosDBAccountEndpoint"];
private static string authorizationKey = ConfigurationManager.AppSettings["cosmosDBAccountKey"];
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
@ealsur
ealsur / run.csx
Last active Jan 19, 2018
Azure Cosmos DB + Functions Cookbook - HTTP query csx
View run.csx
#r "System.Runtime.Serialization"
using System.Net;
using System.Runtime.Serialization;
// Define the class that will get sent on the HTTP body
// DataContract is used to support XML
[DataContract(Name = "Query", Namespace = "http://functions")]
public class Query {
@ealsur
ealsur / function.json
Last active Jan 19, 2018
Azure Cosmos DB + Functions Cookbook - HTTP query json
View function.json
{
"bindings": [
{
"name": "query",
"type": "httpTrigger",
"direction": "in"
},
{
"name": "$return",
"type": "http",
@ealsur
ealsur / index.js
Created Jan 19, 2018
Azure Cosmos DB + Functions Cookbook - HTTP query nodejs
View index.js
module.exports = function (context, req) {
var documents = context.bindings.documents;
var totalDocuments = documents.length;
context.log('Found '+ totalDocuments +' documents');
if(totalDocuments === 0){
context.res = {
status: 404,
body : "No documents found"
};
@ealsur
ealsur / function.json
Created Jan 30, 2018
Azure Cosmos DB + Functions Cookbook - output collector function.json
View function.json
{
"bindings": [
{
"name": "classes",
"type": "httpTrigger",
"direction": "in"
},
{
"name": "$return",
"type": "http",
@ealsur
ealsur / run.csx
Created Jan 30, 2018
Azure Cosmos DB + Functions Cookbook - output collector run.csx
View run.csx
using System.Net;
public class MyClass {
public string id {get;set;}
public string name {get;set;}
}
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, MyClass[] classes, TraceWriter log, IAsyncCollector<MyClass> documentsToStore)
{
log.Info($"Detected {classes.Length} incoming documents");
@ealsur
ealsur / index.js
Created Jan 30, 2018
Azure Cosmos DB + Functions Cookbook - output collector index.js
View index.js
module.exports = function (context, req) {
context.log('Detected ' + req.body.length + ' incoming documents');
context.bindings.documentsToStore = [];
for(let i = 0, len=req.body.length; i<len;i++){
const doc = req.body[i];
context.bindings.documentsToStore.push(doc);
}
context.done(null, {
@ealsur
ealsur / data.json
Created Jan 30, 2018
Azure Cosmos DB + Functions Cookbook - output collector sample payload
View data.json
[
{
"id":"1",
"name": "John",
"surname": "McClane"
},
{
"id":"2",
"name": "John",
"surname": "Rambo"
@ealsur
ealsur / index.js
Created Feb 6, 2018
Azure Cosmos DB + Functions Cookbook - live migration index.js
View index.js
module.exports = function(context, input) {
if(!!input && input.length > 0){
context.bindings.docsToSave = [];
for(let i = 0, len=input.length; i<len;i++){
const doc = input[i];
// Do something here with the doc or create a new one
context.bindings.docsToSave.push(doc);
}
}
You can’t perform that action at this time.