Шаблон AWS CloudFormation добавляет IP-адрес к записи Route 53, а не URL

amazon-web-services amazon-cloudformation amazon-route53 amazon-elastic-beanstalk

539 просмотра

1 ответ

4942 Репутация автора

Я использую решение Amazon Web Services CloudFormation для создания БД (RDS), некоторых серверов (ElasticBeanstalk) и добавления некоторых записей DNS (маршрут 53).

Шаблон, который я использую для этого, работает нормально, и все службы создаются по мере необходимости, за исключением записи DNS (CNAME).

Чтобы получить значение добавляемой записи CNAME, я использую Fn::GetAttи EndpointURLсобираю объект ElasticBeanstalk. Документы Амазонки предполагают, что этот захват -

URL-адрес LoadBalancer для этой среды.

Пример: awseb-myst-myen-132MQC4KRLAMD-1371280482.us-east-1.elb.amazonaws.com

Однако проблема в том, что вместо этого он захватывает IP-адрес. Из-за этого CNAME не работает.

Кто-нибудь сталкивался с этой проблемой раньше, и если да, то как обходилось?

Вот соответствующая выдержка из моего шаблона -

"RecordSetObject": {
  "Type": "AWS::Route53::RecordSet",
  "Properties": {
    "HostedZoneId": "Q1W2E3R4T5Y6U7",
    "Name": {
      "Fn::Join": [
        "",
        [
          { "Ref": "EnvironmentName" },
          "-",
          { "Ref": "ApplicationName" },
          ".",
          "super.secret.url",
          "."
        ]
      ]
    },
    "ResourceRecords": [
      {
        "Fn::GetAtt": [
          "EBObjectName",
          "EndpointURL"
        ]
      }
    ],
    "Type": "CNAME",
    "TTL": "300"
  }
}
Автор: David Gard Источник Размещён: 18.07.2016 10:23

Ответы (1)


0 плюса

156 Репутация автора

Насколько я вижу, это происходит только тогда, когда тип среды Beanstalk является « единичным экземпляром », т.е. когда в шаблоне CloudFormation есть что-то похожее на следующее:

{
    "Namespace": "aws:elasticbeanstalk:environment",
    "OptionName": "EnvironmentType",
    "Value": "SingleInstance"
}

Документы AWS заявляют:

В среде с одним экземпляром субдомен эластичных доменов.com преобразуется в эластичный IP-адрес, связанный с экземпляром, на котором выполняется ваше приложение.

Кажется странным, что { "Fn::GetAtt": [ "EBObjectName", "EndpointURL" ]}не просто возвращается поддомен эластичных доменов, что, возможно, является проблемой CloudFormation.

Автор: mdjnewman Размещён: 30.11.2016 03:46
Вопросы из категории :
32x32