【问题标题】:AWS CloudFormation template adding IP address to Route 53 record, not URLAWS CloudFormation 模板将 IP 地址添加到 Route 53 记录,而不是 URL
【发布时间】:2016-11-20 22:02:03
【问题描述】:

我正在使用 Amazon Web Services CloudFormation 解决方案来创建数据库 (RDS)、一些服务器 (ElasticBeanstalk) 并添加一些 DNS 条目 (Route 53)。

我为此使用的模板运行良好,所有服务都根据需要创建,但 DNS (CNAME) 记录除外。

为了获取要添加的 CNAME 记录的值,我使用了 Fn::GetAtt,并获取了 ElasticBeanstalk 对象的 EndpointURLAmazon docs 建议这个抓-

此环境的 LoadBalancer 的 URL。

示例: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?我遇到了同样的问题,找不到其他人报告此问题。
  • 不,很遗憾没有解决方案。
  • 谢谢!如果我弄清楚了,会发布答案。
  • 为了让其他人清楚地看到这一点,我认为问题在于 CloudFormation 的 Elastic Beanstalk 支持,因为我试图将域公开为导出(没有 CloudFront/Route53)并看到同样的问题。

标签: amazon-web-services amazon-cloudformation amazon-route53 amazon-elastic-beanstalk


【解决方案1】:

据我所知,这只发生在 Beanstalk 环境类型为“single instance”时,即 CloudFormation 模板中有类似以下内容时:

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

AWS docs 状态:

在单实例环境中,elasticbeanstalk.com 子域解析为附加到运行您的应用程序的实例的弹性 IP 地址。

{ "Fn::GetAtt": [ "EBObjectName", "EndpointURL" ]} 不只是返回 elasticbeanstalk.com 子域,这似乎很奇怪,这可能是 CloudFormation 问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 2016-07-18
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多