Microsoft.Azure.WebJobs.Extensions.Tables 1.3.2
预留前缀
dotnet add package Microsoft.Azure.WebJobs.Extensions.Tables --version 1.3.2
NuGet\Install-Package Microsoft.Azure.WebJobs.Extensions.Tables -Version 1.3.2
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Tables" Version="1.3.2" />
paket add Microsoft.Azure.WebJobs.Extensions.Tables --version 1.3.2
#r "nuget: Microsoft.Azure.WebJobs.Extensions.Tables, 1.3.2"
// Install Microsoft.Azure.WebJobs.Extensions.Tables as a Cake Addin #addin nuget:?package=Microsoft.Azure.WebJobs.Extensions.Tables&version=1.3.2 // Install Microsoft.Azure.WebJobs.Extensions.Tables as a Cake Tool #tool nuget:?package=Microsoft.Azure.WebJobs.Extensions.Tables&version=1.3.2
Azure WebJobs Tables 客户端库,适用于 .NET
此扩展模块为 Azure Functions 访问 Azure 表提供功能。
入门
安装包
使用 NuGet 安装 Tables 扩展模块
dotnet add package Microsoft.Azure.WebJobs.Extensions.Tables
先决条件
您需要一个 Azure 订阅 和一个 存储帐户 或 Cosmos 表帐户 来使用此包。
使用存储表
要创建新的存储帐户,您可以使用 Azure 门户、Azure PowerShell 或 Azure CLI。以下是一个使用 Azure CLI 的示例:
az storage account create --name <your-resource-name> --resource-group <your-resource-group-name> --location westus --sku Standard_LRS
使用 Cosmos 表
要创建新的 Cosmos 表,您可以使用 Azure Portal、Azure PowerShell 或 Azure CLI。
验证客户端
连接表示连接到表服务所需的一系列信息。它可以包含连接字符串、端点、令牌凭据或共享密钥。
TableAttribute
的 Connection
属性定义了用于 Table 服务访问的连接。例如,[Tables(Connection="MyTableService")]
将使用 MyTableService
连接。
可以在 local.settings.json
或 Azure Portal 的应用程序设置中设置连接信息。
将设置添加到 local.settings.json 时,将其放置在 Values
属性下
{
"IsEncrypted": false,
"Values": {
"MyTableService": "..."
}
}
在 Azure Portal 中添加应用程序设置时,直接使用提供名称
MyTableService = ...
Tables 扩展默认使用 AzureWebJobsStorage
连接名称。
连接字符串
要使用连接字符串身份验证,直接将连接字符串值分配给连接设置。
<ConnectionName>
= DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net
使用端点和令牌凭据
注意:仅支持存储表使用令牌凭据身份验证。
<ConnectionName>__endpoint
= https://...table.core.windows.net
如果没有提供凭据信息,则使用 DefaultAzureCredential
。
使用用户分配的管理的标识符时,需要提供 clientId
和 credential
设置。
<ConnectionName>__credential
= managedidentity
<ConnectionName>__clientId
= <分配的用户ID>
使用共享密钥凭据
在使用 共享密钥身份验证 时,需要提供 endpoint
、accountKey
和 accountName
。
<ConnectionName>__endpoint
= https://...table.core.windows.net
<ConnectionName>__credential__accountName
= <账户名称>
<ConnectionName>__credential__accountKey
= <账户密钥>
关键概念
输入绑定允许您将表作为 Azure 函数的输入读取。输出绑定允许您在 Azure 函数中修改和删除表行。
请参阅 输入绑定教程 和 输出绑定教程,了解如何使用此扩展访问表服务。
示例
Tables 扩展只提供绑定。绑定本身不能触发函数。它只能读取或写入表条目。
以下示例中,我们使用 HTTP 触发器 调用函数。
绑定到单个实体
public class InputSingle
{
[FunctionName("InputSingle")]
public static void Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
[Table("MyTable", "<PartitionKey>", "<RowKey>")] TableEntity entity, ILogger log)
{
log.LogInformation($"PK={entity.PartitionKey}, RK={entity.RowKey}, Text={entity["Text"]}");
}
}
使用模型类型绑定到单个实体
public class MyEntity
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Text { get; set; }
}
public class InputSingleModel
{
[FunctionName("InputSingleModel")]
public static void Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
[Table("MyTable", "<PartitionKey>", "<RowKey>")] MyEntity entity, ILogger log)
{
log.LogInformation($"PK={entity.PartitionKey}, RK={entity.RowKey}, Text={entity.Text}");
}
}
使用筛选绑定到多个实体
public class InputMultipleEntitiesFilter
{
[FunctionName("InputMultipleEntitiesFilter")]
public static void Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
[Table("MyTable", "<PartitionKey>", Filter = "Text ne ''")] IEnumerable<TableEntity> entities, ILogger log)
{
foreach (var entity in entities)
{
log.LogInformation($"PK={entity.PartitionKey}, RK={entity.RowKey}, Text={entity["Text"]}");
}
}
}
创建单个实体
public class OutputSingle
{
[FunctionName("OutputSingle")]
public static void Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
[Table("MyTable")] out TableEntity entity)
{
entity = new TableEntity("<PartitionKey>", "<RowKey>")
{
["Text"] = "Hello"
};
}
}
使用模型创建单个实体
public class MyEntity
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Text { get; set; }
}
public class OutputSingleModel
{
[FunctionName("OutputSingleModel")]
public static void Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
[Table("MyTable")] out MyEntity entity)
{
entity = new MyEntity()
{
PartitionKey = "<PartitionKey>",
RowKey = "<RowKey>",
Text = "Hello"
};
}
}
创建多个实体
public class OutputMultiple
{
[FunctionName("OutputMultiple")]
public static void Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "POST")] HttpRequest request,
[Table("MyTable")] IAsyncCollector<TableEntity> collector)
{
for (int i = 0; i < 10; i++)
{
collector.AddAsync(new TableEntity("<PartitionKey>", i.ToString())
{
["Text"] = i.ToString()
});
}
}
}
使用模型创建多个实体
public class MyEntity
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Text { get; set; }
}
public class OutputMultipleModel
{
[FunctionName("OutputMultipleModel")]
public static void Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "POST")] HttpRequest request,
[Table("MyTable")] IAsyncCollector<MyEntity> collector)
{
for (int i = 0; i < 10; i++)
{
collector.AddAsync(new MyEntity()
{
PartitionKey = "<PartitionKey>",
RowKey = i.ToString(),
Text = i.ToString()
});
}
}
}
绑定到 SDK TableClient 类型
使用 Azure Tables SDK 通过 TableClient 方法参数访问表。
public class BindTableClient
{
[FunctionName("BindTableClient")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "POST")] HttpRequest request,
[Table("MyTable")] TableClient client)
{
await client.AddEntityAsync(new TableEntity("<PartitionKey>", "<RowKey>")
{
["Text"] = request.GetEncodedPathAndQuery()
});
}
}
故障排除
请参阅监控 Azure 函数以获取故障排除指导。
下一步
贡献
有关构建、测试和为此库做贡献的详细信息,请参阅CONTRIBUTING.md。
本项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权利并且确实授权我们使用您的贡献。详情请访问cla.microsoft.com。
本项目已采用Microsoft 开源行为准则。更多信息请参阅行为准则常见问题解答,或通过[email protected]联系以提出任何额外的问题或评论。
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET | net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
.NET Core | netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET Standard | netstandard2.0 兼容。 netstandard2.1 已计算。 |
.NET Framework | net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen40 已计算。 tizen60 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETStandard 2.0
- Azure.Data.Tables (>= 12.8.0)
- Microsoft.Azure.WebJobs (>= 3.0.37)
- Microsoft.Extensions.Azure (>= 1.7.4)
NuGet 包 (1)
显示依赖于 Microsoft.Azure.WebJobs.Extensions.Tables 的前 1 个 NuGet 包
包 | 下载 |
---|---|
FunctionMonkey.Cgo
包说明 |
GitHub 仓库
此包没有被任何流行的 GitHub 仓库使用。
版本 | 下载 | 最后更新 |
---|---|---|
1.3.2 | 10,608 | 6/13/2024 |
1.3.1 | 12,529 | 4/17/2024 |
1.2.1 | 114,702 | 11/13/2023 |
1.2.0 | 81,202 | 8/11/2023 |
1.2.0-beta.1 | 5,638 | 5/23/2023 |
1.1.0 | 135,696 | 3/13/2023 |
1.0.0 | 572,090 | 4/12/2022 |
1.0.0-beta.2 | 4,710 | 3/10/2022 |
1.0.0-beta.1 | 30,349 | 1/14/2022 |