Ответ 1
Вы можете повторно использовать CloudStorageAccount и CloudBlobClient, так как они не имеют состояния (см. ответ Стива Маркса в ссылке Саймона). SDK является открытым исходным кодом, и вы можете просто посмотреть источник на GitHub.
Если вы посмотрите на класс CloudStorageAccount, вы увидите, что его основная цель - убедиться, что вы закончили с StorageCredentials с помощью Blob/Queue и TableEndpoint. Если посмотреть на конструктор CloudBlobClient, вы увидите, что он хранит учетные данные хранилища, конечную точку Uri и некоторые значения по умолчанию.
Здесь нет ничего сложного, и нет никакого сетевого ввода-вывода, означающего, что обработка очень дешевая. Но когда вы думаете о производительности, каждая небольшая оптимизация может помочь, поэтому вы можете спокойно хранить ее в статической переменной (это может повлиять на тестирование устройства), или если вы используете контейнер IoC, вы можете выбрать один экземпляр для всего контейнера.
Теперь вам нужно что-то учитывать. Оба CloudStorageAccount и CloudBlobClient будут сохранять учетные данные и конечную точку Uri. Но что, если вы измените эту информацию через портал (возможно, вы изменили ключ учетной записи хранилища)? Если вы храните один экземпляр CloudStorageAccount/CloudBlobClient, вам может потребоваться обработать событие RoleEnvironment.Changing, чтобы обновить эти объекты с помощью нового хранилища информация о счете.