如何为我的 beantalk 环境创建 Route53 DNS 记录?
How do I creating a Route53 DNS record for my beanstalk environment?
我想创建一个内部众所周知的 dns 名称,它指向我的(内部 ELBScheme)弹性 beanstalk 环境的 ELB,该环境托管内部 REST API。
我尝试添加如下所示的 .ebextensions 条目:
"eb-env-dns-name" : {
"Type" : "AWS::Route53::RecordSetGroup",
"Properties" : {
"HostedZoneName" : "mydomain.com.",
"Comment" : "alias targeted to elastic beanstalk LoadBalancer.",
"RecordSets" : [
{
"Name" : "eb-env.mydomain.com.",
"Type" : "A",
"AliasTarget" : {
"HostedZoneId" : "ABC123XYZ",
"DNSName" : { "Fn::GetAtt" : ["AWSEBLoadBalancer","DNSName"] }
}
}
]
}
}
我的想法是,我可以通过对域 "eb-env.mydomain.com" 进行 REST 调用来访问我的内部应用程序。
它没有失败,但也没有用:我在 Route53 上的托管区域中没有显示任何内容。
我找不到关于这些东西的有用文档 - 谁能给我举个例子,说明我如何使用 .ebextensions 机制来做到这一点?还是我应该单独编写 DNS 名称脚本?
在别名目标部分,您可以尝试使用 Canonical Hosted Zone ID。您是否已经在 ebextension 中拥有以下内容,或者我遗漏了什么。
"HostedZoneId" : { "Fn::GetAtt" : ["AWSEBLoadBalancer","CanonicalHostedZoneNameID"] }
意识到我将以错误的方式将特定于环境的资源放入 ebextensions(加上问题中的代码片段的其他一些错误意味着它永远无法工作)。
这就是我最终得到的适用于我的用例的东西。这样我就可以根据环境名称(不同的、可读的和明显命名的 url,用于集成、uat 和生产环境)为每个环境获得一个唯一的 URL。
Resources: {
"dnsResourceNname" : {
"Type" : "AWS::Route53::RecordSet",
"Properties" : {
"HostedZoneName" : "mydomain.com.",
"Comment" : "DNS name for envornment ELB.",
"Name" : {
"Fn::Join" : [ "", [
{ "Ref" : "AWSEBEnvironmentName" },
".mydomain.com."
] ]
},
"Type" : "CNAME",
"TTL" : "900",
"ResourceRecords" : [ { "Fn::GetAtt" : ["AWSEBLoadBalancer","DNSName"] } ]
}
}
}
我想创建一个内部众所周知的 dns 名称,它指向我的(内部 ELBScheme)弹性 beanstalk 环境的 ELB,该环境托管内部 REST API。
我尝试添加如下所示的 .ebextensions 条目:
"eb-env-dns-name" : {
"Type" : "AWS::Route53::RecordSetGroup",
"Properties" : {
"HostedZoneName" : "mydomain.com.",
"Comment" : "alias targeted to elastic beanstalk LoadBalancer.",
"RecordSets" : [
{
"Name" : "eb-env.mydomain.com.",
"Type" : "A",
"AliasTarget" : {
"HostedZoneId" : "ABC123XYZ",
"DNSName" : { "Fn::GetAtt" : ["AWSEBLoadBalancer","DNSName"] }
}
}
]
}
}
我的想法是,我可以通过对域 "eb-env.mydomain.com" 进行 REST 调用来访问我的内部应用程序。
它没有失败,但也没有用:我在 Route53 上的托管区域中没有显示任何内容。
我找不到关于这些东西的有用文档 - 谁能给我举个例子,说明我如何使用 .ebextensions 机制来做到这一点?还是我应该单独编写 DNS 名称脚本?
在别名目标部分,您可以尝试使用 Canonical Hosted Zone ID。您是否已经在 ebextension 中拥有以下内容,或者我遗漏了什么。
"HostedZoneId" : { "Fn::GetAtt" : ["AWSEBLoadBalancer","CanonicalHostedZoneNameID"] }
意识到我将以错误的方式将特定于环境的资源放入 ebextensions(加上问题中的代码片段的其他一些错误意味着它永远无法工作)。
这就是我最终得到的适用于我的用例的东西。这样我就可以根据环境名称(不同的、可读的和明显命名的 url,用于集成、uat 和生产环境)为每个环境获得一个唯一的 URL。
Resources: {
"dnsResourceNname" : {
"Type" : "AWS::Route53::RecordSet",
"Properties" : {
"HostedZoneName" : "mydomain.com.",
"Comment" : "DNS name for envornment ELB.",
"Name" : {
"Fn::Join" : [ "", [
{ "Ref" : "AWSEBEnvironmentName" },
".mydomain.com."
] ]
},
"Type" : "CNAME",
"TTL" : "900",
"ResourceRecords" : [ { "Fn::GetAtt" : ["AWSEBLoadBalancer","DNSName"] } ]
}
}
}