2

我正在尝试使用 EB CLI 创建一个新的 Elastic Beanstalk 环境,但由于选项无效而失败,即使该选项未在我的配置中设置。

我正在运行的命令:

$ eb create my-new-environment -v --timeout 15

我得到的错误:

2020-09-27 08:45:00    ERROR   "option_settings" in one of the configuration files failed validation. More details to follow.
2020-09-27 08:45:00    ERROR   Invalid option value: '1.0' (Namespace: 'aws:autoscaling:updatepolicy:rollingupdate', OptionName: 'MinInstancesInService'): You can't enable rolling updates for a single-instance environment.
2020-09-27 08:45:01    ERROR   Failed to launch environment.

但我没有aws:autoscaling:updatepolicy:rollingupdate在我的配置文件中指定!

# .ebextensions/settings.config

option_settings:
    aws:elasticbeanstalk:managedactions:
        ManagedActionsEnabled: true
        PreferredStartTime: "Thu:04:00"
    aws:elasticbeanstalk:managedactions:platformupdate:
        UpdateLevel: minor
        InstanceRefreshEnabled: true
    aws:elasticbeanstalk:command:
        DeploymentPolicy: AllAtOnce
    aws:elasticbeanstalk:environment:
        EnvironmentType: SingleInstance
    aws:ec2:instances:
        InstanceTypes: t3.medium
    aws:elasticbeanstalk:cloudwatch:logs:
        StreamLogs: true
        DeleteOnTerminate: true
        RetentionInDays: 1
    aws:elasticbeanstalk:application:
        Application Healthcheck URL: /health
    aws:autoscaling:launchconfiguration:
        MonitoringInterval: 1 minute

这是我的.elasticbeanstalk/config.yml

# .elasticbeanstalk/config.yml

deploy:
  artifact: out.zip
global:
  application_name: my-application
  branch: null
  default_ec2_keyname: null
  default_platform: 64bit Amazon Linux 2 v2.0.2 running .NET Core
  default_region: eu-west-1
  include_git_submodules: true
  instance_profile: null
  platform_name: null
  platform_version: null
  profile: null
  repository: null
  sc: git
  workspace_type: Application

如果它有帮助,我认为我确实MinInstancesInService在之前的尝试中设置了该选项,但我已经从我的配置中删除了它;我已经检查了两倍和三倍,确保只有我的配置的新版本在我的out.zip人工制品中。

4

2 回答 2

4

根据评论。

该问题是由EB CLI 忽略配置文件中的某些设置引起的。来自文档

由于推荐值是在API 级别设置的,因此它们将覆盖您在配置文件或保存的配置中设置的相同选项的值。

解决方案是使用 EB CLI option将EB 环境显式设置为单实例类型--single

eb create my-new-environment -v --timeout 15 --single
于 2020-09-27T10:39:03.523 回答
0

通过选择 EB 实例并选择配置,然后选择滚动更新并禁用它,可以很容易地从 AWS 控制台禁用“滚动更新”。你可以。现在指定一个没有负载平衡的实例。

当实例主要用于测试目的或您预计后端流量不会很大时,我这样做是为了节省一些美元。

大卫

于 2021-08-30T20:48:47.620 回答