Как получить идентификатор инстанса ECS, указанный в шаблоне формирования облака?
Я создаю шаблон формирования облака (формат YML) для своей службы ECS и застрял в целевой группе балансировщика нагрузки, он не смог подключиться к моему экземпляру ECS и пытался добавить Targets
обратившись к официальной документации AWS https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html
Ниже приведена моя целевая группа, и когда я несколько раз прекращаю запуск (который завершает) свой экземпляр, мой идентификатор экземпляра будет постоянно меняться и не будет статическим, как идентификаторы VPC или подсети, и как я могу динамически создавать значение в поле идентификатора целей?
TargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
Matcher:
HttpCode: "200"
Name: "foo"
Port: "8080"
Protocol: "HTTP"
Targets:
Id: String // This I need to build dynamically
Port: 8080
TargetType: "instance"
UnhealthyThresholdCount: 3
VpcId: "vpc-79251d11"
Примечание. Я попытался найти ресурсы EC2 и нашел этот https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2.html, но мне это не помогло. Также я использую ASG и LC для создания своего экземпляра ECS.
1 ответ
По материалам обсуждения в чате.
Поскольку экземпляры будут работать в группе автоматического масштабирования, нет необходимости указывать их идентификаторы непосредственно вTargetGroup
ресурс типа AWS::ElasticLoadBalancingV2::TargetGroup
.
Вместо TargetGroup
ARN должен быть указан в AWS::AutoScaling::AutoScalingGroup
ресурс. В частности, параметр TargetGroupARNs:
Список имен ресурсов Amazon (ARN) целевых групп, которые нужно связать с группой Auto Scaling. Экземпляры регистрируются как цели в целевой группе, и трафик направляется в целевую группу.
Например, поскольку ваш AWS::ElasticLoadBalancingV2::TargetGroup
ресурс называется TargetGroup
, при определении вашей ASG вы должны сделать следующее (если тот же файл шаблона):
MyASG:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
# only one parameter shown
TargetGroupARNs:
- !Ref TargetGroup
Естественно, вы пропустите Targets
параметр в вашем TargetGroup
. Это сделаетMyASG
автоматически регистрировать / отменять регистрацию ваших экземпляров в TargetGroup
.