【发布时间】:2021-06-02 20:29:34
【问题描述】:
我正在尝试使用 CDK 部署 EC2 部署的 ECS 集群。我正在使用 QueueProcessingEc2Service ECS 模式。
这是堆栈
from aws_cdk import core, aws_ecs_patterns, aws_ec2, aws_ecs
class EcsTestStack(core.Stack):
def __init__(self, scope: core.Construct, construct_id: str, **kwargs) -> None:
super().__init__(scope, construct_id, **kwargs)
_container_image = aws_ecs.ContainerImage.from_asset(
directory=".",
file='Dockerfile.ECS_Test',
exclude=["cdk.out"]
)
vpc = aws_ec2.Vpc(self, "ecs-test-vpc-v4", max_azs=3)
cluster = aws_ecs.Cluster(self, "ecs-test-cluster-v4", vpc=vpc)
cluster.add_capacity("ecs-autoscaling-capacity-v4",
instance_type=aws_ec2.InstanceType("t2.small"),
min_capacity=0,
max_capacity=3)
self.ecs_test = aws_ecs_patterns.QueueProcessingEc2Service(
self,
"ECS_Test_Pattern_v4",
cluster=cluster,
cpu=512,
memory_limit_mib=512,
image=_container_image,
min_scaling_capacity=0,
max_scaling_capacity=5,
)
我想在队列为空时堆叠为“冷”,并仅在将消息添加到队列时启动 EC2 实例和 ECS 服务和任务。
将QueueProcessingEc2Service 和cluster.add_capacity 上的min_scaling_capacity 设置为0 会使堆栈无法部署。 IE。部署在步骤 48/56 处冻结(附加屏幕截图)。我已从 CloudFormation 中删除堆栈并重新部署并获得相同的结果。当我将 -v 标志添加到 CDK 部署命令时,我得到一堆 Stack EcsTestStackV4 has an ongoing operation in progress and is not stable (CREATE_IN_PROGRESS) 而没有别的。 (附截图)
当我将min_scaling_capacity 设置为 1 时,它似乎可以正常部署。
问题:将 min_scaling_capacity 设置为 0 有效吗?如果是,为什么设置为0时我的堆栈不深?
【问题讨论】:
-
进展如何?仍然不清楚您遇到此问题的原因?
标签: amazon-web-services amazon-ec2 amazon-ecs aws-cdk