猿问

Azure HTTP 函数无法发布

我正在尝试将我的 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 上发布。


有什么建议么?


慕慕森
浏览 86回答 1
1回答

米琪卡哇伊

当您发布函数时,您的local.settings.json文件不会发布。您需要将这些设置添加为 Azure Functions 应用程序设置的一部分。在您的情况下,您需要在其中添加&nbsp;myCosmosDBConnection&nbsp;值。
随时随地看视频慕课网APP
我要回答