Как я могу программно отредактировать узел NetworkConfiguration файла ServiceConfiguration для моих рабочих ролей Azure?

Я читал о блокировке IP-адресов от запуска атак на мой опубликованный сервис, в данном случае рабочую роль. Я добавил NetworkConfiguration, чтобы помочь в достижении этой цели, и она, кажется, работает просто отлично.

Теперь мой вопрос заключается в следующем: как я могу добавить узлы в этот файл из моей работающей программы?

Я планирую вести журналы, и когда IP-адрес отправил несколько неправильных запросов, я бы хотел, чтобы моя программа обновила список IP-адресов, занесенных в черный список. Для меня нецелесообразно вручную редактировать этот список сверхурочно, если я надеюсь, что смогу создать черный список в режиме реального времени, если мой порт подвергнется атаке грубой силы или атаке днс.

  1. Как я могу загрузить файл конфигурации в коде, чтобы использовать XDocument для редактирования значений в этом узле?
  2. Будут ли эти изменения распространяться на другие экземпляры, работающие автоматически?
  3. Есть ли другой способ достичь этой цели?

2 ответа

Решение

Я верю, что ты можешь. Изменения в ServiceConfig (не определение сервиса) могут быть обновлены через API управления сервисом.

Определение API здесь: https://msdn.microsoft.com/en-us/library/azure/ee460809.aspx

Если вы находитесь в.NET, вы можете использовать один из пакетов Nuget, чтобы помочь с этим: https://www.nuget.org/packages/Microsoft.WindowsAzure.Management.Compute/

Как я могу загрузить файл конфигурации в коде, чтобы использовать XDocument для редактирования значений в этом узле?

Для этого вам необходимо получить свойства облачного сервиса и извлечь параметры конфигурации из возвращенного XML. Вам нужно будет сделать это путем вызова Get Cloud Service Properties Работа API управления сервисом (Пожалуйста, ищите подходящий метод, если вы используете Azure Management Library). Если вы используете REST API, имейте в виду, что файл конфигурации, возвращенный в Bas64, закодирован, поэтому вам нужно будет преобразовать его в строку и затем загрузить XML.

Будут ли эти изменения распространяться на другие экземпляры, работающие автоматически?

После внесения изменений вам нужно будет выполнить Change Deployment Configuration операция для изменения, которое будет применено. Как только вы примените эти изменения, они будут применены ко всем экземплярам автоматически.

Есть ли другой способ достичь этой цели?

AFAIK, это единственный способ сделать это программно.

Другие вопросы по тегам