0

我正在尝试创建作业队列模板,在该模板中声明输出值,以便可以将作业队列导入其他堆栈。

模板:

{
"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 应该与堆栈名称相同?

4

2 回答 2

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"
            }
        }
    }
}
于 2017-12-23T20:47:40.983 回答
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 映射放在正确的部分可以解决问题。

于 2018-07-11T01:45:27.660 回答