Hello I am trying to create one EC2 using cloudformation. The requirement is to use volume attachment with a snapshot id. This snapshot id is coming from my AMI and the snapshot id provided is the root device. (AMI only consist of one snapshot)
I got the error message: Property ImageId cannot be empty when deploying the resource.
When I input the ImageId for AWS::EC2::Instance, it will crash with AWS::EC2::VolumeAttachment property.
Can someone help to modify my template and point out how can I fix this issue?
---
Description: "AWS CloudFormation sample template. Create a new EC2 instance"
Resources:
myEC2Instance:
Properties:
IamInstanceProfile: ec2role
InstanceType: t2.micro
SecurityGroupIds:
- sg-123456
SubnetId: subnet-123456
Tags:
-
Key: Name
Value: ec2test
Type: "AWS::EC2::Instance"
myMountPoint:
Properties:
Device: /dev/xvda
InstanceId: myEC2Instance
VolumeId: myVolume
Type: "AWS::EC2::VolumeAttachment"
myVolume:
Properties:
AvailabilityZone: !GetAtt myEC2Instance.AvailabilityZone
Size: 10
SnapshotId: snap-123456
Tags:
-
Key: Name
Value: ebstest
VolumeType: gp2
Size: 10
Type: "AWS::EC2::Volume"