创建具有云形成的堆栈时出现问题 ("Property Type cannot be empty.")

Problem with creating a stack with cloud formation ("Property Type cannot be empty.")

所以,我目前遇到了这个问题,但没有多大意义,因为我已经在 LoadBalancerListener 上添加了类型... 我在 Load BalancerTarget 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 列表配置错误。您需要删除第二个 - 以便您的操作被视为一个操作。当您添加第二个时,它会将 TargetGroupArnType 分开处理,并使其搜索第二个操作。

该错误消息可能看起来具有误导性,但它实际上是在告诉您您缺少默认操作的 Type 字段。由于 Type 是必填字段,并且您有多个操作,因此每个操作都需要包括在内。

它应该是什么样子:

  LoadBalancerListener:
    Type: AWS::ElasticLoadBalancingV2::Listener
    Properties:
      DefaultActions:
        - Type: forward
          TargetGroupArn: !Ref TargetGroup
      LoadBalancerArn: !Ref DayOne
      Port: 80
      Protocol: "HTTP"