【问题标题】:How do I set min and max tasks for auto scaling policy for ecs services using the SDK?如何使用 SDK 为 ecs 服务的弹性伸缩策略设置最小和最大任务?
【发布时间】:2020-02-07 07:15:08
【问题描述】:

我想利用 AWS 开发工具包为我的 ECS 服务的 Auto Scaling 策略设置和定义最小/最大任务。

因此,我能够使用代码成功修改我的 ECS 容器实例的 Auto Scaling 组策略。

UpdateAutoScalingGroupRequest request = new UpdateAutoScalingGroupRequest().withAutoScalingGroupName("helloWorld-ASG").withMinSize(1);

UpdateAutoScalingGroupResult response = client.updateAutoScalingGroup(request);

UpdateScalingPlanResult scalingResponse = scalingClient.updateScalingPlan(scalingRequest);

但是如何为我的 ECS 服务的 Auto Scaling 策略执行此操作? 我需要什么课程才能做到这一点?有可能吗?

【问题讨论】:

    标签: java amazon-ec2 aws-sdk amazon-ecs autoscaling


    【解决方案1】:

    对于 ECS 服务自动扩展,请查看 AWSApplicationAutoScalingClientPutScalingPolicyRequestPutScalingPolicyResult 类,然后根据您的首选扩展策略,您将需要 StepScalingPolicyConfigurationTargetTrackingScalingPolicyConfiguration 类。

    请参阅 AWS Java SDK 文档中的以下示例:

    AWSApplicationAutoScaling client = AWSApplicationAutoScalingClientBuilder.standard().build();
    PutScalingPolicyRequest request = new PutScalingPolicyRequest()
            .withPolicyName("web-app-cpu-gt-75")
            .withServiceNamespace("ecs")
            .withResourceId("service/default/web-app")
            .withScalableDimension("ecs:service:DesiredCount")
            .withPolicyType("StepScaling")
            .withStepScalingPolicyConfiguration(
                    new StepScalingPolicyConfiguration().withAdjustmentType("PercentChangeInCapacity")
                            .withStepAdjustments(new StepAdjustment().withMetricIntervalLowerBound(0d).withScalingAdjustment(200)).withCooldown(60));
    PutScalingPolicyResult response = client.putScalingPolicy(request);AWSApplicationAutoScaling client = AWSApplicationAutoScalingClientBuilder.standard().build();
    

    【讨论】:

    • 我明白了。我正在查看文档,但在最小/最大任务中找不到任何内容。我可以使用 UpdateServiceRequest 设置desiredCount,但不能设置 min/max 任务。
    • 我认为问题在于我处于蓝/绿部署中,我很难在文档中找到为此设置最小/最大任务的位置。我查看了 DeploymentConfiguration,但似乎 withMinimumHealthyPercent() 函数仅用于滚动更新。目前正在研究 CodeDeploy,因为那是使用 B/G 的地方,但到目前为止还没有运气。
    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2019-03-28
    • 2021-09-01
    • 2019-12-08
    • 2019-05-21
    • 2016-02-08
    相关资源
    最近更新 更多