Nosql 用于Azure函数的Cosmos DB模拟

Nosql 用于Azure函数的Cosmos DB模拟,nosql,azure-functions,azure-cosmosdb,Nosql,Azure Functions,Azure Cosmosdb,我对CosmosDB和azure功能还不熟悉,不知道它是如何工作的 无论如何,我正在做的一个项目是使用CosmosDB。他们已经创建了一些azure函数来插入和从Cosmos DB获取数据。我必须在本地机器上模拟Cosmos DB来测试这些功能 如何测试这些方法?如何在我的本地计算机上模拟Cosmos DB?由于您已经安装了Cosmos DB Emulator,您可以使用data explorer或直接在data explorer上本地操作Cosmos DB中的文档 插入文档代码示例: usin

我对CosmosDB和azure功能还不熟悉,不知道它是如何工作的

无论如何,我正在做的一个项目是使用CosmosDB。他们已经创建了一些azure函数来插入和从Cosmos DB获取数据。我必须在本地机器上模拟Cosmos DB来测试这些功能


如何测试这些方法?如何在我的本地计算机上模拟Cosmos DB?

由于您已经安装了Cosmos DB Emulator,您可以使用data explorer或直接在data explorer上本地操作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 cosmos db emulator中找到endpointUrl和密钥:

关于azure函数,您可以按照创建Cosmos DB Trigger 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);
            }
        }
    }
}
使用System.Collections.Generic;
使用Microsoft.Azure.Documents;
使用Microsoft.Azure.WebJobs;
使用Microsoft.Azure.WebJobs.Host;
命名空间测试拒绝
{
公共静态类函数1
{
[功能名称(“功能1”)]
公共静态无效运行([CosmosDBTrigger(
数据库名称:“db”,
集合名称:“coll”,
ConnectionStringSetting=“CosmosdbString”,
LeaseCollectionName=“leases”)]IReadOnlyList输入,TraceWriter日志)
{
if(输入!=null&&input.Count>0)
{
log.Verbose(“文档修改”+输入.Count);
log.Verbose(“第一个文档Id”+输入[0].Id);
}
}
}
}

希望它对您有所帮助。

通常,当您在Visual Studio中安装SDK时,它会让您访问本地计算机上的模拟器,我可以确认您已安装这些吗?@Captain\u Custard是的,它已嵌入。CosmosDB模拟器应与之一起安装,然后安装@Captain\u Custard。我想知道如何配置它,编写测试用例,以及如何在模拟器中运行它。谢谢你的回答。我只是有时间经历一下。希望能有帮助。如果需要任何澄清,请联系您。@Pegasus,当然。等待您的答复。您的回答对我帮助很大。非常感谢你。