Route-53-Vorlagenausschnitte - AWS CloudFormation

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

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 die HostedZoneName 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 ein AWS: :Route53:: verwendetRecordSetGroup, um zwei CNAME Datensätze für „example.com“ einzurichten. Gehostete Zone. Die RecordSets Eigenschaft enthält die CNAME Datensätze für den Namen „mysite.example.com“. DNS 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 ein AWS: :Route53:: verwendet, RecordSetGroup um einen Alias-Ressourcendatensatz mit dem Namen einzurichtenexample.com, der den Datenverkehr an einen Load Balancer der ELB Version 1 (Classic) und einen Load Balancer der Version 2 (Anwendung oder Netzwerk) weiterleitet. Die AliasTargetEigenschaft gibt mithilfe der systeminternen Funktion die ID und den DNS Namen der gehosteten Zone für myELB LoadBalancer an. GetAtt GetAttruft 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 und DNSName

  • Version 2 Load Balancer: CanonicalHostedZoneID und DNSName

Weitere Informationen über Alias-Ressourcendatensätze finden Sie unter Wählen zwischen Alias- und Nicht-Alias-Datensätzen im Route-53-Entwicklerhandbuch.

JSONfür Load Balancer der Version 1

"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"] } } } ] } }

YAMLfür Load Balancer der Version 1

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'

JSONfür Load Balancer der Version 2

"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"] } } } ] } }

YAMLfür Load Balancer der Version 2

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 Distribution CloudFront

Im folgenden Beispiel wird ein Aliasdatensatz erstellt, der Abfragen an die angegebene CloudFront Verteilung weiterleitet.

Anmerkung

Wenn Sie Alias-Ressourcendatensätze erstellen, müssen Sie wie im folgenden Beispiel veranschaulicht für die Eigenschaft Z2FDTNDATAQYW2 den Wert HostedZoneId angeben. Aliasressourcen-Datensä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" ] } } } ] } } }

YAML

myDNS: Type: 'AWS::Route53::RecordSetGroup' Properties: HostedZoneId: !Ref myHostedZoneID RecordSets: - Name: !Ref myRecordSetDomainName Type: A AliasTarget: HostedZoneId: Z2FDTNDATAQYW2 DNSName: !GetAtt - myCloudFrontDistribution - DomainName