cloudformation to create ec2 using volume attachment for root.

0

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"

1 Antwort
1

I think you may have a simple syntax error here.

Have a look at the YAML code snippet on this page: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html

You need to use !Ref to reference the names of the other resources.

Hope this helps

beantwortet vor 2 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen