Как получить instanceId экземпляра Elastic Beanstalk EC2 в облачной форме? - PullRequest
0 голосов
/ 05 июня 2018

Как получить instanceId экземпляра Elastic Beanstalk EC2 в облачной форме?

Я создал эластичный бобовый стебель, используя elasticbeanstalk Template и elasticBeanstalk environment.Теперь мне нужно где-то сослаться на instanceId этого EB.Как я могу сделать это в облачной информации?

Или я могу использовать какой-то обходной путь, чтобы получить базовый экземпляр EC2 от моего EB, а затем просто получить instanceID этого EC2 (который работает).

Вот часть моего шаблона.У меня есть EIP, и я хочу связать его с instanceId моего EB EC2.Последняя строка не работает (instanceId)

Resources:
  ProxyEIP:
    Type: "AWS::EC2::EIP"
  ProxyEIPAssocation:
     Type: "AWS::EC2::EIPAssociation"
     Properties:
      InstanceId: !GetAtt ProxyEnvironment.InstanceId

У меня есть базовая конфигурация для моего эластичного бобового стебля.Здесь я хочу создать свойство среды для моего IP.

  ProxyConfiguration:
    Type: AWS::ElasticBeanstalk::ConfigurationTemplate
    Properties:
      ApplicationName: !ImportValue ProxyApplication
      OptionSettings:
      ..
      - Namespace: aws:elasticbeanstalk:application:environment
        OptionName: NGINX_IP
        Value: !Ref ProxyEIP

, которое используется моей средой

  ProxyEnvironment:
    Type: AWS::ElasticBeanstalk::Environment
    Properties:
      EnvironmentName: !Sub "Proxy-${Environment}"
      ApplicationName: !ImportValue ProxyApplication
      TemplateName: !Ref ProxyConfiguration
      CNAMEPrefix: !Sub "nginx-${Environment}"

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете использовать CloudFormation CustomResource для вызова лямбда-функции.

Если ваша лямбда будет описывать экземпляры Elastic Compute Cloud на основе ключа тегов, предоставленного ElasticBeanstalk для экземпляров EC2, получите идентификатор экземпляра.

Функция лямбда отправит ответ конечной точке CloudFormation

...