我知道如何使用Azure云函数在我的CosmosDB实例中创建、读取和更新文档,但仍然不知道如何实现删除。我用作参考的主要文档是https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-cosmos-db-triggered-function.
我尝试使用没有id的输入和输出绑定(从而获取整个html" target="_blank">集合),然后过滤要从inputDocuments中删除的项,并将结果设置为outputDocuments。不幸的是,这似乎并没有从数据库实例中实际删除该项。知道我可能遗漏了什么吗?正确的方法是什么?
以下是我编写的代码:
const { id } = req.query;
context.bindings.outputDocuments = context.bindings.inputDocuments;
const index = context.bindings.outputDocuments.findIndex(doc => doc.id === id);
const doc = context.bindings.outputDocuments.splice(index, 1);
我还尝试了一个更简单的版本,但没有什么不同:
const { id } = req.query;
context.bindings.outputDocuments = context.bindings.inputDocuments.filter(doc => doc.id !== id);
我使用日志语句验证了我的函数是否正确更新了上述两个实现的outputDocuments。
这是我的绑定:
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"delete"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"type": "documentDB",
"name": "inputDocuments",
"databaseName": "heroesDatabase",
"collectionName": "HeroesCollection",
"connection": "ydogandjiev-documentdb_DOCUMENTDB",
"direction": "in"
},
{
"type": "documentDB",
"name": "outputDocuments",
"databaseName": "heroesDatabase",
"collectionName": "HeroesCollection",
"createIfNotExists": false,
"connection": "ydogandjiev-documentdb_DOCUMENTDB",
"direction": "out"
}
],
"disabled": false
}
您可以使用客户端并调用以下示例中提到的DeleteDocumentAsync
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, string customerid, TraceWriter log, DocumentClient client)
{
HttpResponseMessage response = new HttpResponseMessage();
try {
await client.DeleteDocumentAsync(UriFactory.CreateDocumentUri("BankDatabase","Customers", customerid));
response.StatusCode = HttpStatusCode.OK;
log.Info($"Deleted customer with id: {customerid}");
}
catch (DocumentClientException exc)
{
if (exc.StatusCode == HttpStatusCode.NotFound)
{
response = req.CreateResponse(HttpStatusCode.NotFound, "There is no item with given ID in our database!");
}
else
{
response = req.CreateResponse(HttpStatusCode.InternalServerError, "Internal server error. Contact administrator.");
}
}
return response;
}
请在具有Azure功能的Azure CosmosDB上找到完整的回购
我一直在寻找一种技术,使用浏览器中的代码编辑器,使用Azure函数删除Cosmos数据库中的项目。我不想在VS上使用本地开发的代码,原因有很多。 这里提供了我使用的代码,我使用的是带有CosmosDB输入和输出绑定的HttpTrigger。它们的名称非常明显(inputDocument,outputDocument)。 这段代码在从db读取项目和编写新文档方面工作得非常好,但是我希望能够删除单个项
这两次尝试都给了我一个。 如何删除文件夹??
我在Azure cosmosDB中有一个集合,我在其中启用了无默认值的生存时间(TTL)功能。 根据我将在此问题中提到的文档,一切似乎都非常清楚,但仍然缺少一些东西,因为5天后我仍然可以看到TTL为300秒的文档。 符合文件要求: Azure Cosmos DB将在这段时间后自动删除这些项目,因为它们是最后一次修改的。生存时间值以秒为单位进行配置。当您配置TTL时,系统将根据TTL值自动删除过期的
我的Angular网站托管在Firebase上,从今年年初开始,由于
我正在使用gradle构建一个Spring Boot应用程序,我希望从war中删除文件,因为该文件将从外部加载(它运行在tomcat容器中,而不是嵌入式的)。 我查看了StackOverflow和Gradle文档,试图找出该做什么,但我不知道该绑定到哪个阶段,以及在创建war之前还是之后排除该文件。处理文件似乎也有多种方法。 我相信Maven使用作为等价物。
我正在创建一个Azure函数,当图像上传到或添加到特定Azure存储时触发该函数,它执行以下操作: 1.)调整图像大小2.)将图像放入正确的目录(使用输出绑定)3.)删除处理后添加到Azure存储的原始blob图像。 我已经完成了过程中的步骤1和2,但我发现很少甚至没有关于删除blob或API的文档,这些文档将公开Azure存储的方法。(使用C#) 以下是示例代码: