/** * AutoScalingに使用するLaunchConfigurationを生成して返す * 既にconfigが三つ存在していた場合は古いものを削除してから生成を行う * * @return string **/ private function _getLaunchConfiguration() { $configs = $this->as->getLaunchConfigurations(); $versions = array(); $base_name = 'ModernAdultMidnightCrawlerLaunchConfigVer'; foreach ($configs['LaunchConfigurations'] as $config) { $name = $config['LaunchConfigurationName']; if (preg_match('/' . $base_name . '([0-9]+)/', $name, $matches)) { $versions[] = $matches[1]; } } // 配列の昇順化 asort($versions); // ModernAdultMidnightCrawlerLaunchConfigが三つ以上存在した場合は一番古いものを削除する if (count($versions) >= 3) { $config_name = $base_name . array_shift($versions); $this->as->deleteLaunchConfiguration($config_name); } // 生成したいLaunchConfiguration名を作る if (count($versions) == 0) { $config_name = $base_name . '1'; } else { $ver = intval(array_pop($versions)); $config_name = $base_name . strval($ver + 1); } // 新しいLaunchConfiguration生成 $this->_createLaunchConfiguration($config_name); return $config_name; }