API управления автоматическим масштабированием Azure
В настоящее время я запускаю консольное приложение для обновления автоматического масштабирования в моей подписке Azure, однако у меня возникают проблемы с дневными и ночными профилями.
У меня есть два профиля, которые работают на ночь и день на будни. Я бросил это вместе, чтобы поиграть с API, но я получаю странные результаты.
var weekDayProfile = new AutoscaleProfile
{
Capacity = new ScaleCapacity
{
Default = settings.Default.ToString(),
Maximum = settings.Maximum.ToString(),
Minimum = settings.Minimum.ToString()
},
Name = "Day",
Recurrence = new Recurrence
{
Frequency = RecurrenceFrequency.Week,
Schedule = new RecurrentSchedule
{
Days = new List<String> { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" },
Hours = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 },
Minutes = new List<int> { 0 },
TimeZone = "Central Standard Time"
}
},
Rules = GenerateScaleRules(cloudServiceName, roleName, isProduction, settings)
};
settings.SetProfileSettings(ProfileEnum.NonProdWeekNight);
var weekNightProfile = new AutoscaleProfile
{
Capacity = new ScaleCapacity
{
Default = settings.Default.ToString(),
Maximum = settings.Maximum.ToString(),
Minimum = settings.Minimum.ToString()
},
Name = "Night",
Recurrence = new Recurrence
{
Frequency = RecurrenceFrequency.Week,
Schedule = new RecurrentSchedule
{
Days = new List<String> { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" },
Hours = {0, 1, 2, 3, 4, 5, 6, 7, 21, 22, 23},
Minutes = new List<int> { 0 },
TimeZone = "Central Standard Time"
}
},
Rules = GenerateScaleRules(cloudServiceName, roleName, isProduction, settings)
};
settings.SetProfileSettings(ProfileEnum.NonProdWeekEnd);
Теперь, когда я загружаю профиль в облако, появляются два профиля, но оба они одинаковы во всех отношениях. Мне интересно, если это потому, что мои дни пересекаются. Я думал, что это было возможно, так как вы можете установить дневные и ночные часы вручную через портал. Я пропускаю что-то вроде переключателя или настройки?
1 ответ
Видимо я испортил JSON вокруг ошибок. Я скучаю, понял, что на самом деле означают часы.
Запустил приложение, чтобы получить ручной профиль, чтобы сопоставить его с тем, который я сгенерировал. Кажется, часы - это не часS. Любой, кто делает это через API, хорошо просто зайти в профиль и сопоставить его.
AutoscaleClient autoscaleClient = new AutoscaleClient(new CertificateCloudCredentials(publishSettings.Id, publishSettings.Certificate));
AutoscaleSettingGetResponse get = autoscaleClient.Settings.Get(AutoscaleResourceIdBuilder.BuildCloudServiceResourceId("<clound name", "role name", true));
AutoscaleSetting setting = get.Setting;
string profileJson = JsonConvert.SerializeObject(setting);
Console.WriteLine(profileJson);