gpt4 book ai didi

Azure函数表绑定(bind): How do I update a row?

转载 作者:行者123 更新时间:2023-12-04 02:55:06 26 4
gpt4 key购买 nike

我正在尝试基于 Azure 函数更新 Azure 表中的行。我看到 Table 绑定(bind)可以处理 ICollector,它有一个 Add 方法,可以添加一行。我还看到您使用 IQueryable 来读取数据。

如何更新数据中的特定行?

我在 WebJobs 中看到了与 InsertOrReplace 相关的内容,这是 TableOperations 的一种方法,但我不知道它是否或如何发挥作用,以及如何将其与 Azure Functions 一起使用。

最佳答案

以下是实现此目的的一种方法。在我们的下一个版本中,这些步骤将变得更加容易,但现在您需要手动引入 Azure 存储 SDK。

首先,按照 this help page 的“包管理”部分中的步骤操作引入Azure 存储 SDK。您将把如下所示的 project.json 上传到您的函数文件夹:

{
"frameworks": {
"net46":{
"dependencies": {
"WindowsAzure.Storage": "7.0.0"
}
}
}
}

注意:在下一个版本中,我们将自动包含 Azure 存储 SDK,以便您可以直接在代码中使用它。提取包后,您可以在集成选项卡选项卡高级编辑器中输入如下所示的函数元数据:

{
"bindings": [
{
"name": "input",
"type": "manualTrigger",
"direction": "in"
},
{
"name": "table",
"type": "table",
"tableName": "test",
"connection": "<your connection>",
"direction": "in"
}
]
}

下面是相应的代码。我们在这里绑定(bind)到一个CloudTable,它允许我们读取/写入实体:

#r "Microsoft.WindowsAzure.Storage"

using System;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Table;

public static void Run(string input, CloudTable table, TraceWriter log)
{
TableOperation operation = TableOperation.Retrieve<Person>("AAA", "001");
TableResult result = table.Execute(operation);
Person person = (Person)result.Result;

log.Verbose($"{person.Name} is {person.Status}");

person.Status = input;
operation = TableOperation.Replace(person);
table.Execute(operation);
}

public class Person : TableEntity
{
public string Name { get;set; }
public string Status { get;set; }
}

在此示例中我使用了 ManualTrigger,但表绑定(bind)将适用于您拥有的任何触发器。通过上述设置,我可以在门户的“运行”输入框中输入一个值,然后单击“运行”。该函数将查询实体,输出其当前值,然后使用我的输入进行更新。

其他排列也是可能的。例如,如果您有来自另一个绑定(bind)参数的实体实例,则可以以类似的方式使用 CloudTable 来更新它。

关于Azure函数表绑定(bind): How do I update a row?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36792547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com