我正在设计一个基础架构解决方案,以平衡流量到2个不同Web应用的流量,这些Web应用由不同的路径和端口托管在同一实例中。
我正在尝试执行Cloudformation来创建ALB,1个侦听器,2个指向Autoscaling Group创建的实例的目标组以及两个目标组具有2个不同的侦听器规则。
在阅读AWS文档时,我必须在AutoSG属性中定义目标组,但是在定义它时遇到了问题。
我也不确定,我做对了。
我在使用此代码时收到错误消息(当我在自动伸缩组创建中引用目标组时,我认为这是错误的部分)
"TargetGroupARNs": [
{
"Ref": "DefaultTG"
},
{
"Ref": "SecondTG"
}
],
这些目标组的定义如下:
"DefaultTG" : {
"Type" : "AWS::ElasticLoadBalancingV2::TargetGroup",
"Properties" : {
"HealthCheckIntervalSeconds": 30,
"HealthCheckProtocol": "HTTPS",
"HealthCheckPath": "/home",
"HealthCheckTimeoutSeconds": 10,
"HealthyThresholdCount": 4,
"Matcher" : {
"HttpCode" : "200"
},
"Name": "Default",
"Port": 4443,
"Protocol": "HTTPS",
"UnhealthyThresholdCount": 3,
"VpcId": {"Ref" : "VpcID"}
},
侦听器的代码和一个侦听器规则:
"ALBListener": {
"Type": "AWS::ElasticLoadBalancingV2::Listener",
"Properties": {
"DefaultActions": [{
"Type": "redirect",
"RedirectConfig" : {
"TargetGroupArn": { "Ref": "DefaultTG" }
}
}],
"LoadBalancerArn": { "Ref": "APIServerELB" },
"Port": "443",
"Protocol": "TCP"
}
},
"DefListenerRule": {
"Type": "AWS::ElasticLoadBalancingV2::ListenerRule",
"Properties": {
"Actions": [
{
"Type": "forward",
"TargetGroupArn": {
"Ref": "DefaultTG"
}
}
],
"Conditions" : [
{
"Field" : "path-pattern",
"Values" : [ "/home" ]
}
],
"ListenerArn": {
"Ref": "ALBListener"
}
}
},
错误是:
Template validation error: Invalid template resource property 'DefaultTG'
我希望Cloudformation使用指向两个由Autoscaling组创建的实例的目标组来创建一个包含侦听器和2个侦听器规则的ALB。
答案 0 :(得分:0)
我无法复制此内容。我的Type: 'AWS::AutoScaling::AutoScalingGroup'
中包含以下内容,并且可以正常工作。
我无法用一个ALB弄清楚,所以我有两个ALB。
"TargetGroupARNs": [
{
"Ref": "DefaultTG"
},
{
"Ref": "APIServerELB"
}
],