gpt4 book ai didi

amazon-ecs - ECS TaskDefinition 创建失败,错误为 "Invalid containerPort'“

转载 作者:行者123 更新时间:2023-12-05 02:52:48 40 4
gpt4 key购买 nike

Invalid 'containerPort' setting for container 'prerenderContainer'.(Service: AmazonECS; Status Code: 400; Error Code: ClientException;Request ID: ac922961-8445-4810-a839-03bb031938a2)

上面的错误 ^ 下面的代码片段....

const taskDefinition = new ecs.Ec2TaskDefinition(this, 'TaskDef',{
networkMode: "bridge",

prerenderContainer.addPortMappings('ports',{
containerPort: 3000,
hostPort: 80,
});

const listener = applb.addListener('appFleet', {
targetGroupName: 'prerenderFleet-TGroup',
port: 80
});

const prerenderFleetTGroup = listener.addTargets('ECS', {
port: 80,
targets:[service.loadBalancerTarget({
containerName: 'prerenderContainer',
containerPort: 3000,
})],

我已经尝试过 bridge 和 awsvpc 的网络模式,但没有成功。我认为这可能是因为我选择了特定的端口范围,所以我也尝试了“40391”但没有成功。

是超时问题吗?

感谢任何帮助。

最佳答案

首先,我建议保留“hostPort”设置。这允许 ECS 动态选择一个随机主机端口,然后也保留“addTargets”调用的端口。随机端口也将自动映射到目标端口。使用当前配置,您只能为每个主机放置一个容器,因为所有容器都将尝试映射到主机上的端口 80,而主机上只有一个端口 80。

或者,您可以启用 AWSVPC 网络模式,然后打开“ENI trunking”,这将为主机上的每个容器提供自己的弹性网络接口(interface),具有自己的 IP 地址和自己的端口 80。

就此确切的错误消息而言,我需要查看有关这些调用从 CDK 生成的设置的更多信息。尝试运行“cdk synth”,然后获取为任务定义生成的 JSON 或 YAML,这应该会提供有关“containerPort”设置为何无效的更多信息。

不过,我也有信心,如果你切换到动态端口或者使用AWSVPC模式,同样可以解决这个问题,而且你的网络配置也会更好

关于amazon-ecs - ECS TaskDefinition 创建失败,错误为 "Invalid containerPort'“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62498346/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com