Amazon ec2 aws eb cli设置Healthcheck utl

Amazon ec2 aws eb cli设置Healthcheck utl,amazon-ec2,amazon-elastic-beanstalk,Amazon Ec2,Amazon Elastic Beanstalk,我正在用python3.6将一个Django应用程序部署到AWS Elastic Beanstalk。有人知道如何在创建或恢复弹性豆茎环境时设置Healthcheck URL吗?我曾尝试保存一个配置,但该配置没有存储我的自定义URL,因此我使用eb config get下载了它,并手动将其添加到配置中(我在aws页面上看到) 然后做了一个eb配置。然后我使用ebcreate--cfg good\u cfg创建了一个环境,但没有恢复URL。我还通过web界面进行了设置,终止了环境,然后通过eb r

我正在用
python3.6
将一个
Django
应用程序部署到
AWS Elastic Beanstalk
。有人知道如何在创建或恢复
弹性豆茎
环境时设置Healthcheck URL吗?我曾尝试保存一个配置,但该配置没有存储我的自定义URL,因此我使用eb config get下载了它,并手动将其添加到配置中(我在
aws
页面上看到)

然后做了一个eb配置。然后我使用eb
create--cfg good\u 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

由于某种原因,您缺少一些设置。以下是我认为有帮助的。确保放入SSL证书-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'
AWSEBAutoScalingGroup.aws:autoscaling:updatepolicy:rollingupdate:
微型安装服务:“1”
RollingUpdateType:运行状况
MaxBatchSize:'1'
RollingUpdateEnabled:true
AWSEBCloudwatchAlarmLow.aws:自动缩放:触发器:
LowerThreshold:'0.8'
MeasureName:延迟
单位:秒
AWSEBCloudwatchAlarmHigh.aws:自动缩放:触发器:
上限阈值:“1.2”
AWSEBLoadBalancer.aws:elb:listener:443:
SSLCertificateId:arn:aws:acm:
ListenerProtocol:HTTPS
AWSEBLoadBalancer.aws:elb:策略:
CONNECTIONDRAININGABLE:正确
AWSEB自动校准组。aws:自动校准:asg:
MinSize:'1'
最大尺寸:“3”

您正在运行什么类型的应用程序?运行状况检查仅适用于负载平衡环境。我不确定“什么类型的应用程序”是什么意思。这是一个Django应用程序,python 3.6在AWS Elastic Beanstalk中运行。如果我不更改EC2->Targets Groups->Health checks中的URL,健康检查肯定会运行,因为应用程序会变为红色。我只需要通过UI来完成这项工作,并希望在配置启动时找到一种方法。啊,好的,那么您就有了一个负载平衡的应用程序。对于EB应用程序,还有一个选项是将其作为单个实例,这在测试和原型环境中非常常见,并且您无法执行运行状况检查。保存配置还应保存运行状况检查设置,这对我的项目来说是肯定的。你能在问题中分享你的完整启动配置吗?我可以比较,也许可以看到一些有用的东西。我刚刚编辑了我的原始帖子,包括我的配置文件的内容。我有一个工作环境,我刚刚从中保存了这个配置。然后,我终止了工作环境,并尝试通过aws web界面使用此配置创建新环境。但当我加载这个环境时,它甚至没有启动负载平衡器,而且我的SSL证书也没有配置,尽管它似乎列在这个配置文件中。也许我对如何使用这些配置文件有一个基本的误解。谢谢你的回复。我发现我丢失了相当多的配置文件。正如我提到的,我可能对配置文件有一个基本的误解。我应该如何保存当前配置?我在ELB中,单击我的应用程序环境。最右边有一个动作按钮,它可以作为“保存配置”选项。我刚刚保存了一个新版本的配置,它正是我上面发布的。我的配置中不存在您的代码。我应该如何保存配置?或者我需要手工编码吗?你做的一切都是正确的。我建议再做一件事——切换到“经典”负载平衡器。您使用的是一个“应用程序”负载平衡器,它不使用运行状况检查url,而是定义一系列定义运行状况的响应代码。它不能解释正在消失的配置,但可能有助于设置运行状况检查。有关不同类型的更多信息,请参见:
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'