【问题标题】:Error on run: Property validation failure: [Value of property {/Targets/0/Values} does not match type {Array}]运行时出错:属性验证失败:[属性值 {/Targets/0/Values} 与类型 {Array} 不匹配]
【发布时间】:2020-02-05 00:57:56
【问题描述】:

这个 CF 是在 YAML 而不是 JSON 中创建的。

我正在通过 Cloudformation 构建 Systems Manager 维护窗口、目标和任务。

创建堆栈时,资源:维护窗口:部分成功完成。失败的是下一部分(如下)。不确定最后一部分,因为我们永远不会到达那里。

这里是完整模板的位置:https://pastebin.com/DNEkLPGS

我尝试过使用验证器和所有东西(YAML 和 CloudFormation 验证器),一切都恢复正常。

这是给出错误的部分:

Parameters:
  MaintenanceTargetName:
    Description: Maintenace Target Name (No Spaces)
    Type: String
  MaintenanceTargetDescription:
    Description: Sample - UAT Servers
    Type: String
    MaxLength: '128'
  MaintenanceTargetTarget:
    Description: Tag Key should equal 'AgentUpdate'
    Type: String
    Default: tag:AgentUpdate
  MaintenaneTargetKeyValue:
    Description: True or False
    Type: String
    Default: True
    AllowedValues:
      - True
      - False

Resources:
  MaintenanceWindowTarget:
    Type: 'AWS::SSM::MaintenanceWindowTarget'
    Properties:
      WindowId: !Ref MaintenanceWindow
      ResourceType: INSTANCE
      Targets:
        - Key: !Ref MaintenanceTargetTarget
          Values: !Ref MaintenaneTargetKeyValue
      Name: !Ref MaintenanceTargetName
      Description: !Ref MaintenanceTargetDescription

运行模板出现以下错误:

维护窗口目标 | CREATE_FAILED |属性验证失败:[属性值 {/Targets/0/Values} 与类型 {Array} 不匹配]

【问题讨论】:

    标签: amazon-web-services yaml amazon-cloudformation


    【解决方案1】:

    对于资源AWS::SSM::Parameter 属性Tags 应定义如下。

    Tags:
        Technical:AppID: !Ref ApplicationId
        Technical:AppName: !Ref ApplicationName
        Technical:Owner: !Ref Owner
        Technical:Env: !Ref Environment
        ProjId: !Ref ProjectId
    

    【讨论】:

      【解决方案2】:

      找到问题了,是格式问题:

      Resources:
        MaintenanceWindowTarget:
          Type: 'AWS::SSM::MaintenanceWindowTarget'
          Properties:
            WindowId: !Ref MaintenanceWindow
            ResourceType: INSTANCE
            Targets:
              - Key: !Ref MaintenanceTargetTarget
                Values: !Ref MaintenaneTargetKeyValue
            Name: !Ref MaintenanceTargetName
            Description: !Ref MaintenanceTargetDescription
      

      问题在于目标部分:

            Targets:
              - Key: !Ref MaintenanceTargetTarget
                Values: !Ref MaintenaneTargetKeyValue
      

      以上内容不正确。以下是更正:

            Targets:
              - Key: !Ref MaintenanceTargetTarget
                Values: 
                - !Ref MaintenaneTargetKeyValue
      

      希望这对其他人有所帮助!

      【讨论】:

      猜你喜欢
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 2021-10-15
      • 2013-12-22
      • 1970-01-01
      • 2014-09-18
      相关资源
      最近更新 更多