2011-12-28 2 views
4

Я ищу некоторый код, который будет масштабировать роль для заданного количества экземпляров с учетом функции roleID, которую я хочу масштабировать. Я ищу кого-то, чтобы реализовать этот метод.Масштабировать роли Windows Azure программным образом

Private Shared Sub DoScaleOperation(RoleID As String, InstanceCount As Integer) 
    'TODO: 
    'Check if the current number of instances in the role RoleID matches InstanctCount 
    'and if the numbers don't match then scale down or scale up as appropriate. 
End Sub 

Этот метод должен работать как для среды разработчиков, так и для среды облака. Кто-нибудь знает как это сделать?

Кроме того, я хотел бы узнать, какие имена экземпляров ролей будут отображаться в масштабе и каковы имена экземпляров, удаленных во время масштабирования. Я надеюсь, что имена экземпляров будут похожи на RoleID_ (от 0 до InstanceCount - 1).

ответ

7

Существует API, который вы хотите вызвать для программного изменения количества экземпляров в Azure: http://msdn.microsoft.com/en-us/library/windowsazure/ee460809.aspx Этот API не работает в локальной среде dev. Вам необходимо будет предоставить сертификат управления вашим вызовом. Вы также можете использовать командлеты Azure для изменения количества экземпляров.

+0

Мне нужно, чтобы определенные события выполнялись до того, как роль масштабируется, чтобы убедиться, что я удаляю определенные данные, принадлежащие экземпляру роли, поэтому для меня не будет работать типичный подход с автоматическим масштабированием. Я не понимаю остальных апи, для меня это похоже на древний китайский. Поэтому мне было интересно, сможет ли кто-нибудь предоставить мне этот метод? – RyanFishman

+0

Понял. Вот несколько статей по этой теме. http://dotnet.dzone.com/news/windows-azure-and-scaling-how и http://blogs.ugidotnet.org/corrado/archive/2011/02/09/how-to-programmatically-change- the-number-of-azure-role-examples.aspx, и есть еще несколько, которые показывают, как использовать командлеты, если вы достаточно Google. Не существует волшебной «одной строки кода», если только она не является командлетом. – Igorek

+2

Вы можете обработать событие OnStop(), чтобы выполнить код выключения в своих экземплярах роли. Это позволяет сохранить последовательность выключения независимо от кода, который масштабирует вас (и вы не хотите иметь масштабный код в том же экземпляре, который вы масштабируете). Кроме того, ваши экземпляры ролей должны восстанавливаться изящно, когда они неожиданно завершаются (например, с аппаратным сбоем). –

Смежные вопросы