Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Route-53-Vorlagenausschnitte
Themen
Amazon Route 53-Ressourcendatensatz mit gehosteten Zone oder ID
Wenn Sie einen Amazon Route 53-Ressourcendatensatz erstellen, müssen Sie die Hosting-Zone angeben, in der Sie ihn hinzufügen möchten. CloudFormation bietet zwei Möglichkeiten, eine Hosting-Zone anzugeben:
-
Sie können die gehostete Zone mit der Eigenschaft
HostedZoneId
explizit angeben. -
Sie können die Hosting-Zone mithilfe der
HostedZoneName
Eigenschaft CloudFormation gefunden haben. Wenn Sie dieHostedZoneName
Eigenschaft verwenden und es mehrere Hosting-Zonen mit demselben Namen gibt, wird der Stack CloudFormation nicht erstellt.
Hinzufügen RecordSet mit HostedZoneId
In diesem Beispiel wird ein Amazon Route 53-Ressourcendatensatz hinzugefügt, der einen SPF
Datensatz für den Domainnamen enthältmysite.example.com
, der die HostedZoneId
Eigenschaft zur Angabe der Hosting-Zone verwendet.
JSON
"myDNSRecord" : { "Type" : "AWS::Route53::RecordSet", "Properties" : { "HostedZoneId" : "Z3DG6IL3SJCGPX", "Name" : "mysite.example.com.", "Type" : "SPF", "TTL" : "900", "ResourceRecords" : [ "\"v=spf1 ip4:192.168.0.1/16 -all\"" ] } }
YAML
myDNSRecord: Type: AWS::Route53::RecordSet Properties: HostedZoneId: Z3DG6IL3SJCGPX Name: mysite.example.com. Type: SPF TTL: '900' ResourceRecords: - '"v=spf1 ip4:192.168.0.1/16 -all"'
Hinzufügen RecordSet mit HostedZoneName
In diesem Beispiel wird ein Amazon Route 53-Ressourcendatensatz für den Domänennamen „mysite.example.com“ mit der Eigenschaft HostedZoneName
zur Angabe der gehosteten Zone hinzugefügt.
JSON
"myDNSRecord2" : { "Type" : "AWS::Route53::RecordSet", "Properties" : { "HostedZoneName" : "example.com.", "Name" : "mysite.example.com.", "Type" : "A", "TTL" : "900", "ResourceRecords" : [ "192.168.0.1", "192.168.0.2" ] } }
YAML
myDNSRecord2: Type: AWS::Route53::RecordSet Properties: HostedZoneName: example.com. Name: mysite.example.com. Type: A TTL: '900' ResourceRecords: - 192.168.0.1 - 192.168.0.2
Wird RecordSetGroup zum Einrichten gewichteter Ressourcendatensätze verwendet
In diesem Beispiel wird eine AWS::Route53::RecordSetGruppe verwendet, um zwei CNAME-Einträge für „example.com“ einzurichten. Gehostete Zone. Die Eigenschaft RecordSets
enthält die CNAME-Datensätze für den DNS-Namen „mysite.example.com“. Jeder Datensatz enthält eine Kennung (SetIdentifier
) und eine Gewichtung (Weight
). Der Anteil des Internetverkehrs, der zu den Ressourcen geleitet wird, basiert auf den folgenden Berechnungen:
-
Frontend One
:140/(140+60)
=140/200
= 70% -
Frontend Two
:60/(140+60)
=60/200
= 30%
Weitere Informationen über gewichtete Ressourcendatensätze finden Sie unter Gewichtetes Routing im Entwicklerhandbuch für Amazon Route 53.
JSON
"myDNSOne" : { "Type" : "AWS::Route53::RecordSetGroup", "Properties" : { "HostedZoneName" : "example.com.", "Comment" : "Weighted RR for my frontends.", "RecordSets" : [ { "Name" : "mysite.example.com.", "Type" : "CNAME", "TTL" : "900", "SetIdentifier" : "Frontend One", "Weight" : "140", "ResourceRecords" : ["example-ec2.amazonaws.com"] }, { "Name" : "mysite.example.com.", "Type" : "CNAME", "TTL" : "900", "SetIdentifier" : "Frontend Two", "Weight" : "60", "ResourceRecords" : ["example-ec2-larger.amazonaws.com"] } ] } }
YAML
myDNSOne: Type: AWS::Route53::RecordSetGroup Properties: HostedZoneName: example.com. Comment: Weighted RR for my frontends. RecordSets: - Name: mysite.example.com. Type: CNAME TTL: '900' SetIdentifier: Frontend One Weight: '140' ResourceRecords: - example-ec2.amazonaws.com - Name: mysite.example.com. Type: CNAME TTL: '900' SetIdentifier: Frontend Two Weight: '60' ResourceRecords: - example-ec2-larger.amazonaws.com
Wird verwendet RecordSetGroup , um einen Alias-Ressourcendatensatz einzurichten
In den folgenden Beispielen wird eine AWS::Route53::RecordSetGruppe verwendet, um einen Alias-Ressourcendatensatz mit dem Namen einzurichtenexample.com
, der den Datenverkehr an einen ELB-Load-Balancer der Version 1 (Classic) und einen Load Balancer der Version 2 (Anwendung oder Netzwerk) weiterleitet. Die AliasTargetEigenschaft gibt die Hosting-Zonen-ID und den DNS-Namen für die myELB
LoadBalancer
mithilfe der GetAtt
systemeigenen Funktion an. GetAtt
ruft verschiedene Eigenschaften der myELB
Ressource ab, je nachdem, ob Sie den Datenverkehr an einen Load Balancer der Version 1 oder Version 2 weiterleiten:
-
Version 1 Load Balancer:
CanonicalHostedZoneNameID
undDNSName
-
Version 2 Load Balancer:
CanonicalHostedZoneID
undDNSName
Weitere Informationen über Alias-Ressourcendatensätze finden Sie unter Wählen zwischen Alias- und Nicht-Alias-Datensätzen im Route-53-Entwicklerhandbuch.
JSON für Version 1 Load Balancer
"myELB" : { "Type" : "AWS::ElasticLoadBalancing::LoadBalancer", "Properties" : { "AvailabilityZones" : [ "us-east-1a" ], "Listeners" : [ { "LoadBalancerPort" : "80", "InstancePort" : "80", "Protocol" : "HTTP" } ] } }, "myDNS" : { "Type" : "AWS::Route53::RecordSetGroup", "Properties" : { "HostedZoneName" : "example.com.", "Comment" : "Zone apex alias targeted to myELB LoadBalancer.", "RecordSets" : [ { "Name" : "example.com.", "Type" : "A", "AliasTarget" : { "HostedZoneId" : { "Fn::GetAtt" : ["myELB", "CanonicalHostedZoneNameID"] }, "DNSName" : { "Fn::GetAtt" : ["myELB","DNSName"] } } } ] } }
YAML für Version 1 Load Balancer
myELB: Type: AWS::ElasticLoadBalancing::LoadBalancer Properties: AvailabilityZones: - "us-east-1a" Listeners: - LoadBalancerPort: '80' InstancePort: '80' Protocol: HTTP myDNS: Type: AWS::Route53::RecordSetGroup Properties: HostedZoneName: example.com. Comment: Zone apex alias targeted to myELB LoadBalancer. RecordSets: - Name: example.com. Type: A AliasTarget: HostedZoneId: !GetAtt 'myELB.CanonicalHostedZoneNameID' DNSName: !GetAtt 'myELB.DNSName'
JSON für Version 2 Load Balancer
"myELB" : { "Type" : "AWS::ElasticLoadBalancing::LoadBalancer", "Properties" : { "Subnets" : [ {"Ref": "SubnetAZ1"}, {"Ref" : "SubnetAZ2"} ] } }, "myDNS" : { "Type" : "AWS::Route53::RecordSetGroup", "Properties" : { "HostedZoneName" : "example.com.", "Comment" : "Zone apex alias targeted to myELB LoadBalancer.", "RecordSets" : [ { "Name" : "example.com.", "Type" : "A", "AliasTarget" : { "HostedZoneId" : { "Fn::GetAtt" : ["myELB", "CanonicalHostedZoneID"] }, "DNSName" : { "Fn::GetAtt" : ["myELB","DNSName"] } } } ] } }
YAML für Version 2 Load Balancer
myELB: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: Subnets: - Ref: SubnetAZ1 - Ref: SubnetAZ2 myDNS: Type: AWS::Route53::RecordSetGroup Properties: HostedZoneName: example.com. Comment: Zone apex alias targeted to myELB LoadBalancer. RecordSets: - Name: example.com. Type: A AliasTarget: HostedZoneId: !GetAtt 'myELB.CanonicalHostedZoneID' DNSName: !GetAtt 'myELB.DNSName'
Alias-Ressourcendatensatz für eine Verteilung CloudFront
Im folgenden Beispiel wird ein Alias-A-Datensatz erstellt, der einen benutzerdefinierten Domänennamen auf eine bestehende CloudFront Distribution verweist. myHostedZoneID
wird angenommen, dass es sich entweder um einen Verweis auf eine tatsächliche AWS::Route53::HostedZone
Ressource in derselben Vorlage oder um einen Parameter handelt. myCloudFrontDistribution
bezieht sich auf eine AWS::CloudFront::Distribution
Ressource innerhalb derselben Vorlage. Der Aliaseintrag verwendet die standardmäßige CloudFront Hosting-Zonen-ID (Z2FDTNDATAQYW2
) und löst den Domainnamen der Distribution automatisch anhand vonFn::GetAtt
. Dieses Setup ermöglicht die Weiterleitung des Webverkehrs von der benutzerdefinierten Domain zur CloudFront Distribution, ohne dass eine IP-Adresse erforderlich ist.
Anmerkung
Wenn Sie Alias-Ressourcendatensätze erstellen, müssen Sie dies Z2FDTNDATAQYW2
für die HostedZoneId
Eigenschaft angeben. Alias-Ressourcendatensätze für CloudFront können nicht in einer privaten Zone erstellt werden.
JSON
{ "myDNS": { "Type": "AWS::Route53::RecordSetGroup", "Properties": { "HostedZoneId": { "Ref": "myHostedZoneID" }, "RecordSets": [ { "Name": { "Ref": "myRecordSetDomainName" }, "Type": "A", "AliasTarget": { "HostedZoneId": "Z2FDTNDATAQYW2", "DNSName": { "Fn::GetAtt": [ "myCloudFrontDistribution", "DomainName" ] }, "EvaluateTargetHealth": false } } ] } } }
YAML
myDNS: Type: AWS::Route53::RecordSetGroup Properties: HostedZoneId: !Ref myHostedZoneID RecordSets: - Name: !Ref myRecordSetDomainName Type: A AliasTarget: HostedZoneId: Z2FDTNDATAQYW2 DNSName: !GetAtt - myCloudFrontDistribution - DomainName EvaluateTargetHealth: false