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

Amazon cloudformation 模板验证错误-无效的模板资源属性,amazon-cloudformation,aws-batch,Amazon Cloudformation,Aws Batch,我试图创建jobqueue模板,在其中声明输出值,以便将jobqueue导入到其他堆栈中 模板: { "Resources": { "MyJobQueue": { "Type": "AWS::Batch::JobQueue", "Properties": { "ComputeEnvironmentOrder": [ { "Order": 1, "ComputeEnvironment": "testcompen

我试图创建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”的位置出现了模板验证错误。有人能告诉我应该在这里给出什么吗

在“Fn::Sub”中:“${AWS::StackName}-MyJobQueueExport”


MyJobQueueExport应该与堆栈名称相同?

您只是错放了一个右括号,导致
输出结果
位于
资源的下方。试试这个:

{
    "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"
            }
        }
    }
}

您只是错放了一个结束括号,导致
输出
位于
资源
下方。试试这个:

{
    "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"
            }
        }
    }
}
我得到了这个错误:

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

在“我的参数”部分中,我意外地包含了一个映射:

EnvType:
    Description: Environment Name
    Default: test
    Type: String
    AllowedValues:  [dev, test, prod]
DisableTerminate:
    prod:
      YesorNo: 'true'
    test:
      YesorNo: 'false'
    dev:
      YesorNo: 'false'
将DisableTerminate映射放在正确的部分解决了问题。

我遇到了以下错误:

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

在“我的参数”部分中,我意外地包含了一个映射:

EnvType:
    Description: Environment Name
    Default: test
    Type: String
    AllowedValues:  [dev, test, prod]
DisableTerminate:
    prod:
      YesorNo: 'true'
    test:
      YesorNo: 'false'
    dev:
      YesorNo: 'false'
将DisableTerminate映射放在正确的部分解决了问题