Java JSON格式错误Amzon EC2实例创建

Java JSON格式错误Amzon EC2实例创建,java,json,amazon-web-services,amazon-ec2,Java,Json,Amazon Web Services,Amazon Ec2,我正在通过JavaEclipse创建Amazon堆栈 下面的代码行正在抛出错误 csr.setTemplateURL("https://s3.amazonaws.com/cloudformation-templates-us-east- 1/AutoScalingMultiAZSample.template"); 我得到的错误如下: 捕获的异常:参数:[KeyName]必须具有值(服务:AmazonCloudFormation;状态代码:400;错误代码:ValidationError;请求

我正在通过JavaEclipse创建Amazon堆栈

下面的代码行正在抛出错误

csr.setTemplateURL("https://s3.amazonaws.com/cloudformation-templates-us-east-  1/AutoScalingMultiAZSample.template");
我得到的错误如下:

捕获的异常:参数:[KeyName]必须具有值(服务:AmazonCloudFormation;状态代码:400;错误代码:ValidationError;请求ID:9363d711-3535-11e4-8cf2-913ef42879cb) 回复状态代码:400

我的json模板url是


请在这方面提供帮助,以检测错误的确切来源。

好的,我尝试使用在线验证器验证您的json模式

我只是复制了你的json模式并粘贴在那里。它说无效的模式应为{在第1行。好的,我必须将开始括号和结束括号放在您的模式之间。但它在最后一行再次给出了错误。额外括号}。所以我不得不把它拿走。然后验证json模式。这意味着您在模式的某个地方添加了一个额外的结束括号}

我认为你犯错误的地方是:

"InstanceSecurityGroup" : {
      "Type" : "AWS::EC2::SecurityGroup",
      "Properties" : {
        "GroupDescription" : "Enable SSH access and HTTP from the load balancer only",
        "SecurityGroupIngress" : [ {
          "IpProtocol" : "tcp",
          "FromPort" : "22",
          "ToPort" : "22",
          "CidrIp" : { "Ref" : "SSHLocation"}
        },
        {
          "IpProtocol" : "tcp",
          "FromPort" : { "Ref" : "WebServerPort" },
          "ToPort" : { "Ref" : "WebServerPort" },
          "SourceSecurityGroupOwnerId" : {"Fn::GetAtt" : ["ElasticLoadBalancer", "SourceSecurityGroup.OwnerAlias"]},
          "SourceSecurityGroupName" : {"Fn::GetAtt" : ["ElasticLoadBalancer", "SourceSecurityGroup.GroupName"]}
        } ]
      }
    }//Extra Bracket i think so
  },

  "Outputs" : {
    "URL" : {
      "Description" : "The URL of the website",
      "Value" :  { "Fn::Join" : [ "", [ "http://", { "Fn::GetAtt" : [ "ElasticLoadBalancer", "DNSName" ]}]]}
    }
  }
}

为什么URL中嵌入了一串空格?这是一个输入错误还是源中的URL中的错误?即使在删除括号后,我在eclipse中也会遇到相同的错误。我在中验证了架构,在那里它是有效的,而没有删除括号。但是如果删除括号,它将显示为解析错误。请帮助。