Quantcast
Channel: Active questions tagged amazon-ec2 - Stack Overflow
Viewing all articles
Browse latest Browse all 29539

Value of property Parameters must be an object with String (or simple type) properties

$
0
0

I am trying to pass parameters to one of the nested stacks by populating the values from another nested stacks output.

And i do not want any cross-referencing (unless there is no way around it)

The idea is pretty straight forward.

RootStack

-NstdStackVPC
-NstdStackSG
-NstdStackEC2

The problem is on the last nested stack while creating EC2. If i created the resource in the root stack directly the EC2 gets created

Description: RootStack
Parameters:
 MyKeyName:
  Type: AWS::EC2::KeyPair::KeyName
  Default: my-test-key
 EC2ImageId:
  Type: AWS::EC2::Image::Id
  Default: ami-0dxxxxa

Resources:
 NstdStackVPC ......
 NstdStackSG ......

 EC2Host: 
  Type: AWS::EC2::Instance
  Properties:
   SubnetId: !GetAtt NstdStackVPC.Outputs.VPCPubSubnet
   ImageId: !Ref EC2ImageId
   InstanceType: t2.micro
   KeyName: !Ref MyKeyName
   SecurityGroupIds: 
   - !GetAtt NstdStackSG.Outputs.SecGrp4EC2Host

But if i try to create the EC2 as a nested stack

AWSTemplateFormatVersion: '2010-09-09'
Description: NstdStackEC2.
Parameters:
 myNstdKeyName:
  Type: AWS::EC2::KeyPair::KeyName
 myNstdImageId:
  Type: AWS::EC2::Image::Id
 myNstdSecGrp:
  Type: AWS::EC2::SecurityGroup::Id
 myNstdEC2HostSubnet:
  Type: AWS::EC2::Subnet::Id

Resources:
 EC2Host: 
  Type: AWS::EC2::Instance
  Properties:
   SubnetId: !Ref myNstdEC2HostSubnet
   ImageId: !Ref myNstdImageId
   InstanceType: t2.micro
   KeyName: !Ref myNstdKeyName
   SecurityGroupIds:
    - Ref myNstdSecGrp  

By changing the root stack as follows

AWSTemplateFormatVersion: '2010-09-09'
Description: RootStack
Parameters:
 MyKeyName:
  Type: AWS::EC2::KeyPair::KeyName
  Default: my-test-key
 EC2ImageId:
  Type: AWS::EC2::Image::Id
  Default: ami-0dxxxxa

Resources:
 NstdStackVPC ......
 NstdStackSG ......
 NstdStackEC2:
  Type: AWS::CloudFormation::Stack
  Properties:
   TemplateURL: https://bkt.s3.eu-central-1.amazonaws.com/NstdEC2Host.yml
   Parameters:
    myNstdKeyName: !Ref MyKeyName
    myNstdImageId: !Ref EC2ImageId
    myNstdSecGrp: !GetAtt NstdStackSG.Outputs.SecGrp4BasHost
    myNstdEC2HostSubnet: !GetAtt NstdStackVPC.Outputs.VPCPubSubnet   

It gives me the following error: Value of property Parameters must be an object with String (or simple type) properties

tried removing all the parameters to try one by one. But it fails on everything. Even for the parameters that are being referenced directly from the root stack i.e., MyKeyName, EC2ImageId


Viewing all articles
Browse latest Browse all 29539

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>