Управление данными в Azure Storage: Blobs, File Shares, Tables и Queues
Azure Storage объединяет четыре разных типа хранилищ (Blobs, File Shares, Tables, Queues), каждое подходит под свои сценарии: объекты и медиаданные — Blobs, смонтированные SMB-шары — File Shares, быстрые NoSQL-таблицы — Tables, и асинхронная передача сообщений — Queues. Для администраторов и разработчиков важно выбрать тип по требованиям к доступу, задержкам, консистентности и интеграции. В конце статьи — чек-листы, критерии приёмки и рекомендации по безопасности.
Быстрые ссылки
- Создать учетную запись хранения
- Создать контейнер (Blob)
- File Shares
- Tables
- Queues
- Управление через Storage Explorer (preview)
- Заключение
Введение
Azure предлагает несколько способов хранения данных. Учетная запись Storage — это контейнер верхнего уровня, в котором сосредоточены четыре основных сервиса: Blob (контейнеры), File Shares, Tables и Queues. Понимание различий помогает подобрать оптимальное решение по стоимости, производительности и доступности.
Кратко о назначении каждого сервиса:
- Blobs (контейнеры): неструктурированное объектное хранилище для больших файлов, бэкапов, логов, медиаконтента и cloud-native workload’ов. Поддерживает разные уровни доступа и lifecycle-политику.
- File Shares: традиционные SMB-шары для совместного доступа к файловой системе (SMB 3.0), удобны для lift-and-shift сценариев и совместимости с приложениями, ожидающими файловую систему.
- Tables: NoSQL key-value хранилище для быстрых операций с табличными данными и простых схем данных.
- Queues: асинхронные очереди сообщений для декуплинга компонентов приложения и буферизации задач.
Важно: одна учетная запись хранения может содержать все четыре типа, что упрощает управление доступом, биллингом и резервным копированием.
Создание учетной записи хранения
Перед созданием контейнеров, таблиц или очередей нужно завести учетную запись Storage.
- В портале Azure перейдите в «Storage accounts» и нажмите «Добавить» (Add) для запуска мастера создания.

- Укажите имя, регион, уровень производительности и параметры репликации в соответствии с требованиями (в статье использованы значения по умолчанию, за исключением имени и региона).

- Нажмите «Review + Create», затем «Create».

- Перейдите в созданную учетную запись хранения: вы увидите разделы для Blobs, File Shares, Tables и Queues.

Контейнеры (Blob Storage)
Blob-хранилище — основной выбор для больших файлов и объектов: образов виртуальных машин, медиафайлов, статических веб-ресурсов, бэкапов.
- В разделе Overview нажмите «Containers» и затем плюсик рядом с «Container».
- Выберите имя контейнера и уровни доступа, нажмите «Create».

После создания вы получите интерфейс для загрузки объектов, управления политиками доступа и просмотра свойств.

Внешняя загрузка в Blob (azcopy + SAS)
Часто файлы загружают извне — локальных машин или CI/CD билд-агентов. Самый распространённый инструмент — azcopy, использующий SAS (Shared Access Signature).
Примерный процесс:
- Создать SAS для Blob service через портал или CLI.

- Скопировать URL SAS для blob/service.

- Использовать azcopy для копирования каталога рекурсивно:
azcopy copy 'C:\Files' {Container SAS URL} --recursiveСоветы и варианты:
- Используйте краткоживущие SAS с минимально необходимыми правами (upload/list) и фиксированным сроком жизни.
- Для автоматизации в CI/CD храните SAS в защищённых секретах или используйте Managed Identity + роль для избежания SAS.
File Shares (SMB)
Azure File Shares предоставляет SMB 3.0 шары, которые можно монтировать на Windows, Linux (cIFS/SMB клиент) и macOS (с ограничениями). Это удобно, когда приложение ожидает файловую систему.
Примечание: SMB 3.0 появился в Windows 8 / Windows Server 2012 — современные Windows-клиенты поддерживают требуемый протокол.
- Перейдите в «File Shares» и нажмите плюсик рядом с «File Share».

- Задайте имя и tier (производительность), затем создайте.

- После создания появится стандартный интерфейс управления файлами: загрузка, создание папок, просмотр статистики.

Подключение извне (PowerShell / монтирование)
Для монтирования на Windows часто используется автоматически сгенерированный скрипт PowerShell. Для работы требуется доступ на порт 445 (SMB).

Пример монтирования на Windows (из портала будет готовый пример):
net use Z: "\\.file.core.windows.net\" /u:Azure\ Советы:
- Откройте порт 445 во фаерволах и на маршрутизаторе (если соединяетесь напрямую).
- Используйте Azure File Sync для гибридных сценариев (локальный кэш + облако).
Tables (NoSQL)
Tables — простой высокопроизводительный ключ-значение хранилище, удобное для схем с динамическими свойствами и быстрым доступом.
- В разделе Overview выберите «Tables» и нажмите плюс.

- Укажите имя таблицы и подтвердите.

Внешнее подключение (PowerShell с Az + AzTable)
Для работы с таблицами из PowerShell используют модули Az и AzTable. Пример:
# Install Az Module
Install-Module -Name 'Az'
# Install AzTable Module
Install-Module -Name 'AzTable'
# Import modules
Import-Module -Name 'Az'
Import-Module -Name 'AzTable'
# Connect to Azure AD
Connect-AzAccount
# Get storage account
$storageAccount = Get-AzStorageAccount -Name 'myStorageaccount' -ResourceGroupName 'myRG'
# Get table
$table = Get-AzStorageTable --Name 'myTestTable' --Context $storageAccount.Context
# Add a row
$Params = @{
"Table" = $Table.CloudTable
"PartitionKey" = 'Partition1'
"RowKey" = 'Key1'
"Property" = @{
"FirstProperty" = 'Test Value 1'
"SecondProperty" = 'Test Value 2'
}
}
Add-AzTableRow @ParamsПрактические подсказки:
- Планируйте PartitionKey и RowKey для равномерного распределения нагрузки и быстрого поиска.
- Для сложных запросов и транзакций рассмотрите Azure Cosmos DB.
Queues
Queues в Azure Storage — это простая и надёжная очередь сообщений для буферизации задач между компонентами. Подходит для сценариев «producer–consumer» с простыми сообщениями (до ограничений размера).
- В разделе Overview нажмите «Queues», затем «+».

- Укажите имя очереди и создайте её.

Подключение извне (PowerShell + .NET)
PowerShell-командлетов поверх Az для очередей меньше; часто используют .NET-классы или SDK. Пример с использованием классов .NET через PowerShell:
# Install the Az Module
Install-Module -Name 'Az'
# Import the Az Module
Import-Module -Name 'Az'
# Connect to Azure AD
Connect-AzAccount
# Connect to storage account
$storageAccount = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myRG'
# Get queue
$queue = Get-AzStorageQueue --Name 'myQueue' --Context $storageAccount.Context
# Create a new message
$queueMessage = [Microsoft.Azure.Storage.Queue.CloudQueueMessage]::New("Test Message")
# Add the message
$queue.CloudQueue.AddMessageAsync($QueueMessage)Замечания:
- Для обработки больших нагрузок рассмотрите использование Service Bus (если нужны сложные сценарии доставки, транзакции, FIFO и т.д.).
- Для простых задач Storage Queues обычно достаточно.
Управление через Storage Explorer (preview)
Storage Explorer предоставляет единый интерфейс для всех четырёх сервисов и ускоряет администрирование.
Опции, доступные в Storage Explorer:
- Blobs: Upload, Download, Create Folders, Folder Statistics
- File Shares: Upload, Download, Create Folders, Directory Statistics, Connect VM
- Queues: View Message, Add Message, Dequeue Message, Clear Queue
- Tables: Query, Add, Edit, Table Statistics

Storage Explorer удобен для быстрых правок, едафильтрации и импорта/экспорта данных.
Когда использовать каждый сервис — практическое руководство
- Blobs: статические сайты, CDN-статические активы, медиаконтент, бэкапы, большие объекты — используйте, когда данные являются объектами и доступны по HTTP(S).
- File Shares: совместный доступ к файловой системе, приложения которые ожидают SMB, поднятие lift-and-shift приложений — используйте SMB 3.0 при необходимости POSIX/NTFS-принимаемости.
- Tables: журнал событий, телеметрия, метаданные — когда схема может меняться и нужны быстрые запросы по ключу.
- Queues: фоновые задачи, заказ на обработку, интеграция микросервисов — используйте для декуплинга компонентов.
Контрпримеры — когда не стоит использовать:
- Не используйте Tables для сложных реляционных запросов и транзакций — для этого SQL или Cosmos DB лучше.
- Не используйте File Shares для интернета-ориентированных сервисов с низкими задержками по доступу — лучше Blob или CDN.
- Не используйте Storage Queues, если вам нужны гарантии FIFO, маршрутизация, транзакции — рассмотрите Service Bus.
Модель принятия решения (Mermaid)
Ниже — простая логика выбора сервиса (Mermaid диаграмма):
flowchart TD
A[Начало: какие данные?] --> B{Файлы или объекты?}
B -- Объекты/медиа --> C[Blobs]
B -- Файловая система --> D[File Shares]
A --> E{Сообщения или записи?}
E -- Сообщения --> F[Queues]
E -- Ключ-значение/таблица --> G[Tables]
C --> H[CDN/Static site]
D --> I[SMB mount / Lift-and-shift]
F --> J[Background processing]
G --> K[Telemetry / metadata]Ролевые чек-листы
Администратор (Ops):
- Проверить настройки репликации (LRS/GRS/ZRS).
- Настроить firewall/Private endpoint для критичных хранилищ.
- Настроить тревоги/логирование и бэкапы.
Разработчик:
- Выбрать SDK (Azure SDKs) для работы с нужным сервисом.
- Проектировать ключи (PartitionKey/RowKey) для Tables.
- Минимизировать права SAS и срок их жизни.
Инженер безопасности:
- Включить серверное шифрование (по умолчанию включено).
- Использовать RBAC и Managed Identities вместо ключей там, где возможно.
- Ограничивать доступ через Private Endpoints/Service Endpoints.
Критерии приёмки
Для каждого типа хранения определите критерии до запуска в продакшен:
- Blobs: скорость загрузки/скачивания, корректность ACL/SAS, проверка lifecycle-правил.
- File Shares: успешное монтирование на целевых ОС, пропускная способность, корректность прав доступа NTFS.
- Tables: время отклика на ключевой запрос < допустимого SLA (по внутренним требованиям), корректность схемы данных.
- Queues: время видимости сообщений, успешная обработка и удаление сообщений без дублирования.
Безопасность и конфиденциальность
Ключевые рекомендации:
- SAS с минимальными правами и коротким сроком жизни.
- Использовать Managed Identity для приложений и назначать роли (Storage Blob Data Contributor и т.д.).
- Private Endpoints и виртуальные сети для ограничения экспонирования в интернет.
- Логирование доступа и аудит с помощью Azure Monitor и Diagnostics.
- Шифрование данных на стороне сервера (SSE) и при необходимости — клиентское шифрование.
Примечание по GDPR/конфиденциальности: храните персональные данные в регионе, соответствующем требованиям законодательства вашей организации. Используйте шифрование и управление ключами (Azure Key Vault) для защиты критичных данных.
Миграция и совместимость
- Для переносов больших объёмов используйте AzCopy или AzCopy в параллельном режиме.
- Для lift-and-shift файловых серверов рассмотрите Azure File Sync: кэширование на локальных серверах и хранение в Azure.
- При миграции таблиц учитывайте изменение ключевых полей и миграцию PartitionKey/RowKey для распределения нагрузки.
Советы по тестированию и приёмке
Тест-кейсы:
- Загрузить набор файлов (разных размеров) в Blob; проверить целостность и скорость.
- Смонтировать File Share на целевых ОС и провести операцию массового чтения/записи.
- Записать и прочитать строки в Table с разными PartitionKey для проверки латентности.
- Отправить и получить сообщения из Queue под нагрузкой, проверить обработку и повторные попытки.
Критерии приёмки должны включать проверку отказоустойчивости и восстановления после сетевых разрывов.
Заключение
Azure Storage — мощный и гибкий набор сервисов для самых разных сценариев хранения и обмена данными. Правильный выбор между Blobs, File Shares, Tables и Queues зависит от требований к доступу, консистентности,latency и интеграции с существующей инфраструктурой. Используйте Storage Explorer для быстрого администрирования, azcopy и PowerShell для автоматизации, а в критичных по безопасности сценариях — Private Endpoints и Managed Identities.
Важно
- Всегда минимизируйте привилегии SAS и проверяйте время жизни ключей.
- Тестируйте сценарии под реальной нагрузкой до продакшен-развертывания.
Часто задаваемые вопросы
Вопрос: Когда лучше использовать Azure Table, а когда Cosmos DB?
Azure Table подходит для простых NoSQL-сценариев с ключ-значение доступом и низкой ценой. Cosmos DB нужен, если требуются сложные запросы, низкая задержка на глобальном масштабе, транзакции и гибкие модели консистентности.
Вопрос: Что выбрать для гарантированной упорядоченности сообщений?
Storage Queues не гарантируют строгой FIFO. Для упорядоченной доставки и более сложных сценариев лучше использовать Azure Service Bus (Queues/Topics) с поддержкой сессий и транзакций.
Вопрос: Как сократить риск утечки с помощью SAS?
Используйте короткие сроки действия SAS, ограничение IP, минимальные права и храните генерацию SAS в защищённых системах (Key Vault / Azure Functions с Managed Identity).
Спасибо за внимание. В приложении — чек-листы и шаблоны команд для быстрого старта.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить