我正在尝试将我的 Azure HTTP 函数从 Visual Studio Code 发布到我们的 Azure 平台。该代码在本地运行该函数时工作正常并成功发布,但在发布时抛出以下错误。我尝试使用 DocumentDB 而不是 CosmosDB,但缺乏将数据插入 CosmosDB 所需的插入功能。 Stackoverflow 没有针对此类特定问题的解决方案。功能码//write to cosmosdb[FunctionName("InsertItem")] public static HttpResponseMessage Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)]HttpRequestMessage req, [CosmosDB( databaseName: "ToDoList", collectionName: "RFIDContainer", ConnectionStringSetting = "myCosmosDBConnection")] out RFIDBaseTag document, ILogger log) { string hexData = ""; string afi = ""; string eid = ""; string dsfid = ""; //Guid DeviceID = new Guid(); //Guid AppID = new Guid(); var content = req.Content; string jsonContent = content.ReadAsStringAsync().Result; dynamic json = JsonConvert.DeserializeObject<MyClass>(jsonContent); hexData = json?.hexData; afi = json?.afi; eid = json?.eid; dsfid = json?.dsfid; /*Guid devGuid; Guid.TryParse(json.AppID.ToString(), out devGuid); DeviceID = devGuid; Guid appGuid; Guid.TryParse(json.AppID.ToString(), out appGuid); AppID = appGuid;*/ byte[] hexToByte = AzureRFIDTagReader.StringToByteArray(hexData); RawRFIDReading raw = new RawRFIDReading(); raw.afi = afi; raw.eid = eid; raw.dsfid = dsfid; raw.RawData = hexToByte; RFIDBaseTag rtag = RFIDTagFactory.GetTag(raw); string serializedtag = JsonConvert.SerializeObject(rtag); //document = JsonConvert.DeserializeObject<MyClass>(jsonContent); //document = JsonConvert.DeserializeObject<RFIDBaseTag(serializedtag); document = rtag; log.LogInformation($"C# Queue trigger function inserted one row"); return new HttpResponseMessage(HttpStatusCode.Created); }错误信息:函数(xxx/InsertItem)错误:Microsoft.Azure.WebJobs.Host:索引方法“InsertItem”错误。 Microsoft.Azure.WebJobs.Host:无法解析属性“CosmosDBAttribute.ConnectionStringSetting”的值。确保该设置存在并且具有有效值。我可以在本地发布该函数,但不能在 Azure 上发布。有什么建议么?
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
当您发布函数时,您的local.settings.json
文件不会发布。
您需要将这些设置添加为 Azure Functions 应用程序设置的一部分。在您的情况下,您需要在其中添加 myCosmosDBConnection
值。
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报
0/150
提交
取消