创建具有云形成的堆栈的问题(“属性类型不能为空。”)

Níc*_*sen 0 cloud amazon-web-services aws-cloudformation aws-load-balancer

所以,我目前遇到了这个问题,但没有多大意义,因为我已经添加了类型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
Run Code Online (Sandbox Code Playgroud)

这是问题所在:

在此处输入图片说明

Ben*_*oom 6

正如我的评论,您的问题是您的 DefaultActions 列表配置错误。您需要删除第二个,-以便您的操作被视为一个操作。当您添加第二个操作时,它会将 与TargetGroupArn分开处理Type并使其搜索第二个操作。

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

它应该是什么样子:

  LoadBalancerListener:
    Type: AWS::ElasticLoadBalancingV2::Listener
    Properties:
      DefaultActions:
        - Type: forward
          TargetGroupArn: !Ref TargetGroup
      LoadBalancerArn: !Ref DayOne
      Port: 80
      Protocol: "HTTP"
Run Code Online (Sandbox Code Playgroud)