模板验证错误 - 模板资源属性无效

时间:2017-12-23 20:31:52

标签: amazon-cloudformation aws-batch

我正在尝试创建jobqueue模板,在其中我声明输出值,以便可以将jobqueue导入到其他堆栈中。

模板:

{
"Resources": {
  "MyJobQueue": {
    "Type": "AWS::Batch::JobQueue",
    "Properties": {
      "ComputeEnvironmentOrder": [
        {
          "Order": 1,
          "ComputeEnvironment": "testcompenv"
        }
      ],
      "State": "ENABLED",
      "Priority": 1,
      "JobQueueName": "testjobqueue"
    }
  },
  "Outputs": {
        "TestOutputName": {
            "Description": "job queue arn",
            "Value": {
                "Ref": "MyJobQueue"
            },
            "Export": {
                "Name": {
                    "Fn::Sub": "${AWS::StackName}-MyJobQueueExport"
                }
            }
        }
    }

}
}

错误:

Template validation error: Invalid template resource property 'TestOutputName'

我在“TestOutputName'”的位置收到模板验证错误任何人都可以告诉我应该在这里给予什么。

和In" Fn :: Sub":" $ {AWS :: StackName} -MyJobQueueExport"

MyJobQueueExport应该与堆栈名称相同吗?

2 个答案:

答案 0 :(得分:2)

您只是错放了一个右括号,导致Outputs最终低于Resources。试试这个:

{
    "Resources": {
        "MyJobQueue": {
            "Properties": {
                "ComputeEnvironmentOrder": [
                    {
                        "ComputeEnvironment": "testcompenv",
                        "Order": 1
                    }
                ],
                "JobQueueName": "testjobqueue",
                "Priority": 1,
                "State": "ENABLED"
            },
            "Type": "AWS::Batch::JobQueue"
        }
    },
    "Outputs": {
        "TestOutputName": {
            "Description": "job queue arn",
            "Export": {
                "Name": {
                    "Fn::Sub": "${AWS::StackName}-MyJobQueueExport"
                }
            },
            "Value": {
                "Ref": "MyJobQueue"
            }
        }
    }
}

答案 1 :(得分:0)

我收到此错误:

  

模板验证错误-无效的模板资源属性'prod'

在“参数”部分中,我不小心包含了一个映射:

EnvType:
    Description: Environment Name
    Default: test
    Type: String
    AllowedValues:  [dev, test, prod]
DisableTerminate:
    prod:
      YesorNo: 'true'
    test:
      YesorNo: 'false'
    dev:
      YesorNo: 'false'

在正确的部分中放置DisableTerminate映射可以解决此问题。

相关问题