Как получить идентификатор экземпляра для узла докера в шаблоне облачной информации - PullRequest
0 голосов
/ 20 марта 2019

У меня есть простой стек CloudFormation, который создается с помощью шаблона. Сервер, на котором размещен один Docker-контейнер.

Это часть шаблона, которая создает хост и контейнер:

  ContainerHostInstances:
    Type: "AWS::AutoScaling::LaunchConfiguration"
    DependsOn: "AttachGateway"
    Properties:
      AssociatePublicIpAddress: true
      ImageId: "ami-0302f3ec240b9d23c"
      SecurityGroups:
        - Ref: "NginxSecurityGroup"
      InstanceType: "t3.nano"
      IamInstanceProfile: !Ref "ECSHostEC2InstanceProfile"
      KeyName: "test-key-pair"
      UserData:
        Fn::Base64: !Sub |
          #!/bin/bash -xe
          echo ECS_CLUSTER=${MyCluster} >> /etc/ecs/ecs.config
          yum install -y aws-cfn-bootstrap
          /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource ECSAutoScalingGroup --region ${AWS::Region}

...

  MyTask:
    Type: "AWS::ECS::TaskDefinition"
    Properties:
      Family: "my-task-family"
      ContainerDefinitions:
        - Name: "nginx"
          Essential: true
          Image: "image_url/nginx:latest"
          MemoryReservation: 300
          LogConfiguration:
            LogDriver: "awslogs"
            Options:
              awslogs-group: "nginx"
              awslogs-region: !Ref "AWS::Region"
              awslogs-stream-prefix: "prefix"
              awslogs-datetime-format: "%Y-%m-%d %H:%M:%S.%L"
          PortMappings:
            - ContainerPort: 80
              HostPort: 80

Моя проблема в том, что я не могу связать эластичный IP-адрес в шаблоне. Я могу сделать это с помощью консоли, но я хочу, чтобы это было возможно внутри шаблона.

Я пробовал так:

  ElasticIPAssoc:
    Type: AWS::EC2::EIPAssociation
    Properties:
      AllocationId: "some_id"
      InstanceId: "HOW CAN I GET THIS VALUE"
      NetworkInterfaceId: "OR THAT VALUE"

Я не вижу способа получить instanceId или соответствующий ему NetworkInterfaceId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...