我是CosmosDB和azure函数的新手,也不知道它是如何工作的。
无论如何,我正在处理的项目正在使用CosmosDB。他们创建了一些Azure函数,用于从Cosmos DB插入和获取数据。我必须通过在本地计算机上模拟Cosmos DB来测试这些功能。
如何测试这些方法?如何在我的本地计算机上模拟Cosmos DB?
答案 0 :(得分:2)
由于已经安装了Cosmos DB仿真器,因此可以使用SDK在本地Cosmos DB中操作文档,也可以直接在数据浏览器中操作文档。
示例插入文档代码:
using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using System;
using System.Threading.Tasks;
namespace JayGongDocumentDB.module
{
class TestEmulator
{
private static readonly string endpointUrl = "https://localhost:8081";
private static readonly string authorizationKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
private static readonly string databaseId = "db";
private static readonly string collectionId = "coll";
private static DocumentClient client;
public static async Task TestAsync()
{
client = new DocumentClient(new Uri(endpointUrl), authorizationKey);
var uri = UriFactory.CreateDocumentCollectionUri(databaseId, collectionId);
var doc = new Document();
doc.SetPropertyValue("name", "jay");
await client.CreateDocumentAsync (
"/dbs/db/colls/coll", doc,null);
Console.WriteLine("insert success");
}
}
}
您可以在Azure Azure Cosmos db仿真器中找到endpointUrl和密钥:
关于azure函数,您可以按照official doc创建Cosmos DB触发器Azure函数。
using System.Collections.Generic;
using Microsoft.Azure.Documents;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
namespace TestAzureFunction
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([CosmosDBTrigger(
databaseName: "db",
collectionName: "coll",
ConnectionStringSetting = "CosmosdbString",
LeaseCollectionName = "leases")]IReadOnlyList<Document> input, TraceWriter log)
{
if (input != null && input.Count > 0)
{
log.Verbose("Documents modified " + input.Count);
log.Verbose("First document Id " + input[0].Id);
}
}
}
}
希望它对您有帮助。