Azure 函数输入绑定:“表”属性的哪个 NuGet 包?

rek*_*cul 2 c# azure-table-storage azure-functions

我正在使用 HttpTrigger 创建一个新的 azure 函数。我想实现一个天蓝色的表存储表作为输入绑定。按照 msdn 中的源代码示例,我无法确定可以在哪个 NuGet 包中找到“Table”属性。

编译问题:

找不到类型或命名空间“TableAttribute”(您是否缺少 using 指令或程序集引用?)

代码行,导致问题:

public static async Task<IActionResult>
         Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, 
         [Table("AzureWebJobsHostLogscommon")] CloudTable cloudTable, 
         ILogger log)
Run Code Online (Sandbox Code Playgroud)

我所指的 MSDN 中的源代码示例可以在这里找到:

https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/azure-functions/functions-bindings-storage-table.md#input---c-example---one-

和这里:

https://docs.microsoft.com/de-de/azure/azure-functions/functions-bindings-storage-table#input---c-example---cloudtable

第二个示例还显示了 using 指令。但即使在复制示例时,表属性也无法正确解析。

我还看到了这个 stackoverflow 线程:

使用 http 触发函数将输入绑定到表存储

但第一个解决方案对我来说只是一种解决方法,因为表存储连接是在函数执行期间完成的,而不是作为输入绑定。如果您看到第二个建议的解决方案,它会显示与 MSDN 中相同的代码。

这是我的代码:

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
using Microsoft.WindowsAzure.Storage.Table;
using System;
using System.Net;
using System.Threading.Tasks;

namespace TableStorageIntegration.HTTPTrigger
{
    public static class Function1
    {
        [FunctionName("DoSomething")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,      
            [Table("AzureWebJobsHostLogscommon")] CloudTable cloudTable,
            ILogger log)
        {
            string someHttpGetParameter = req.Query["someParameter"];
            // .... 
            // Some addition code to be executed here but not relevant for the issue
            // .....
            return new OkObjectResult($"Data provided");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

提议的实施仍然有效吗?如果是,我必须安装哪个 NuGet 包来解析 table 属性?

sil*_*ent 6

您需要添加此 NuGet 包:https : //nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage

  • 警告:Microsoft.Azure.WebJobs.Extensions.Storage 5.0.0 中尚未继承对表绑定的支持。使用4.0.5或表存储SDK。请参阅此线程:https://learn.microsoft.com/en-us/answers/questions/607702/microsoftazurewebjobsextensionsstorage-500-and-tab.html (5认同)

Igo*_*ros 6

所以看起来他们出于某种原因已经删除了。TableAttribute

不过,他们正在努力在 2022 年初将其恢复。

同时,如果您使用 Azure 表,则有一些解决方法:

  • 保留支持表的 v4 版本的 Functions Extensions,直到新扩展发布
  • 使用上面链接的 Azure.Data.Tables 库,通过 Azure Function 代码直接与 Azure Tables 服务交互。