当前位置: 首页 > 知识库问答 >
问题:

使用表存储的REST Api的Azure函数错误

东门晨
2023-03-14

您好,我正在尝试使用REST Api实现简单的Azure函数。My env是MSVC 2019,创建了一个简单的mmApi Function应用程序

using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using AzureFuncApp.Model;
using System.Collections.Generic;
using Microsoft.WindowsAzure.Storage.Table;
using Microsoft.WindowsAzure.Storage;

namespace AzureFuncApp
{
    public static class mmApi
    {
        //static List<Board> boards = new List<Board>();

        [FunctionName("CreateBoard")]
        public static async Task<IActionResult> CreateBoard(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "board")] HttpRequest req,
            [Table("boards", Connection ="AzureWebJobsStorage")] IAsyncCollector<BoardTableEntity> boardTable,
            ILogger log)
        {
            log.LogInformation("Creating a new board.");

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            var input = JsonConvert.DeserializeObject<BoardCreateModel>(requestBody);
            var board = new Board() { PlayerCount = input.PlayerCount };
            board.Players.Add(input.Player);
            await boardTable.AddAsync(board.ToTableEntity());
            return new OkObjectResult(board);
        }

我将这一行添加到表存储[Table(“boards”,Connection=“AzureWebJobsStorage”)]IAsyncCollector中

正在抛出以下错误

函数(AzureFuncAppmmApi/CreateBoard)错误:Microsoft。蔚蓝色的网络作业。主机:错误html" target="_blank">索引方法“CreateBoard”。微软蔚蓝色的网络作业。主机:无法将参数“boardTable”绑定到类型IAsyncCollector“1”。确保绑定支持参数类型。如果您使用的是绑定扩展(例如Azure Storage、ServiceBus、Timers等),请确保在启动代码中调用了扩展的注册方法(例如builder.AddAzureStorage()、builder)。AddServiceBus(),生成器。AddTimers()等)。

我没有关注的是在哪里注册生成器。AddAzureStorage()当我的项目中没有启动文件时。

附件是我的项目详细信息,任何帮助和指针都将不胜感激

共有1个答案

欧阳英彦
2023-03-14

我找到了答案,微软。净额。Sdk。函数更新到v3.0.2,在csprog文件中手动添加了以下引用,效果良好@tubakaya你的建议有帮助

    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.23" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.1" />   </ItemGroup>```
 类似资料:
  • 我正在尝试通过python访问Azure表存储。 按老办法走查https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-how-to-use-python#install-the-azure-storage-sdk-for-python 但是它特别为Azure表(https://github.com/Azure/azure-sto

  • 我已经定义了一个Azure函数,它使用Azure存储队列触发器和Blob输入绑定。我已经为队列触发器准备了一个POCO,但是如何在blob输入绑定中将该POCO与绑定表达式一起使用呢? 建筑: Azure功能2。x POCO: Azure功能: 队列消息: 错误消息: 系统私有的CoreLib:执行函数profileImageUpload时发生异常。微软蔚蓝色的WebJobs。主机:异常绑定参数“

  • 我想使用Python中的Azure函数将JSON数据作为. json文件上传到Azure存储Blob。 因为我使用的是Azure函数,而不是实际的服务器,所以我不想(也可能无法)在本地内存中创建一个临时文件,并使用Azure blob存储客户端库v2将该文件上载到Azure blob存储。1对于Python(这里有参考链接)。因此,我想为Azure函数使用输出blob存储绑定(这里有参考链接)。

  • 我有5台设备连接到物联网集线器。此设备发送消息,我已将此消息保存到Azure存储表not blob。 我是根据这本指南做任何事情的https://blog.maximerouiller.com/post/persisting-iot-device-messages-into-cosmosdb-with-azure-functions-and-iot-hub/不幸的是,我可以毫无问题地添加输入和输出

  • 问题内容: 我正在运行MySQL查询。但是,当从表单输入添加新行时,出现此错误: 从代码: 这个错误是什么意思? 问题答案: INSERT触发器触发时,您无法更改表。INSERT可能会进行一些锁定,这可能导致死锁。同样,从触发器更新表将导致同一触发器在无限递归循环中再次触发。这两个原因都是MySQL阻止您执行此操作的原因。 但是,根据要实现的目标,您可以使用NEW.fieldname甚至旧值(如果

  • 问题内容: 我有一个想要的表:更新该表后,该表的2个字段(标题和描述)会发生变化,并从另一个表中获取价值 这是我的触发器: 我的表: trade_request_type trade_request 错误: 错误1442:无法更新存储函数/触发器中的表’trade_request’,因为调用该存储函数/触发器的语句已使用该表。 这没用!什么是概率? 问题答案: 使用检查null值。 要更改更新后的