Використання емулятора зберігання azure для розробки і тестування, microsoft docs

В цій статті

Емулятор служби сховища Microsoft Azure надає собою локальну середу, емулює служби BLOB-об'єктів, черг і таблиць для цілей розробки. Використовуючи емулятор зберігання, можна локально протестувати додаток зі службами сховища без створення підписки Azure, уникнувши витрат. Якщо додаток в емуляторі працює правильно, ви можете використовувати обліковий запис зберігання Azure в хмарі.

Отримання емулятора зберігання

Емулятор зберігання входить в пакет SDK для Microsoft Azure. Його також можна встановити за допомогою автономного установника (викачуваного безпосередньо). Щоб встановити емулятор зберігання, потрібно володіти правами адміністратора на комп'ютері.

В даний час емулятор сховища працює тільки в Windows. Ті, хто розглядає можливість використовувати емулятор зберігання для Linux, можуть скористатися емулятором зберігання з відкритим кодом Azurite. підтримуваним спільнотою.

Дані, створені в одній версії емулятора зберігання, можуть бути недоступні при використанні іншої версії. Якщо потрібно зберегти дані на тривалий термін, рекомендується зберігати їх в обліковому записі зберігання Azure, а не в емуляторі зберігання.

Емулятор зберігання залежить від певних версій бібліотек OData. Заміна бібліотек DLL OData, використовуваних емулятором зберігання, що не підтримується іншими версіями і може привести до непередбаченого поведінки. Проте для відправки запитів до емулятора може використовуватися будь-яка версія OData, підтримувана службою сховища.

Принцип роботи емулятора зберігання

Емулятор зберігання підключається до SQL Server або LocalDB з використанням аутентифікації Windows.

Між емулятором зберігання і службою сховища Azure є кілька відмінностей. Додаткові відомості про ці відмінності см. В розділі Відмінності між емулятором зберігання і службами сховища Azure нижче.

Запуск і ініціалізація емулятора зберігання

Щоб запустити емулятор зберігання Azure, зробіть наступне:

  1. Натисніть кнопку Пуск або клавішу Windows.
  2. Почніть вводити текст Azure Storage Emulator.
  3. Виберіть емулятор в списку відображених додатків.

При запуску емулятора зберігання відображається вікно командного рядка. Ви можете використовувати це вікно консолі для запуску і зупинки емулятора зберігання, очищення даних, отримання стану і ініціалізації емулятора. Додаткові відомості див. Нижче в розділі Довідник по програмі командного рядка емулятора зберігання.

При запуску емулятора в області повідомлень панелі завдань Windows з'явиться відповідний значок.

При закритті вікна командного рядка емулятора зберігання емулятор продовжить роботу. Щоб знову викликати вікно консолі, повторіть наведені вище дії, як якщо б знову запускали емулятор зберігання.

При першому запуску емулятора зберігання инициализируется локальному середовищі зберігання. В процесі ініціалізації створюється база даних в LocalDB і резервуються порти HTTP для кожної локальної служби сховища.

Емулятор зберігання за умовчанням встановлюється в C: \ Program Files (x86) \ Microsoft SDKs \ Azure \ Storage Emulator.

Для роботи з локальними ресурсами емулятора можна використовувати оглядач сховищ Microsoft Azure. Після установки і запуску емулятора зберігання знайдіть пункт "(Розробка)" в розділі "Облікові записи зберігання" дерева ресурсів оглядача сховищ.

Ініціалізація емулятора зберігання для використання іншої бази даних SQL

Ви можете використовувати програму командного рядка емулятора зберігання, щоб ініціалізувати емулятор зберігання для вказівки примірника бази даних SQL, відмінного від екземпляра LocalDB за замовчуванням.

У вікні консолі введіть наступну команду, де - ім'я екземпляра SQL Server. Щоб використовувати LocalDB, вкажіть (localdb) \ MSSQLLocalDb як примірника SQL Server.

AzureStorageEmulator.exe init / server

Можна використовувати наступну команду, яка вказує емулятора використовувати екземпляр SQL Server за замовчуванням:

AzureStorageEmulator.exe init / server. \\

Крім цього, ви можете також використовувати наступну команду, яка повторно ініціалізує базу даних до примірника LocalDB за замовчуванням.

AzureStorageEmulator.exe init / forceCreate

Для управління екземплярами SQL Server, включаючи установку LocalDB, можна використовувати Microsoft SQL Server Management Studio (SSMS). У діалоговому вікні Підключення до сервера SMSS вкажіть (localdb) \ MSSQLLocalDb в поле Ім'я сервера :. щоб підключитися до примірника LocalDB.

Перевірка справжності запитів на емулятор зберігання

Перевірка справжності з використанням облікових даних загального ключа

Ключ аутентифікації, підтримуваний емулятором зберігання, призначений тільки для тестування роботи клієнтського коду. Його використання не гарантує захист. Не можна використовувати робочу обліковий запис зберігання і ключ для емулятора зберігання. Не слід використовувати обліковий запис для розробки з робочими даними.

Емулятор зберігання підтримує підключення тільки по протоколу HTTP. Проте для доступу до ресурсів в корпоративний обліковий запис зберігання Azure рекомендується використовувати протокол HTTPS.

Підключення до облікового запису емулятора за допомогою ярлика

Найпростіший спосіб підключитися до емулятора зберігання з програми - налаштувати рядок підключення у файлі конфігурації програми, на яке посилається ярлик: UseDevelopmentStorage = true. Нижче наведено приклад рядка підключення до емулятора зберігання в файлі app.config.

Підключення до облікового запису емулятора за допомогою відомого імені та ключа облікового запису

Для створення рядка підключення, яка містить посилання на ім'я облікового запису та ключ емулятора, в рядку підключення слід вказати кінцеві точки для кожної служби, яку потрібно використовувати з емулятора. Це необхідно, щоб рядок підключення містила посилання на кінцеві точки емулятора, які відрізняються від кінцевих точок корпоративний обліковий запис зберігання. Наприклад, значення рядка підключення буде виглядати наступним чином:

Це значення ідентично показаному вище ярлику (UseDevelopmentStorage = true).

Вказівка ​​проксі-сервера HTTP

Якщо ви тестируете службу на емуляторі зберігання, можна також вказати проксі-сервер HTTP. Це може бути корисно для відстеження HTTP-запитів і відповідей при налагодженні операцій зі службами сховища. Щоб вказати проксі-сервер, додайте параметр DevelopmentStorageProxyUri в рядок підключення і надайте йому значення URI проксі-сервера. Як приклад наведена рядок підключення, яка вказує емулятор зберігання і задає проксі-сервер HTTP:

Крім того, для цього можна використовувати Azure PowerShell. Наступний приклад створює токен SAS з повними правами на контейнер BLOB-об'єктів:

  1. Встановіть Azure PowerShell, якщо це ще не зроблено (рекомендується використовувати останню версію командлетів Azure PowerShell). Докладніші інструкції див. У статті Установка і настройка Azure PowerShell.
  2. Відкрийте Azure PowerShell і виконайте команди, замінивши ACCOUNT_NAME і ACCOUNT_KEY == своїми обліковими даними, а CONTAINER_NAME - ім'ям на свій вибір.

Звернення до ресурсів в емуляторі зберігання

При зверненні до ресурсу в обліковому записі зберігання Azure використовуйте наведену нижче схему. Ім'я облікового запису є частиною імені вузла в універсальному коді ресурсу (URI), а ресурс, до якого виконується звернення, - частина шляху в універсальному коді ресурсу (URI).

Однак в емуляторі зберігання ім'я облікового запису є частиною шляху URI, а не ім'ям вузла, так як локальний комп'ютер не забезпечує дозвіл доменних імен. Використовуйте для ресурсу в емуляторі зберігання наступний формат URI:

Нижче перераховані кінцеві точки служби для емулятора зберігання:

Звернення до вторинного розташуванню облікового запису за допомогою RA-GRS

Для програмного доступу до вторинного розташуванню за допомогою емулятора зберігання використовуйте клієнтську бібліотеку сховища для .NET 3.2 або більш пізньої версії. Додаткові відомості див. У розділі Клієнтська бібліотека сховища Microsoft Azure для .NET.

Довідник за програмою командного рядка емулятора зберігання

Починаючи з версії 3.0, при запуску емулятора зберігання відображається вікно консолі. Використовуйте командний рядок у вікні консолі для запуску і зупинки роботи емулятора, а також для запиту стану і виконання інших операцій.

Якщо у вас вже встановлений емулятор обчислень Microsoft Azure, то при запуску емулятора зберігання в області сповіщень з'явиться відповідний значок. Клацніть цей значок правою кнопкою миші, щоб викликати меню, яке дозволяє запустити і зупинити роботу емулятора зберігання графічним шляхом.

Синтаксис командного рядка

AzureStorageEmulator.exe [start] [stop] [status] [clear] [init] [help]

AzureStorageEmulator.exe clear [blob] [table] [queue] [all]

blob. видаляє дані про великих двійкових об'єктах.
queue. видаляє дані про черги.
table. видаляє дані про таблиці.
all. видаляє всі дані у всіх службах.

Виконує одноразову ініціалізацію для настройки емулятора.

AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate # 124; -skipcreate] [-reserveports # 124; -unreserveports] [-inprocess]

-server serverName \ instanceName. вказує сервер для розміщення примірника SQL.
-sqlinstance імя_екземпляра. вказує ім'я екземпляра SQL, що використовується на сервері за замовчуванням.
-forcecreate. примусово створює базу даних SQL, навіть якщо вона вже існує.
-skipcreate. пропускає створення бази даних SQL. Має пріоритет над -forcecreate.
-reserveports. намагається зарезервувати порти HTTP, пов'язані зі службами.
-unreserveports. намагається скасувати резервування портів HTTP, пов'язаних зі службами. Має пріоритет над -reserveports.
-inprocess. виконує ініціалізацію в поточному процесі замість породження нового процесу. При зміні резервирований портів потрібно запустити поточний процес з підвищеними привілеями.

Відмінності між емулятором зберігання і службою сховища Azure

Емулятор зберігання являє собою емулюватися середу, виконувану в локальному екземплярі SQL. Тому між емулятором і обліковим записом зберігання Azure в хмарі існують функціональні відмінності.

Відмінності для сховища великих двійкових об'єктів

Сховище великих двійкових об'єктів в емуляторі відрізняється наступним чином:

Відмінності для сховища таблиць

Сховище таблиць в емуляторі відрізняється наступним чином:

Відмінності для сховища черг

Сховище черг в емуляторі не має відмінностей.

Зауваження до випуску емулятора зберігання

версія 5.2

версія 5.1

  • Виправлена ​​помилка, коли емулятор зберігання повертав заголовок DataServiceVersion в деяких відповідях, а служба не повертала.

версія 5.0

  • Установник емулятора зберігання більше не перевіряє наявність існуючих установок MSSQL і .NET Framework.
  • Установник емулятора зберігання більше не створює базу даних в ході установки. При необхідності база даних буде як і раніше створюватися в процесі запуску.
  • Для створення бази даних більше не потрібні підвищені права.
  • Для запуску більше не потрібні резервування портів.
  • Додані наступні параметри для init. -reserveports (потрібні підвищені права), -unreserveports (потрібні підвищені права), -skipcreate.
  • Параметр призначеного для користувача інтерфейс емулятора зберігання на значку в панелі завдань тепер запускає інтерфейс командного рядка. Старий графічний інтерфейс користувача більше недоступний.
  • Деякі бібліотеки DLL були видалені або перейменовані.

версія 4.6

версія 4.5

  • Виправлена ​​помилка, яка викликала збій при ініціалізації та встановлення емулятора зберігання в разі перейменування резервної бази даних.

версія 4.4

версія 4.3

версія 4.2

версія 4.1

версія 4.0

  • Виконуваний файл емулятора зберігання був перейменований на AzureStorageEmulator.exe.

версія 3.2

версія 3.1

  • Тепер геоізбиточное сховище з доступом для читання (RA-GRS) підтримується і в емуляторі зберігання. Інтерфейси API отримання статистики служби BLOB-об'єктів, отримання статистики служби черг і отримання статистики служби таблиць підтримуються у вторинному розташуванні облікового запису і завжди будуть повертати значення елемента відповіді LastSyncTime у вигляді поточного часу відповідно до основною базою даних SQL. Для програмного доступу до вторинного розташуванню за допомогою емулятора зберігання використовуйте клієнтську бібліотеку сховища для .NET 3.2 або більш пізньої версії. Детальніше див. У довіднику по клієнтської бібліотеці сховища Microsoft Azure для .NET.

версія 3.0

Подальші дії