不管怎样,我正在做的一个项目就是使用CosmosDB。他们已经创建了一些azure函数来插入和从Cosmos DB获取数据。我必须通过模拟本地机器中的Cosmos DB来测试这些功能。
我如何测试这些方法?如何在我的本地机器中模拟宇宙数据库?
由于您已经安装了Cosmos DB模拟器,您可以在本地使用SDK或直接在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模拟器中找到endpointURL和键:
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);
}
}
}
}
我一直在寻找一种技术,使用浏览器中的代码编辑器,使用Azure函数删除Cosmos数据库中的项目。我不想在VS上使用本地开发的代码,原因有很多。 这里提供了我使用的代码,我使用的是带有CosmosDB输入和输出绑定的HttpTrigger。它们的名称非常明显(inputDocument,outputDocument)。 这段代码在从db读取项目和编写新文档方面工作得非常好,但是我希望能够删除单个项
下面是我的function.json 有什么想法可以摆脱这个“exception:attributeError:module'azure.functions'没有属性'in'”错误吗?
我最近开始使用Azure CosmosDB和函数。在阅读文档 https://docs.microsoft.com/pl-pl/azure/cosmos-db/change-feed-processor 时,我发现了一些对我来说很难理解的东西。是否真的可以在许多函数之间共享更改源,以便它们将由一个相同的数据库操作触发?什么是租约收集,它解决了什么问题。租赁的目的是什么?我想对这些术语进行基本解释。
我制作了一个Azure函数(http触发器),并使用Visual Studio 2019将其部署在门户中。 该函数工作正常,我现在将添加一个绑定到我的CosmosDB。我导航到我的函数,然后单击“集成”。现在我看到了触发器、函数以及输入和输出绑定。 我应该可以在这里添加一个新的输入绑定。但我没有“添加”按钮。我做错了什么?
我对Azure函数和CosmosDB输出绑定有问题。我现在拥有的是:我从一个Cosmos DB容器中读取数据,处理一些东西,然后将结果输出回同一个DB但不同的容器。我正在使用VSCode和python,并测试了其他输出(blob、HTTP响应等),所有这些都正常工作,所以我认为这是CosmosDB的问题。 主要功能定义如下: function.json输出绑定如下: 请注意,我使用和我的扩展手动安
我将JSON文档上传到Azure Blob容器中,并编写了Azure Python函数将JSON写入CosmosDB。触发工作正常,但我出错了。下面是Python函数: 以下是function.json文件: 这是我在Azure门户中看到的错误: 结果:失败异常:函数加载错误:无法加载JsonBobTrigger1函数:以下参数在Python中声明,但在function.json中没有声明:{'d