Как определить «внешний» StorageAccount в Azure Function? - PullRequest
0 голосов
/ 31 октября 2019

Итак, я пишу небольшую функцию Azure для подсчета общего количества уникальных объектов в таблице StorageAccount. Пока все работает, кроме подключения к таблице хранения. Во время разработки я использовал StorageAccount функции, и он работал нормально. Но теперь мне нужно подключиться к другой таблице StorageAccount.

Это то, что я получил до сих пор:

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)
        { \\[...]
        }
    }
}

"Внешний" StorageAccount, который я расположен в той же ResourceGroup.

Мой вопрос: Как мне сказать мойфункция использовать другой StorageAccount? Декоратор StorageAccount - очевидно - не работает.

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Параметр Connection в TableAttribute сообщает вашей привязке, какую настройку строки подключения к хранилищу взять из файла настроек (локально) или настроек приложения (в Azure).

Итак, это: [Table("BlaBlub", Connection = "fwetabletest")] означает, что вы указываете привязке, имя параметра строки подключения - fwetabletest . Убедитесь, что параметр строки подключения с именем fwetabletest указывает на «внешнюю» учетную запись хранилища в разделе «Конфигурация приложения функции», и вы должны быть в порядке.

enter image description here

1 голос
/ 31 октября 2019

На самом деле вы должны определить его на уровне конфигурации и соответственно создать клиента, у вас может быть строка подключения в файле settings.json и доступ к ней как

   private static readonly string BLOB_STORAGE_CONNECTION_STRING = Environment.GetEnvironmentVariable("AzureWebJobsStorage");

SAMPLE CODE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...