Где в Azure хранить физические файлы, к которым должна обращаться рабочая роль?
В моем случае я обычно храню эти конкретные файлы в папке App_Data моей веб-роли, но я не верю, что рабочие роли могут получить доступ к этой папке.
Где в Azure хранить физические файлы, к которым должна обращаться рабочая роль?
В моем случае я обычно храню эти конкретные файлы в папке App_Data моей веб-роли, но я не верю, что рабочие роли могут получить доступ к этой папке.
Если вы поместите свои файлы в хранилище Windows Azure (большие двоичные объекты хороши для хранения файлов), любой из ваших экземпляров ролей сможет получить к ним доступ, будь то веб-роли или рабочие роли. Кроме того, хранилище BLOB-объектов долговечно, что означает тройную репликацию в центре обработки данных (и георепликацию в другой центр обработки данных).
Что касается экземпляров рабочей роли, которые не могут получить доступ к папкам в экземпляре веб-роли (или других экземплярах рабочей роли), вы правы. На самом деле несколько экземпляров одной и той же роли не могут получить доступ к файловой системе друг друга (просто помните, что роль — это просто Windows 2012 Server, и каждый экземпляр этой роли работает на своей собственной виртуальной машине со своими локальными дисками).
ИЗМЕНИТЬ 5 ИЮЛЯ 2014 Г. Этот ответ немного устарел. Azure теперь предлагает файловую службу, предоставляющую общие ресурсы SMB, которые поддерживаются хранилищем BLOB-объектов. С этим, как правило, проще работать для устаревших приложений, которые должны использовать файловую систему и не могут быть изменены для прямого чтения или записи в большие двоичные объекты. Дополнительную информацию можно найти по адресу . здесь.
Поскольку данные не сохраняются в экземплярах, вам понадобится распределенное хранилище, где вы сможете хранить свои файлы (и другие данные). Это можно сделать с помощью хранилища BLOB-объектов Windows Azure (и это очень дешево по сравнению с хранением файлов в SQL Azure).
Хранилище Azure — хороший вариант. Вы также можете посмотреть на использование ресурсов локального хранилища:
http://msdn.microsoft.com/en-us/library/windowsazure/ee758708.aspx
Ресурс локального хранилища — это зарезервированный каталог в файловой системе виртуальной машины, в котором запущен экземпляр роли. Код, работающий в экземпляре, может выполнять запись в локальный ресурс хранилища, когда ему необходимо выполнить запись или чтение из файла. Например, локальный ресурс хранилища можно использовать для кэширования данных, к которым может потребоваться повторный доступ во время работы службы в Windows Azure.
Если данные, которые вы храните, являются конфиденциальными, убедитесь, что вы используете некоторую схему защиты своего BLOB-объекта. контейнер, а не просто хранить данные большого двоичного объекта в виде общедоступной ссылки, где их может просмотреть любой желающий. Лучше всего использовать SaS (Подпись общего доступа) для безопасного получить доступ к сохраненным данным больших двоичных объектов Azure. Если данные не конфиденциальны - это не требуется.
Дополнительные сведения см. в справочнике MSDN по защите больших двоичных объектов и контейнеров в Azure.