【问题标题】:aws eb cli set Healthcheck utlaws eb cli 设置 Healthcheck utl
【发布时间】:2020-01-13 15:57:08
【问题描述】:

我正在将Django 应用程序与python 3.6 部署到AWS Elastic Beanstalk。有谁知道在创建或恢复 elastic beanstalk 环境时如何设置 Healthcheck URL?我尝试保存配置,但没有存储我的自定义 URL,所以我使用 eb config get 下载它,手动将其添加到配置中(我在 aws 页面上遇到)

  aws:elasticbeanstalk:application:
    Application Healthcheck URL: /accounts/login/

并做了一个 eb 配置。然后我使用 eb create --cfg good_cfg 创建了一个环境,但这并没有恢复 URL。我还通过 Web 界面设置了它,终止了环境,然后通过 eb restore env_id 恢复了环境,但是 Healthcheck URL 被设置回默认值 /。

这是我的完整 2020-01-12-test.cfg.yml 文件。

EnvironmentConfigurationMetadata:
  DateCreated: '1578859126000'
  DateModified: '1578859126000'
Platform:
  PlatformArn: arn:aws:elasticbeanstalk:us-east-2::platform/Python 3.6 running on 64bit Amazon Linux/2.9.4
OptionSettings:
  aws:elasticbeanstalk:command:
    BatchSize: '30'
    BatchSizeType: Percentage
  aws:elb:policies:
    ConnectionDrainingEnabled: true
  aws:elb:loadbalancer:
    CrossZone: true
  aws:elasticbeanstalk:environment:
    ServiceRole: arn:aws:iam::598520317272:role/aws-elasticbeanstalk-service-role
    LoadBalancerType: application
  aws:elasticbeanstalk:application:
    Application Healthcheck URL: /accounts/login/
  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced
  aws:elbv2:listener:443:
    ListenerEnabled: true
    SSLPolicy: ELBSecurityPolicy-2016-08
    SSLCertificateArns: arn:aws:acm:us-east-2:598520317272:certificate/4f82f8a4-cc06-48de-a96a-31bb6767f847
    DefaultProcess: default
    Protocol: HTTPS
    Rules: ''
  aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    EC2KeyName: aws-eb-coincounter
  aws:autoscaling:updatepolicy:rollingupdate:
    RollingUpdateType: Health
    RollingUpdateEnabled: true
EnvironmentTier:
  Type: Standard
  Name: WebServer
AWSConfigurationTemplateVersion: 1.1.0.0

【问题讨论】:

  • 您正在运行什么类型的应用程序?运行状况检查仅适用于负载平衡环境。
  • 我不确定您的意思是“什么类型的应用程序”。它是一个在 AWS Elastic Beanstalk 中运行的带有 python 3.6 的 Django 应用程序。如果我不更改 EC2 -> 目标组 -> 健康检查中的 URL,健康检查肯定会运行,因为应用程序会变成红色。我只需要通过 UI 执行此操作,并且想要在配置启动时执行此操作。
  • 啊,好的,那么你就有了一个负载平衡的应用程序。还有一个选项可以让 EB 应用程序成为单个实例,这对于测试和原型环境非常常见,并且您无法进行健康检查。
  • 保存配置也应该保存健康检查设置,它确实适用于我的项目。您可以在问题中分享您的完整启动配置吗?我可以比较一下,也许会看到一些有用的东西。
  • 我刚刚编辑了我的原始帖子以包含我的配置文件的内容。我有一个工作环境,我只是从中保存了这个配置。然后我终止了工作环境并尝试通过 aws Web 界面使用此配置创建一个新环境。但是当我加载这个环境时,它甚至没有启动负载均衡器,并且我的 SSL 证书也没有配置,即使它似乎列在这个配置文件中。也许我对如何使用这些配置文件有一个根本的误解。

标签: amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

由于某种原因,您缺少一些设置。以下是我认为可以提供帮助的内容。确保输入您的 SSL CERTIFICATE-ARN,示例中只有一个占位符。还有基于延迟的自动缩放,您可能希望将其更改为您喜欢的。

AWSEBAutoScalingGroup.aws:autoscaling:updatepolicy:rollingupdate:
    MinInstancesInService: '1'
    RollingUpdateType: Health
    MaxBatchSize: '1'
    RollingUpdateEnabled: true
AWSEBCloudwatchAlarmLow.aws:autoscaling:trigger:
    LowerThreshold: '0.8'
    MeasureName: Latency
    Unit: Seconds
AWSEBCloudwatchAlarmHigh.aws:autoscaling:trigger:
   UpperThreshold: '1.2'
AWSEBLoadBalancer.aws:elb:listener:443:
    SSLCertificateId: arn:aws:acm:<CERTIFICATE-ARN>
    ListenerProtocol: HTTPS
AWSEBLoadBalancer.aws:elb:policies:
    ConnectionDrainingEnabled: true
AWSEBAutoScalingGroup.aws:autoscaling:asg:
    MinSize: '1'
    MaxSize: '3'

【讨论】:

  • 感谢您的回复。我看到我缺少很多配置文件。正如我提到的,我可能对配置文件有一个根本的误解。我应该如何保存我当前的配置?我在 ELB 中并单击我的应用程序环境。最右侧有一个操作按钮,其中包含“保存配置”选项。我刚刚保存了一个新版本的配置,这正是我上面发布的。我的配置中不存在您的代码。我应该如何保存我的配置?还是我需要手动编码?
  • 你做的一切都是正确的。我建议再做一件事 - 切换到“经典”负载均衡器。您正在使用一个“应用程序”负载均衡器,它不使用健康检查 URL,但定义了一系列定义健康状况的响应代码。它没有解释消失的配置,但可能有助于设置运行状况检查。更多关于不同类型的信息:sumologic.com/insight/…
猜你喜欢
  • 2021-12-25
  • 2016-11-22
  • 2016-11-18
  • 2020-06-14
  • 2017-09-01
  • 2017-04-29
  • 2015-02-15
  • 1970-01-01
  • 2017-04-02
相关资源
最近更新 更多