创建具有云形成的堆栈时出现问题 ("Property Type cannot be empty.")
Problem with creating a stack with cloud formation ("Property Type cannot be empty.")
所以,我目前遇到了这个问题,但没有多大意义,因为我已经在 LoadBalancerListener
上添加了类型...
我在 Load Balancer
和 Target Group
之前测试过,然后它们运行良好,但是当我添加Listener
,堆栈出错。这是代码:
AWSTemplateFormatVersion: 2010-09-09
Description: Template for load balancer
Resources:
DayOne:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
Scheme: internet-facing
SecurityGroups:
- sg-055ea833725644075
Subnets:
- subnet-0d7b9bf57973e6b78
- subnet-0186890795288d48a
LoadBalancerListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
DefaultActions:
- Type: forward
- TargetGroupArn: !Ref TargetGroup
LoadBalancerArn: !Ref DayOne
Port: 80
Protocol: "HTTP"
TargetGroup:
DependsOn: "DayOne"
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
TargetType: "instance"
Name: "DayOneTarget"
Port: 80
Protocol: "HTTP"
VpcId: "vpc-0f98d22c9291e3c0c"
HealthyThresholdCount: 2
HealthCheckTimeoutSeconds: 10
HealthCheckIntervalSeconds: 30
这是问题所在:
正如我的评论,您的问题是您的 DefaultActions 列表配置错误。您需要删除第二个 -
以便您的操作被视为一个操作。当您添加第二个时,它会将 TargetGroupArn
与 Type
分开处理,并使其搜索第二个操作。
该错误消息可能看起来具有误导性,但它实际上是在告诉您您缺少默认操作的 Type
字段。由于 Type
是必填字段,并且您有多个操作,因此每个操作都需要包括在内。
它应该是什么样子:
LoadBalancerListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
DefaultActions:
- Type: forward
TargetGroupArn: !Ref TargetGroup
LoadBalancerArn: !Ref DayOne
Port: 80
Protocol: "HTTP"
所以,我目前遇到了这个问题,但没有多大意义,因为我已经在 LoadBalancerListener
上添加了类型...
我在 Load Balancer
和 Target Group
之前测试过,然后它们运行良好,但是当我添加Listener
,堆栈出错。这是代码:
AWSTemplateFormatVersion: 2010-09-09
Description: Template for load balancer
Resources:
DayOne:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
Scheme: internet-facing
SecurityGroups:
- sg-055ea833725644075
Subnets:
- subnet-0d7b9bf57973e6b78
- subnet-0186890795288d48a
LoadBalancerListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
DefaultActions:
- Type: forward
- TargetGroupArn: !Ref TargetGroup
LoadBalancerArn: !Ref DayOne
Port: 80
Protocol: "HTTP"
TargetGroup:
DependsOn: "DayOne"
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
TargetType: "instance"
Name: "DayOneTarget"
Port: 80
Protocol: "HTTP"
VpcId: "vpc-0f98d22c9291e3c0c"
HealthyThresholdCount: 2
HealthCheckTimeoutSeconds: 10
HealthCheckIntervalSeconds: 30
这是问题所在:
正如我的评论,您的问题是您的 DefaultActions 列表配置错误。您需要删除第二个 -
以便您的操作被视为一个操作。当您添加第二个时,它会将 TargetGroupArn
与 Type
分开处理,并使其搜索第二个操作。
该错误消息可能看起来具有误导性,但它实际上是在告诉您您缺少默认操作的 Type
字段。由于 Type
是必填字段,并且您有多个操作,因此每个操作都需要包括在内。
它应该是什么样子:
LoadBalancerListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
DefaultActions:
- Type: forward
TargetGroupArn: !Ref TargetGroup
LoadBalancerArn: !Ref DayOne
Port: 80
Protocol: "HTTP"