Frammenti di modello Route 53 - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Frammenti di modello Route 53

Set di record della risorsa Amazon Route 53 che utilizza il nome o l'ID della zona ospitata

Quando crei un set di record della risorsa Amazon Route 53, devi specificare la zona ospitata in cui desideri aggiungerlo. AWS CloudFormation offre due modi per specificare una zona ospitata.

  • Puoi specificare esplicitamente la zona ospitata utilizzando la proprietà HostedZoneId.

  • È possibile AWS CloudFormation trovare la zona ospitata utilizzando la HostedZoneName proprietà. Se si utilizza la HostedZoneName proprietà e sono presenti più zone ospitate con lo stesso nome, AWS CloudFormation non crea lo stack.

Aggiungere utilizzando RecordSet HostedZoneId

In questo esempio viene aggiunto un set di record della risorsa Amazon Route 53 che contiene un record SPF per il nome di dominio mysite.example.com utilizzando la proprietà HostedZoneId per specificare la zona ospitata.

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"'

Aggiungere RecordSet usando HostedZoneName

In questo esempio viene aggiunto un set di record della risorsa Amazon Route 53 per il nome di dominio "mysite.example.com" utilizzando la proprietà HostedZoneName per specificare la zona ospitata.

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

Utilizzo RecordSetGroup per impostare set di record di risorse ponderati

Questo esempio utilizza un AWS::Route53::RecordSetgruppo per impostare due record CNAME per «example.com». zona ospitata. La proprietà RecordSets contiene il set di record CNAME per il nome DNS "mysite.example.com". Ogni set di record contiene un identificatore (SetIdentifier) e un peso (Weight). La proporzione di traffico Internet instradato alle risorse si basa sui seguenti calcoli:

  • Frontend One: 140/(140+60) = 140/200 = 70%

  • Frontend Two: 60/(140+60) = 60/200 = 30%

Per ulteriori informazioni sui set di record di risorse ponderati, consulta Instradamento ponderato nella Guida per lo sviluppatore di 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

Utilizzo RecordSetGroup per impostare un set di record di risorse alias

Negli esempi seguenti viene utilizzato un AWS::Route53::RecordSetgruppo per impostare un set di record di risorse alias denominato example.com che indirizza il traffico verso un sistema di bilanciamento del carico ELB versione 1 (classico) e un sistema di bilanciamento del carico versione 2 (applicazione o rete). La AliasTargetproprietà specifica l'ID della zona ospitata e il nome DNS per MyELB utilizzando la funzione LoadBalancer intrinseca. GetAtt GetAttrecupera diverse proprietà della risorsa MyElb, a seconda che tu stia instradando il traffico verso un load balancer versione 1 o versione 2:

  • load balancer Versione 1: CanonicalHostedZoneNameID e DNSName

  • load balancer Versione 2: CanonicalHostedZoneID e DNSName

Per ulteriori informazioni sui set di record di risorse alias, consulta Scelta tra record alias e non alias nella Guida per gli sviluppatori di Route 53.

JSON per il load balancer Versione 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"] } } } ] } }

YAML per il load balancer Versione 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'

JSON per il load balancer Versione 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"] } } } ] } }

YAML per il load balancer Versione 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: record di risorse impostato per una distribuzione CloudFront

L'esempio seguente crea un set di record di alias che indirizza le query alla distribuzione specificata. CloudFront

Nota

Quando crei set di record della risorsa alias, devi specificare Z2FDTNDATAQYW2 per la proprietà HostedZoneId, come mostrato nel seguente esempio. I set di record di risorse alias per non CloudFront possono essere creati in un'area privata.

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