Запрос CosmosDB из функции Azure.csx
Я хочу запросить коллекцию CosmosDB, чтобы узнать, существует ли уже документ из функции Azure с использованием csx.
Помимо следующего кода, у меня есть неявная привязка к коллекции cosmosDB, чтобы можно было создавать новые документы. Это сделано с помощью
binder.BindAsync<IAsyncCollector<string>>(new CosmosDBAttribute("test", "collection")
Это простая версия моей функции.
#r "System"
#r "Microsoft.Azure.WebJobs.Extensions.CosmosDB"
using System;
using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
public static async Task<string> Run(string localityId, Binder binder, TraceWriter log)
{
...
string EndpointUrl = "<your endpoint URL>";
string PrimaryKey = "<your primary key>";
DocumentClient client = new DocumentClient(new Uri(EndpointUrl), PrimaryKey);
...
}
Это приводит к следующему сообщению об ошибке:
ошибка CS0246: не удалось найти тип или имя пространства имен DocumentClient (отсутствует директива using или ссылка на сборку?)
Я установил расширение Microsoft.Azure.WebJobs.Extensions.CosmosDB
Я работаю на MacOS, используя func host start
Команда для тестирования локально.
1 ответ
ошибка CS0246: не удалось найти тип или имя пространства имен DocumentClient (отсутствует директива using или ссылка на сборку?)
Похоже, вам нужно сослаться на #r "Microsoft.Azure.Documents.Client". Вы также можете получить демонстрационный код из привязок Azure Cosmos DB для функций Azure.
#r "Microsoft.Azure.Documents.Client"
using System;
using Microsoft.Azure.Documents;
using System.Collections.Generic;
public static void Run(IReadOnlyList<Document> documents, TraceWriter log)
{
log.Verbose("Documents modified " + documents.Count);
log.Verbose("First document Id " + documents[0].Id);
}
Обновить:
Чтобы использовать пакеты NuGet в функции C#, загрузите файл project.json в папку функции в файловой системе приложения функции. Вот пример файла project.json, который добавляет ссылку