Статьи

Начало работы с Windows Azure SDK для PHP

Платформа Windows Azure — это гибкая платформа облачных вычислений, которая позволяет вам сосредоточиться на решении бизнес-задач и удовлетворении потребностей клиентов. Это группа облачных технологий, каждая из которых предоставляет определенный набор услуг для разработчиков приложений. Основными компонентами платформы Windows Azure являются следующие:

  • Windows Azure фокусируется на предоставлении вычислительных мощностей в виде веб-и рабочих ролей, а также хранилища в виде хранилища больших двоичных объектов, хранилища таблиц и службы очередей.
  • SQL Azure — это облачная реляционная база данных, очень похожая на SQL Server.
  • Windows Azure AppFabric ориентирована на интеграцию программного обеспечения, размещенного в разных местах, без ущерба для безопасности.

Каждый компонент может использоваться в приложении PHP: Windows Azure SDK для PHP предоставляет модель программирования для Windows Azure, драйвер SQL Server для PHP позволяет работать с SQL Server и SQL Azure, а Windows Azure AppFabric SDK предоставляет PHP. API для работы с Windows Azure AppFabric.

Компоненты платформы Windows Azure не связаны друг с другом: вы можете выбрать компоненты, которые будут полезны для вашего конкретного приложения и ситуации, как для приложений, размещенных в помещении, так и в Windows Azure. Например, хранилище больших двоичных объектов — служба хранения, обеспечивающая масштабное масштабируемое хранилище в Windows Azure — может использоваться как из приложения, размещенного в Windows Azure, так и из приложения, размещенного на текущем веб-сервере.

 

Разработка для Windows Azure

Для развертывания приложения и использования служб Windows Azure вам потребуется учетная запись (см. Руководство «Начало работы»). В целях разработки приложение может быть разработано на любой платформе с использованием любой IDE. Однако вам всегда придется работать с производственным хранилищем Windows Azure, если вы не работаете на платформе Windows. При работе с Windows на вашем компьютере можно установить локальную облачную среду разработки и среду хранения. Windows Azure SDK предоставляет хранилище для разработки Windows Azure и дополнительные функции, облегчающие создание и тестирование приложений. Для SDK требуется версия Windows 7, Windows Vista с пакетом обновления 1 или более поздней версии или Windows Server 2008 с установленной версией SQL Server Express или SQL Server.

Загрузку для Windows Azure SDK можно найти по адресу http://msdn.microsoft.com/en-us/windowsazure/cc974146.aspx .

После установки службу хранилища для разработки можно запустить с помощью кнопки « Пуск» , « Все программы» , Windows Azure SDK , « Хранилище для разработки» .

Инструменты и SDK

Помимо Windows Azure SDK и Windows Azure SDK для PHP, описанных далее в этом документе, существует ряд других SDK для работы с Windows Azure из PHP.

Доступны следующие инструменты:

Рисунок 1: Инструменты и SDK для работы с Windows Azure из PHP

Следующая таблица представляет собой обзор доступных инструментов и SDK:

Инструмент / SDK

Описание

Windows Azure SDK

Предоставляет среду разработки и хранилище: смоделированная локальная облачная среда для целей разработки.

Windows Azure SDK для PHP

Предоставляет API для работы с хранилищем Windows Azure и хранилищем для разработки, а также для диагностики.

Инструменты командной строки Windows Azure для PHP

Инструмент для упаковки приложения для развертывания в Windows Azure или среде разработки.

Инструменты Windows Azure для Eclipse

Плагин Eclipse, обеспечивающий интегрированную работу с Windows Azure, хранилищем, развертыванием приложений и т. Д.

Драйвер SQL Server для PHP

Обеспечивает связь с SQL Server и SQL Azure из PHP.

Azure AppFabric SDK для PHP

Предоставляет API для работы с AppFabric для контроля доступа и сервисной шины из PHP.

Windows Azure Companion для PHP

Инструмент, обеспечивающий простую установку популярных программ PHP на Windows Azure, таких как WordPress, Drupal, phpBB и других.

 

Windows Azure SDK для PHP

Windows Azure SDK для PHP направлена ​​на предоставление средств взаимодействия с несколькими компонентами Windows Azure:

  • Хранилище больших двоичных объектов — это большой жесткий диск в облаке. Хранилище BLOB-объектов может содержать несколько файлов или «блобов», расположенных в разных контейнерах. Контейнер хранения — это логическая группа файлов, аналогичная логическому диску или точке монтирования на обычном компьютере.
  • Хранилище таблиц — это относительно простое, но очень масштабируемое хранилище структурированных данных. Таблица может содержать разные объекты, идентифицируемые ключом раздела и ключом строки. Каждая сущность в таблице может иметь разные свойства.
  • Служба очереди обеспечивает надежный, постоянный обмен сообщениями внутри и между службами.
  • Диагностика и ведение журналов , предоставление диагностической информации для приложений, работающих в Windows Azure.

Все службы хранения доступны через API REST и могут быть доступны из службы, работающей в Windows Azure, или напрямую через Интернет из любого приложения, которое может отправить запрос HTTP / HTTPS и получить ответ HTTP / HTTPS. Windows Azure SDK предоставляет абстракцию этих операций REST в форме простой в использовании библиотеки классов PHP.

Рисунок 2: Windows Azure SDK для сценариев развертывания PHP

Структура учетной записи Windows Azure

Учетная запись хранилища Windows Azure имеет следующую структуру: каждая учетная запись включает в себя хранилище больших двоичных объектов, хранилище таблиц и службу очередей с конкретными конечными точками HTTP (S):

Эти конечные точки относятся к рабочей среде Windows Azure. В целях разработки мы предлагаем установить Windows Azure SDK (Windows Azure SDK обеспечивает моделирование разработки как для размещенных служб Windows Azure, так и для служб хранения и может быть загружен с http://www.azure.com .). Он предоставляет локальную версию Windows Azure и предоставляет вам доступ к локальной моделируемой среде хранения. Конечные точки для этой среды следующие:

Доступ к конечным точкам хранения предоставляется на основе выбранного вами ключа учетной записи и сгенерированного ключа учетной записи. Для среды хранения разработки по умолчанию используется следующая учетная запись:

Имя учетной записи: devstoreaccount1
Ключ учетной записи: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq / K1SZFPTOtr / KBHBeksoGMGw ==

http: // <account> .blob.core.windows.net / <container> / <blob>

http: // <account> .queue.core.windows.net / <queue>

http: // <account> .table.core.windows.net / <table>

Рисунок 3: Учетная запись хранения Windows Azure

 

Windows Azure SDK для основных классов PHP

После загрузки Windows Azure SDK для PHP все операции с учетными записями хранения выполняются с помощью классов Microsoft_WindowsAzure_Storage_ *, в которых доступно следующее:

  • Microsoft_WindowsAzure_Storage_Blob
  • Microsoft_WindowsAzure_Storage_Table
  • Microsoft_WindowsAzure_Storage_Queue
  • Microsoft_WindowsAzure_Diagnostics_Manager

Эти классы следует создавать либо без каких-либо параметров, которые будут подключаться к службе хранения разработки, либо с определенной конечной точкой, именем учетной записи и ключом учетной записи. Последний случай продемонстрирован в примере кода ниже:

/** Microsoft_WindowsAzure_Storage_Blob */

require_once 'Microsoft/WindowsAzure/Storage/Blob.php';

$storageClient = new Microsoft_WindowsAzure_Storage_Blob(

'blob.core.windows.net',

'mysampleaccount',
'0uSRZ6IFsuFq2UVEEby8vdPLlmEtlCDXJ1OUzFT5rCz4I6tq/K1SM02xNOcqFlqUoGMGw=='

);

 

Примеры использования

Доступ к службам BLOB-объектов, таблиц и очередей, предоставляемых в Windows Azure, можно получить с помощью Windows Azure SDK для PHP. Ниже приведены некоторые примеры использования одного или нескольких из этих сервисов для ваших приложений PHP в сочетании с Windows Azure SDK для PHP.

  • Выгрузка статического контента в хранилище BLOB-объектов и сеть доставки контента (CDN), по выбору, с настраиваемым доменным именем
  • Защита загрузок с использованием хранилища BLOB-объектов и сигнатур общего доступа
  • Снижение рисков безопасности путем загрузки пользовательского контента в хранилище BLOB-объектов вместо веб-сервера.
  • Управление версиями файлов с использованием снимков BLOB-объектов
  • Расположение резервной копии в хранилище BLOB-объектов
  • Использование табличного хранилища в качестве нереляционной базы данных
  • Хранение данных объекта в табличном хранилище
  • Связь между приложениями и компонентами приложения через службу очередей
  • Гарантированная доставка сообщений с использованием сервиса очереди
  • Настройка и мониторинг диагностических данных для развертывания Windows Azure с помощью API диагностики
  • Удаленное управление диагностикой Windows Azure

Работа с хранилищем BLOB-объектов

Blob Storage хранит наборы двоичных данных. Хранилище больших двоичных объектов предлагает следующие три ресурса: учетную запись хранения, контейнеры и большие двоичные объекты. В пределах вашей учетной записи хранения контейнеры предоставляют способ организации наборов больших двоичных объектов в вашей учетной записи хранения.

Хранилище больших двоичных объектов предлагается Windows Azure как API REST, который упакован в Windows Azure SDK для PHP, чтобы обеспечить собственный интерфейс PHP для учетной записи хранения.

Функции хранения BLOB-объектов

Хранилище BLOB-объектов Windows Azure и Windows Azure SDK для PHP предоставляют следующие функции:

  • Список контейнеров — список всех контейнеров в данной учетной записи хранения.
  • Создать контейнер — Создает новый контейнер в данной учетной записи хранения.
  • Получить свойства контейнера — возвращает все свойства и метаданные контейнера.
  • Получить метаданные контейнера — возвращает только определенные пользователем метаданные для указанного контейнера.
  • Установить метаданные контейнера — устанавливает заголовки метаданных контейнера.
  • Получить контейнер ACL — получает список контроля доступа (ACL) и любые политики доступа на уровне контейнера для контейнера.
  • Set ACL контейнера — устанавливает ACL и любые политики доступа на уровне контейнера для контейнера.
  • Удалить контейнер. Удаляет контейнер и все содержащиеся в нем большие двоичные объекты.
  • Список BLOB-объектов — список всех BLOB-объектов в данном контейнере.
  • Поместить BLOB-объект — Создает новый BLOB-объект или заменяет существующий BLOB-объект в контейнере.
  • Получить Blob — читает или загружает большой двоичный объект из системы, включая его метаданные и свойства.
  • Получить свойства BLOB-объектов — возвращает все свойства и метаданные объекта BLOB-объекта.
  • Set Blob Properties — Устанавливает системные свойства, определенные для BLOB-объекта.
  • Получить метаданные BLOB-объектов — Извлекает заголовки метаданных из BLOB-объекта.
  • Установить метаданные BLOB-объектов — Устанавливает заголовки метаданных для BLOB-объектов.
  • Удалить BLOB-объект — Удаляет BLOB-объект.
  • Lease Blob — Устанавливает эксклюзивную блокировку записи для блоба в течение одной минуты. Для записи в заблокированный большой двоичный объект клиент должен предоставить идентификатор аренды.
  • Snapshot Blob — Создает снимок блоба.
  • Копировать BLOB-объект — копирует исходный BLOB-объект в целевой BLOB-объект в той же учетной записи хранения.
  • Поместить блок — Создает новый блок, который будет зафиксирован как часть блоба.
  • Put Block List — помещает большой двоичный объект, указывая набор идентификаторов блоков, которые составляют большой двоичный объект.
  • Получить список блоков — Извлекает список блоков, которые составляют блоб-блок.
  • Поместить страницу — помещает диапазон страниц в большой двоичный объект или удаляет диапазон страниц из большого двоичного объекта.
  • Получить регионы страниц — возвращает список активных диапазонов страниц для большого двоичного объекта. Активные диапазоны страниц — это те, которые были заполнены данными.
  • Подписи общего доступа — разрешить временный доступ к контейнеру или блобу с другими учетными данными
  • Зарегистрировать оболочку потока файлов — позволяет PHP использовать хранилище BLOB-объектов Windows Azure в качестве обычной файловой системы, используя стандартные функции файловой системы, такие как fopen , fread и т. Д.

Работа с таблицей хранения

 

Служба Table предлагает структурированное хранилище в виде таблиц.

Хранилище таблиц предлагается Windows Azure как API REST, который упакован в Windows Azure SDK для PHP, чтобы обеспечить собственный интерфейс PHP для учетной записи хранения.

 

Особенности хранения таблицы

Табличное хранилище Windows Azure и Windows Azure SDK для PHP предоставляют следующие функции:

  • Таблицы запросов — перечисляет таблицы в учетной записи хранения.
  • Создать таблицу — Создает новую таблицу в учетной записи хранения.
  • Удалить таблицу — удаляет таблицу из учетной записи хранения.
  • Query Entities — Запрашивает данные в таблице.
  • Вставить объект — вставляет новый объект в таблицу.
  • Обновить сущность — обновляет существующую сущность в таблице, заменяя ее.
  • Объединить сущность — обновляет существующую сущность в таблице путем слияния новых значений свойств в сущность.
  • Удалить объект — удаляет объект в таблице
  • Обработчик сеанса — хранит информацию о сеансе PHP в табличном хранилище прозрачным способом.
  • Таблица для сопоставления объектов — автоматически сопоставляет объекты PHP с хранилищем таблиц Windows Azure и наоборот.

Работа с сервисом очереди

 

Служба очереди хранит сообщения, которые могут быть прочитаны любым клиентом, имеющим доступ к учетной записи хранения.

Очередь может содержать неограниченное количество сообщений, каждое из которых может иметь размер до 8 КБ. Сообщения, как правило, добавляются в конец очереди и извлекаются из передней части очереди, хотя поведение «первым пришел / первым вышел» (FIFO) не гарантируется. Если вам нужно хранить сообщения размером более 8 КБ, вы можете сохранить данные сообщения в виде большого двоичного объекта или в таблице, а затем сохранить ссылку на данные в виде сообщения в очереди.

Хранилище очередей предлагается Windows Azure как API REST, который упакован в Windows Azure SDK для PHP, чтобы обеспечить собственный интерфейс PHP для учетной записи хранения.

Функции обслуживания очереди

Служба очереди Windows Azure и Windows Azure SDK для PHP предоставляют следующие функции:

  • Список очередей — список всех очередей под данной учетной записью.
  • Создать очередь — Создает новую очередь под данной учетной записью.
  • Удалить очередь — удаляет очередь.
  • Получить метаданные очереди — Возвращает свойства очереди, включая метаданные, определенные пользователем.
  • Установить метаданные очереди — Устанавливает метаданные, определенные пользователем в очереди.
  • Поместить сообщение — добавляет сообщение в очередь.
  • Получить сообщения — извлекает сообщение из очереди и делает его невидимым для других потребителей.
  • Просмотр сообщений — извлекает сообщение из передней части очереди без изменения видимости сообщения.
  • Удалить сообщение — удаляет указанное сообщение из очереди.
  • Очистить сообщения — удаляет все сообщения из очереди.

 

 

Работа с диагностикой и регистрацией

Windows Azure Diagnostics enables you to collect diagnostic data from a service running in Windows Azure. It can be used for tasks like debugging and troubleshooting, measuring performance, monitoring resource usage, traffic analysis, capacity planning, and auditing. Once collected, diagnostic data can be transferred to a Windows Azure storage account for persistence. Transfers can either be scheduled or on-demand.

You can configure Windows Azure Diagnostics from code running within a role. You can also configure it remotely from an application running outside of the Windows Azure; for example, you can manage Windows Azure Diagnostics from a custom dashboard application running on-premise. By managing Windows Azure Diagnostics remotely, you can start your service with an initial diagnostic configuration, and then tweak that configuration from code running outside of your service, without having to upgrade your service.

More information on which logs, performance counters, crash dumps, etc. can be monitored can be found on the corresponding MSDN web page.

Diagnostics features

Windows Azure diagnostics and the Windows Azure SDK for PHP provide the following features:

  • Configure diagnostics data sources:
    • Windows Azure logs
    • IIS 7.0 logs
    • Windows Diagnostic infrastructure logs
    • Failed Request logs
    • Windows Event logs
    • Crash dumps
    • Custom error logs
  • Configure transfer intervals
  • Configure quotas for diagnostics data

Additional Resources