我尝试关闭/启动我的弹性beanstalk(测试)环境过夜,以便在不需要服务器时节省资源。在EB的Web控制台上,我可以输入触发的基于时间的缩放。
但是,当我在.ebextensions文件夹中添加一个应该执行相同操作的配置文件时,服务器根本无法扩展。
根据Elastic Beanstalk的documentation(搜索" 基于时间的扩展选项设置文件的示例"),可以添加。 ebextension文件,带有基于时间的缩放配置。
所以我调整了示例并将相应的定义添加到项目中:
{
[
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "OvernightShutdown",
"OptionName": "MinSize",
"Value": "0"
},
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "OvernightShutdown",
"OptionName": "MaxSize",
"Value": "0"
},
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "OvernightShutdown",
"OptionName": "DesiredCapacity",
"Value": "0"
},
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "OvernightShutdown",
"OptionName": "StartTime",
"Value": "2015-11-18T16:50:00Z"
},
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "OvernightShutdown",
"OptionName": "Recurrence",
"Value": "00 21 * * 1-5"
},
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "MorningStartup",
"OptionName": "MinSize",
"Value": "1"
},
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "MorningStartup",
"OptionName": "MaxSize",
"Value": "1"
},
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "MorningStartup",
"OptionName": "DesiredCapacity",
"Value": "1"
},
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "MorningStartup",
"OptionName": "StartTime",
"Value": "2015-11-19T05:00:00Z"
},
{
"Namespace": "aws:autoscaling:scheduledaction",
"ResourceName": "MorningStartup",
"OptionName": "Recurrence",
"Value": "00 07 * * 1-5"
}
]
}
基本上这是副本&根据我的需要粘贴并稍作调整。我将它放在项目中的.ebxtensions / autoscaling.config文件中并将其部署到EB。
现在服务器应该缩短(" OvernightShutdown")到UTC时间晚上9点0,并且应该在UTC时间上午7点放大(" MorningStartup")。
但是"隔夜关闭"和#34; MorningStartup"他们不应该被触发。
我曾经在文件中输入过一次错字,然后EB告诉我它无法解析它,所以我知道我读取了文件,但显然它不会将配置应用到环境中
有人知道这可能是什么问题?我的配置错了吗? 由于没有太多的例子,文件如何看起来我没有适当的参考,除了EB documentation
答案 0 :(得分:2)
我也在AWS / EB板上发布了这个问题,他们回答了有关此问题的有用答案:
解决方案是使用yaml配置而不是json,因为EB似乎与json-config有问题。但他们根据答案解决了这个问题。
答案 1 :(得分:1)
我认为你可能会受到优先条款的影响:configuration options precedence。这前一天我抓住了我。如果您已通过Web界面手动配置了值,那么您的配置文件将不会替换这些值。
解决这个问题我:
<?php
require_once('mac.php');
while(true){
checkMac();
sleep(10); // this should halt for 10 seconds for every loop
}
?>
配置文件,确保它已在环境中部署并准备就绪。.ebextensions
以显示当前配置(这应显示旧配置)这会触发环境刷新,就像您在Web界面中更改了它一样。
或者如@mbaird在评论中所说,0可能不是有效的最小值和最大值。