如何在 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");

SAMPLE CODE

TableAttribute 中的 Connection 参数告诉您绑定要从您的设置文件(本地)或应用程序设置(在 Azure 中)获取哪个存储连接字符串设置。

因此:[Table("BlaBlub", Connection = "fwetabletest")] 表示您告诉绑定连接字符串设置的名称是 fwetabletest。确保有一个名为 fwetabletest 的连接字符串设置指向 Function App Configuration 下的 'external' 存储帐户,你应该可以开始了。