Статьи

Поддержка рабочих ролей в Windows Azure SDK для PHP

Начиная с выпуска версии 4.0 Windows Azure SDK для PHP , одним из недостающих компонентов была возможность упаковать рабочие роли как часть развертывания. По состоянию на прошлые выходные это уже не так. Маартен Баллиау (Maarten Balliauw) , основной участник SDK, добавил поддержку рабочих ролей в скаффолдер по умолчанию, что теперь чрезвычайно облегчает запуск не только одной рабочей роли, но и многих рабочих ролей (и многих веб-ролей). В этом посте я покажу вам, как упаковать и развернуть рабочую роль как часть веб-приложения.

Примечание : если вы не знакомы с эшафотами, я бы рекомендовал прочитать следующие уроки для контекста:

Вот шаги для включения рабочей роли в развертывание Azure / PHP:

1. Получите последнюю версию Windows Azure SDK для PHP.

На момент написания этой статьи вам необходимо получить последние сведения здесь: http://phpazure.codeplex.com/SourceControl/list/changesets . Скоро вы увидите эти последние биты, доступные для загрузки непосредственно с сайта CodePlex здесь: http://phpazure.codeplex.com/releases/view/73437 . Если вы еще не установили и не настроили SDK, вы можете сделать это, следуя этому руководству: Настройте Windows Azure SDK для PHP .

2. Запустите стандартные леса.

Это руководство « Построение и развертывание PHP-приложения Windows Azure» даст вам хорошее представление о том, что такое скаффолд и как использовать скаффолд по умолчанию в SDK. Короче говоря, скаффолд предоставляет каркас проекта, который позаботится о большей части настроек и конфигурации, которые вы должны будете выполнить для PHP-проекта Windows Azure. Все, что вам нужно сделать, это добавить свой исходный код. Чтобы создать скаффолд по умолчанию с рабочей ролью, выполните следующую команду:

scaffolder run -out="c:\path\to\output\directory" -web="WebRoleName" -workers="WorkerRoleName"

Я выполнил эту команду с моим выходным каталогом, установленным в c: \ workspace \ test , веб-ролью с именем WebRole1 и рабочей ролью с именем WorkerRole1 . Вот что вы должны увидеть в качестве результирующего каталога:

образ

Примечание : С новым SDK вы можете создать каркас, который имеет много веб-ролей и много рабочих ролей с помощью команды, подобной этой:

scaffolder run -out="c:\path\to\output\directory" -web="WebRoleName1,WebRoleName2,...,WebRoleNameN" -workers="WorkerRoleName1,WorkerRoleName2,...,WorkerRoleNameN""
3. Добавьте исходный код для своих веб-ролей и рабочих ролей.

Теперь просто добавьте исходный код вашей веб-роли в каталог WebRole1, а исходный код вашей рабочей роли — в каталог WorkerRole1 .

4. Проверьте, запустив в эмуляторе вычислений.

Вы можете проверить свой код, запустив проект в эмуляторе вычислений Windows Azure с помощью этой команды:

package create -in="C:\path\to\scaffold\directory" -out="c:\path\to\drop\packge\files" -dev=true

Поэтому в моем случае я установил для параметра –in значение c: \ workspace \ test, а для параметра –out значение c: \ workspace \ test \ build .

5. Упакуйте и разверните в Windows Azure.

Наконец, когда вы будете готовы развернуть приложение в Windows Azure, вы можете сделать это с помощью этой команды (как и выше, но с dev = false ):

package create -in="C:\path\to\scaffold\directory" -out="c:\path\to\drop\packge\files" -dev=false

В выходном каталоге, вы должны найти два файла: .cspkg файл и .cscfg файл. Вы можете развернуть их в Windows Azure через портал для разработчиков: https://windows.azure.com/ (подробнее о том, как это сделать, см. Здесь ). Другие варианты развертывания включают использование инструментов командной строки, доступных в SDK , или использование инструментов WAZ-PHP-Utils , доступных на GitHub (разработанных Беном Лобо ).

Вот и все. Конечно, все это вызывает вопрос: ПОЧЕМУ использовать рабочие роли? Ответ на этот вопрос (или хотя бы один ответ) будет опубликован в моем следующем посте.