AWS Beanstalk应用程序运行状况检查

时间:2013-11-01 22:12:20

标签: amazon elastic-beanstalk

我们使用Beanstalk来部署节点应用程序。效果很好。我在.ebextensions目录中创建了几个配置文件,以便在我们加载它们时将配置信息应用到我们的应用程序。再次大多运作良好。我有一件事没有,那就是定义应用程序运行状况检查URL。我不能让它去。关于它的一个奇怪的事情,它似乎只是我到目前为止遇到的参数,其中有空格,我想知道这一点。我已经尝试将值括在引号中,只是为了查看是否存在问题,但它仍然无法正常工作。有没有人以前做过这个,并且可以告诉我它是否有效,以及是否有关于此的语法不正确?正如我所说,其余的参数在beanstalk中正确设置,只是最后一个没有。注意在部署之前,#environment#将被替换为grunt脚本。

这是配置文件:

 option_settings:
   - namespace: aws:elasticbeanstalk:application:environment
     option_name: NODE_ENV
     value: #environment#
   - namespace: aws:elasticbeanstalk:container:nodejs
     option_name: NodeVersion
     value: 0.10.10
   - namespace: aws:autoscaling:trigger
     option_name: LowerThreshold
     value: 40
   - namespace: aws:autoscaling:trigger
     option_name: MeasureName
     value: CPUUtilization
   - namespace: aws:autoscaling:trigger
     option_name: UpperThreshold
     value: 60
   - namespace: aws:autoscaling:trigger
     option_name: Unit
     value: Percent
   - namespace: aws:elasticbeanstalk:application
     option_name: Application Healthcheck URL
     value: /load_balance_test

6 个答案:

答案 0 :(得分:0)

我使用CloudFormation for EB,而在CF中,该参数的语法非常奇怪。如果该配置文件与CF的工作方式相同,则以下字符串应该适用于您:

HTTP:80/load_balance_test

答案 1 :(得分:0)

如果你正在使用Terraform,那么请确保name中有空格,它会正常工作:

  setting {
    namespace = "aws:elasticbeanstalk:application"
    name = "Application Healthcheck URL"
    value = "/api/health"
  }

答案 2 :(得分:0)

此属性名称中的空格很奇怪,但是当与选项的替代速记语法一起使用时,它可以工作:

option_settings:

  aws:elasticbeanstalk:application:
    Application Healthcheck URL: /

答案 3 :(得分:0)

我刚刚尝试过。它为我工作。只有原始问题中指定的格式对我有效,即

option_settings:
  - namespace:  aws:elasticbeanstalk:application
    option_name:  Application Healthcheck URL
    value:  /api/v1/health/

答案 4 :(得分:0)

添加此内容对我有用:

# .ebextensions/healthcheckurl.config
option_settings:
  - namespace: aws:elasticbeanstalk:application
    option_name: Application Healthcheck URL
    value: /health
  - namespace: aws:elasticbeanstalk:environment:process:default
    option_name: HealthCheckPath
    value: /health
    enter code here

我通过执行eb config发现了第二个设置,它很好地概述了可以用option_settings文件中的.ebextensions/yet-another.config覆盖的环境设置。

答案 5 :(得分:0)

您还可能希望将health_check_type设置为ELB,而不是默认的EC2。 这就是我的配置方式

$ cat .ebextensions/0090_healthcheckurl.config 
Resources:
   AWSEBAutoScalingGroup:
     Type: "AWS::AutoScaling::AutoScalingGroup"
     Properties:
       HealthCheckType: "ELB"
       HealthCheckGracePeriod: "600"
option_settings:
  - namespace:  aws:elasticbeanstalk:application
    option_name:  Application Healthcheck URL
    value:  /_status