gpt4 book ai didi

aws-cloudformation - "elb name longer than 32"但只有 8

转载 作者:行者123 更新时间:2023-12-01 22:09:37 25 4
gpt4 key购买 nike

我尝试使用 AWS cloudformation 创建具有 ALB 和 ECS 服务的堆栈,但我在 AWS::ECS::Service 上收到 CREATE_FAILED ,这是elb名称长于32

我不明白为什么 ECS 服务会提示 ELB 名称,而 ALB 本身却处于 CREATE_COMPLETE 状态…

以下是与我发送到 cloudformation 的 ALB 创建相关的 JSON:

    "loadBalancer" : {
"Type": "AWS::ElasticLoadBalancingV2::LoadBalancer",
"Properties": {
"Name": "test-alb",
"Scheme" : "internal",
"Subnets" : [
"subnet-b8217295",
"subnet-ddaad2b8",
"subnet-6d71fb51"
],
"LoadBalancerAttributes" : [
{ "Key" : "idle_timeout.timeout_seconds", "Value" : "50" }
],
"SecurityGroups": [
{ "Ref": "InstanceSecurityGroupOpenWeb" },
{ "Ref" : "InstanceSecurityGroupOpenFull" }
],
"Tags" : [
{ "Key" : "key", "Value" : "value" },
{ "Key" : "key2", "Value" : "value2" }
]
}
}

这是与 ECS 服务创建相关的 JSON(引用上面定义的 ALB):

    "EcsService": {
"Type":"AWS::ECS::Service",
"Properties":{
"Cluster":{
"Ref": "EcsCluster"
},
"DesiredCount":"1",
"DeploymentConfiguration":{
"MaximumPercent":100,
"MinimumHealthyPercent":0
},
"LoadBalancers": [
{
"ContainerName": "test-web",
"ContainerPort":"80",
"LoadBalancerName":{
"Ref": "loadBalancer"
}
}
],
"Role":{
"Ref": "EcsServiceRole"
},
"TaskDefinition":{
"Ref": "runWebServerTaskDefinition"
}
}
}

正如你所看到的,我自己设置了 ALB 的名称,它只有 8 个字符,所以我真的不明白,知道吗?

最佳答案

当你这样做时"Ref" ,它将返回负载均衡器 ARN,而不是负载均衡器名称。您需要使用 GetAtt 来获取负载均衡器名称

{ "Fn::GetAtt" : [ "loadBalancer", "LoadBalancerName" ] }

关于aws-cloudformation - "elb name longer than 32"但只有 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49030654/

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