Template contains errors.: Template format error: Any Properties member must be a JSON object.
CloudFormationのデバッグのしづらさは、きっとAWSの陰謀に違いない。
わからん。わからんすぎる。
なにがあった
セキュリティグループでね、当該グループ自身をセキュリティ許可のSourceにする、
ちょい特殊な定義をCloudFormationでしたかったんですよ。
無論、”AWS::EC2::SecurityGroup”の定義の中で自分自身を参照すると循環参照になっちゃうんで、
こうしたわけです。
[text highlight=”1,16,20,29,33″]
“ElbSg” : {
“Type” : “AWS::EC2::SecurityGroup”,
“Properties” : {
“GroupDescription” : “HTTP and HTTPS Allow”,
“VpcId” : { “Ref” : “VpcId” },
}
},
“ElbSgIngress” : {
“Type” : “AWS::EC2::SecurityGroupIngress”,
“Properties” : [ {
“IpProtocol” : “tcp”,
“FromPort” : “80”,
“ToPort” : “80”,
“GroupId” : { “Fn::GetAtt”: [
“ElbSg”,
“GroupId”
] },
“SourceSecurityGroupId” : { “Fn::GetAtt”: [
“ElbSg”,
“GroupId”
] }
},
{
“IpProtocol” : “tcp”,
“FromPort” : “443”,
“ToPort” : “443”,
“GroupId” : { “Fn::GetAtt”: [
“ElbSg”,
“GroupId”
] },
“SourceSecurityGroupId” : { “Fn::GetAtt”: [
“ElbSg”,
“GroupId”
] }
} ]
}
[/text]
そしたらCloudFormationのスタック作成時にこうエラーが出るわけですな。
Template contains errors.: Template format error: Any Properties member must be a JSON object.
安西先生・・エラーの意味が・・わかりません・・。
で、どうした
ググったら、同じようにハマった人をForumで発見しました。
https://forums.aws.amazon.com/thread.jspa?threadID=106451
If you want multiple rules, you need to create multiple AWS::EC2::SecurityGroupIngress resources.
そうだったのかー。こうすればよかったのね。
許可したいエントリ毎に、”AWS::EC2::SecurityGroupIngress”を定義する。
[text highlight=”1,16,20,33,37″]
“ElbSg” : {
“Type” : “AWS::EC2::SecurityGroup”,
“Properties” : {
“GroupDescription” : “HTTP and HTTPS Allow”,
“VpcId” : { “Ref” : “VpcId” },
}
},
“ElbSgHTTPIngress” : {
“Type” : “AWS::EC2::SecurityGroupIngress”,
“Properties” : {
“IpProtocol” : “tcp”,
“FromPort” : “80”,
“ToPort” : “80”,
“GroupId” : { “Fn::GetAtt”: [
“ElbSg”,
“GroupId”
] },
“SourceSecurityGroupId” : { “Fn::GetAtt”: [
“ElbSg”,
“GroupId”
] }
}
},
“ElbSgHTTPSIngress” : {
“Type” : “AWS::EC2::SecurityGroupIngress”,
“Properties” : {
“IpProtocol” : “tcp”,
“FromPort” : “443”,
“ToPort” : “443”,
“GroupId” : { “Fn::GetAtt”: [
“ElbSg”,
“GroupId”
] },
“SourceSecurityGroupId” : { “Fn::GetAtt”: [
“ElbSg”,
“GroupId”
] }
}
}
[/text]
とおった・・。
CloudFormation、Designerとかで具体的なエラー箇所を示してくれるとか、
もうちょっとなんとかなりまへんかねえ・・。
技術評論社
売り上げランキング: 2,102