経緯
セキュリティグループをクロススタックで使いたくてyamlでテンプレートを書いていたものの、Outputsの結果がIDになっているのは確認できているのに
#/SecurityGroups/0: expected type: String, found: JSONObject
とか言われてぐぬぬ…となっていた。
うまくいく方法を見つけた結果からすると、最終的に行き着くのは「一旦フルで書いてみよう」というところ…なのかもしれない。
修正前
MountTarget1:
Type: AWS::EFS::MountTarget
Properties:
FileSystemId:
Ref: NfsBatch
SubnetId:
Ref: Subnet
SecurityGroups:
- ImportValue: NfsSecurityGroupId
修正後
MountTarget1:
Type: AWS::EFS::MountTarget
Properties:
FileSystemId:
Ref: NfsBatch
SubnetId:
Ref: Subnet
SecurityGroups:
- Fn::ImportValue: NfsSecurityGroupId
終わりに
関数名ちゃんと全部書こうぜという、かれこれ1時間近く悩んでいたのがバカらしくなるような結果でした。
(ほかにもやりようはあるのかもしれない)
Fn::がついていないImportValueで実行した結果がMappingじゃなくてJSONObjectとして認識されているのがちょっと疑問。