即使未指定“aws:autoscaling:updatepolicy:rollingupdate”,“您也无法为单实例环境启用滚动更新”

Aro*_*ron 2 amazon-web-services amazon-elastic-beanstalk ebcli

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

我正在运行的命令:

$ eb create my-new-environment -v --timeout 15
Run Code Online (Sandbox Code Playgroud)

我收到的错误:

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.
Run Code Online (Sandbox Code Playgroud)

但我没有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
Run Code Online (Sandbox Code Playgroud)

这是我的.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

Run Code Online (Sandbox Code Playgroud)

如果它有帮助,我想我确实MinInstancesInService在之前的尝试中设置了该选项,但我已经从我的配置中删除了它;我已经进行了两次和三次检查,确保我的工件中只有新版本的配置out.zip

Mar*_*cin 5

根据评论。

该问题是由于EB CLI 忽略配置文件中的某些设置而导致的。来自文档

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

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

eb create my-new-environment -v --timeout 15 --single
Run Code Online (Sandbox Code Playgroud)