0

I'm completely new to AWS so sorry for asking some lame questions.

This is a part of my ecs.yml file which I'm trying to deploy via CloudFormation:

AWSTemplateFormatVersion: "2010-09-09" Parameters: SubnetID: Type: String Resources: VPC: Type: AWS::EC2::VPC Properties: CidrBlock: '10.0.0.0/16' PublicSubnetOne: Type: AWS::EC2::Subnet Properties: AvailabilityZone: Fn::Select: - 0 - Fn::GetAZs: { Ref: 'AWS::Region' } VpcId: !Ref 'VPC' CidrBlock: '10.0.1.0/24' MapPublicIpOnLaunch: true ... Service: Type: AWS::ECS::Service Properties: ServiceName: tui-task-service Cluster: !Ref Cluster TaskDefinition: !Ref TaskDefinition DesiredCount: 1 LaunchType: FARGATE NetworkConfiguration: AwsvpcConfiguration: AssignPublicIp: ENABLED Subnets: - !Ref SubnetID SecurityGroups: - !GetAtt ContainerSecurityGroup.GroupId 

At the moment I pass an existing subnet id (I assume it comes from the VPC which is created by default when you create an AWS account) like this:

aws cloudformation create-stack --stack-name my-deployment --template-body file://ecs.yml \ --capabilities CAPABILITY_NAMED_IAM \ --parameters 'ParameterKey=SubnetID,ParameterValue=subnet-069412dc3b3a4a639' 

I want to reference the subnet I create at the beginning of the template, how exactly do I do that? I tried !GetAtt PublicSubnetOne, but not sure which property to reference.

1 Answer 1

3

You are on the right track. To reference the ID of the Subnet you create at the beginning of your template you can use !GetAtt PublicSubnetOne.SubnetId or !Ref PublicSubnetOne

To determine the available attributes for a specific resource look at the Return Values for the resource type. e.g. AWS::EC2::Subnet

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the ID of the subnet.

In this case the !Ref function returns the ID of the subnet which is also what the !GetAtt function does when you specify the SubnetId attribute

SubnetId

The ID of the Subnet

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.