我想创建一个Azure函数,它将传递给它的JSON正文并将此文档插入到Azure COSMOSDB实例中。使用CosmosDB文档输出创建HttpTrigger Azure函数时出错
并实行像这样的功能:
#r "Newtonsoft.Json"
using Newtonsoft.Json.Linq;
using System.Net;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log, object outputDocument)
{
var requestContent = await req.Content.ReadAsStringAsync();
log.Verbose([email protected]"Received request:\n{requestContent}");
var newDoc = JObject.Parse(requestContent);
newDoc["Id"] = Guid.NewGuid().ToString();
newDoc["shardKey"] = newDoc.Value<string>(@"Id").Substring(8);
outputDocument = newDoc;
return req.CreateResponse(System.Net.HttpStatusCode.Created);
}
在门户中,我把一个简单的示例文档:
{
"prop1": 2,
"prop2": "2017-02-20",
}
,然后单击 '运行'
在门户IDE的覆盖与
{
"id": "145ee924-f824-4064-8364-f96dc12ab138",
"requestId": "5a27c287-2c91-40f5-be52-6a79c7c86bc2",
"statusCode": 500,
"errorCode": 0,
"message": "'UploadDocumentToCosmos' can't be invoked from Azure WebJobs SDK. Is it missing Azure WebJobs SDK attributes?"
}
在日志区域
一起。
我似乎没有办法解决这个问题,但我确实觉得我做的一切都是正确的。
我需要做什么才能将JSON对象简单地作为HTTP请求发送到Azure函数,并将所述对象插入/插入到Azure Cosmos数据库实例中?
This编译但值得注意[根本不在文档中](https://www.screencast.com/t/ea0M4zMcyIcB)。 尚未运行它。 – bc3tech
您可以在这里阅读有关Azure函数的更多信息https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp。本文档讨论IAsyncCollector –
谢谢@RafatSarosh。虽然文档中提到这种类型是你可以把东西放进去的东西,但是将它类型应用到每个绑定旁边(cosmosdb等)的描述会更便宜。因为我也可以使用“DocumentDB”作为绑定类型。另外,围绕它的所有CSX的东西让我完全忽略它;我在Visual Studio中开发。 – bc3tech