如何在 Azure Function 中定义 "external" StorageAccount?
How to define "external" StorageAccount in Azure Function?
所以我正在编写一个小的 Azure 函数来计算 StorageAccount Table 中唯一实体的总数。到目前为止一切正常,除了与存储 Table 的连接。在开发过程中,我使用了函数的 StorageAccount,它运行良好。但现在我需要连接到另一个 StorageAccount Table。
这是我目前得到的:
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Table;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Onkeliroh.Test
{
public static class TableStorageEntityCounter
{
[StorageAccount("fwetabletest")]
[FunctionName("TableStorageEntityCounter")]
public static async Task Run([TimerTrigger("0 */1 * * * *")] TimerInfo myTimer,
[Table("BlaBlub", Connection = "fwetabletest")]CloudTable cloudTable,
ILogger log)
{
var totalCount = await GetCountOfEntitiesInPartition(cloudTable);
log.LogInformation("Total Entity Count:" + totalCount.ToString());
}
public static async Task<int> GetCountOfEntitiesInPartition(CloudTable table)
{ \[...]
}
}
}
我位于同一个 ResourceGroup 中的 "external" StorageAccount。
我的问题是:如何告诉我的函数使用其他 StorageAccount? StorageAccount
装饰器——显然——没有工作。
您实际上应该在配置级别定义它并相应地创建客户端,您可以在 settings.json 文件中拥有连接字符串并以
访问它
private static readonly string BLOB_STORAGE_CONNECTION_STRING = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
TableAttribute
中的 Connection
参数告诉您绑定要从您的设置文件(本地)或应用程序设置(在 Azure 中)获取哪个存储连接字符串设置。
因此:[Table("BlaBlub", Connection = "fwetabletest")]
表示您告诉绑定连接字符串设置的名称是 fwetabletest。确保有一个名为 fwetabletest 的连接字符串设置指向 Function App Configuration 下的 'external' 存储帐户,你应该可以开始了。
所以我正在编写一个小的 Azure 函数来计算 StorageAccount Table 中唯一实体的总数。到目前为止一切正常,除了与存储 Table 的连接。在开发过程中,我使用了函数的 StorageAccount,它运行良好。但现在我需要连接到另一个 StorageAccount Table。
这是我目前得到的:
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Table;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Onkeliroh.Test
{
public static class TableStorageEntityCounter
{
[StorageAccount("fwetabletest")]
[FunctionName("TableStorageEntityCounter")]
public static async Task Run([TimerTrigger("0 */1 * * * *")] TimerInfo myTimer,
[Table("BlaBlub", Connection = "fwetabletest")]CloudTable cloudTable,
ILogger log)
{
var totalCount = await GetCountOfEntitiesInPartition(cloudTable);
log.LogInformation("Total Entity Count:" + totalCount.ToString());
}
public static async Task<int> GetCountOfEntitiesInPartition(CloudTable table)
{ \[...]
}
}
}
我位于同一个 ResourceGroup 中的 "external" StorageAccount。
我的问题是:如何告诉我的函数使用其他 StorageAccount? StorageAccount
装饰器——显然——没有工作。
您实际上应该在配置级别定义它并相应地创建客户端,您可以在 settings.json 文件中拥有连接字符串并以
访问它 private static readonly string BLOB_STORAGE_CONNECTION_STRING = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
TableAttribute
中的 Connection
参数告诉您绑定要从您的设置文件(本地)或应用程序设置(在 Azure 中)获取哪个存储连接字符串设置。
因此:[Table("BlaBlub", Connection = "fwetabletest")]
表示您告诉绑定连接字符串设置的名称是 fwetabletest。确保有一个名为 fwetabletest 的连接字符串设置指向 Function App Configuration 下的 'external' 存储帐户,你应该可以开始了。