Migrieren eines benutzerdefinierten Domänennamens in einen anderen API-Endpunkt
Sie können Ihren benutzerdefinierten Domänennamen zwischen Edge-optimierten und regionalen Endpunkten migrieren. Zunächst fügen Sie den neuen Endpunktkonfigurationstyp zur bestehenden Liste endpointConfiguration.types
für den benutzerdefinierten Domänennamen hinzu. Danach richten Sie einen DNS-Datensatz so ein, dass der benutzerdefinierte Domänenname auf den neu bereitgestellten Endpunkt verweist. Optimal können Sie dann noch die Konfigurationsdaten des veralteten benutzerdefinierten Domänennamens löschen.
Beachten Sie bei der Migration von einem Edge-optimierten benutzerdefinierten Domänennamen, dass das von ACM bereitgestellte erforderliche Zertifikat aus der Region (USA Ost (Nord-Virginia)) stammen m (us-east-1
). Dieses Zertifikat wird auf alle geografischen Standorte verteilt. Bei einer regionalen API muss sich das ACM-Zertifikat für den regionalen Domänennamen dagegen in derselben Region wie die API befinden. Sie können einen Edge-optimierten benutzerdefinierten Domänennamen, der sich außerhalb der Region us-east-1
befindet, zu einem regionalen benutzerdefinierten Domänennamen migrieren, indem Sie zunächst ein neues ACM-Zertifikat für die lokale Region der API anfordern.
Die Migration zwischen einem Edge-optimierten und einem regionalen benutzerdefinierten Domänennamen in API Gateway kann bis zu 60 Sekunden dauern. Wann der neu erstellte Endpunkt Traffic akzeptieren kann, hängt die Migrationszeit auch davon ab, wann Sie Ihre DNS-Datensätze aktualisieren.
Migrieren von benutzerdefinierten Domänennamen mit der AWS CLI
Wenn Sie mit der AWS CLI einen benutzerdefinierten Domänennamen von einem Edge-optimierten Endpunkt in einen regionalen Endpunkt oder umgekehrt migrieren möchten, rufen Sie den Befehl update-domain-name
auf, um den neuen Endpunkttyp hinzuzufügen. Rufen Sie optional den Befehl update-domain-name
auf, um den alten Endpunkttyp zu entfernen.
Themen
Migrieren eines Edge-optimierten benutzerdefinierten Domänennamens in einen regionalen benutzerdefinierten Domänennamen
Rufen Sie den CLI-Befehl update-domain-name
wie folgt auf, um einen Edge-optimierten benutzerdefinierten Domänennamen in einen regionalen benutzerdefinierten Domänennamen zu migrieren:
aws apigateway update-domain-name \ --domain-name 'api.example.com' \ --patch-operations [ \ { op:'add', path: '/endpointConfiguration/types',value: 'REGIONAL' }, \ { op:'add', path: '/regionalCertificateArn', value: 'arn:aws:acm:us-west-2:123456789012:certificate/cd833b28-58d2-407e-83e9-dce3fd852149' } \ ]
Das regionale Zertifikat muss sich in derselben Region befinden wie die regionale API.
Die erfolgreiche Antwort verfügt über den Statuscode 200 OK
und einen Inhalt, der etwa wie folgt aussieht:
{ "certificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a", "certificateName": "edge-cert", "certificateUploadDate": "2017-10-16T23:22:57Z", "distributionDomainName": "d1frvgze7vy1bf.cloudfront.net", "domainName": "api.example.com", "endpointConfiguration": { "types": [ "EDGE", "REGIONAL" ] }, "regionalCertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/cd833b28-58d2-407e-83e9-dce3fd852149", "regionalDomainName": "d-fdisjghyn6.execute-api.us-west-2.amazonaws.com" }
Für den migrierten regionalen benutzerdefinierten Domänennamen gibt die resultierende Eigenschaft regionalDomainName
den regionalen API-Hostnamen zurück. Sie müssen einen DNS-Datensatz so einrichten, dass der regionale benutzerdefinierte Domänenname auf diesen regionalen Hostnamen verweist. Auf diese Weise kann der Datenverkehr, der an den benutzerdefinierten Domänennamen gebunden ist, an den regionalen Host weitergeleitet werden.
Nachdem Sie den DNS-Datensatz eingerichtet haben, können Sie den Edge-optimierten benutzerdefinierten Domänennamen mithilfe des update-domain-name
-Befehls AWS CLI löschen:
aws apigateway update-domain-name \ --domain-name api.example.com \ --patch-operations [ \ {op:'remove', path:'/endpointConfiguration/types', value:'EDGE'}, \ {op:'remove', path:'certificateName'}, \ {op:'remove', path:'certificateArn'} \ ]
Migrieren eines regionalen benutzerdefinierten Domänennamens in einen Edge-optimierten benutzerdefinierten Domänennamen
Rufen Sie den update-domain-name
-Befehl AWS CLI wie folgt auf, um einen regionalen benutzerdefinierten Domänennamen in einen Edge-optimierten benutzerdefinierten Domänennamen zu migrieren:
aws apigateway update-domain-name \ --domain-name 'api.example.com' \ --patch-operations [ \ { op:'add', path:'/endpointConfiguration/types',value: 'EDGE' }, \ { op:'add', path:'/certificateName', value:'edge-cert'}, \ { op:'add', path:'/certificateArn', value: 'arn:aws:acm:us-east-1:123456789012:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a' } \ ]
Das Zertifikat der Edge-optimierten Domäne muss in der Region us-east-1
erstellt werden.
Die erfolgreiche Antwort verfügt über den Statuscode 200 OK
und einen Inhalt, der etwa wie folgt aussieht:
{ "certificateArn": "arn:aws:acm:us-east-1:738575810317:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a", "certificateName": "edge-cert", "certificateUploadDate": "2017-10-16T23:22:57Z", "distributionDomainName": "d1frvgze7vy1bf.cloudfront.net", "domainName": "api.example.com", "endpointConfiguration": { "types": [ "EDGE", "REGIONAL" ] }, "regionalCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/3d881b54-851a-478a-a887-f6502760461d", "regionalDomainName": "d-cgkq2qwgzf.execute-api.us-east-1.amazonaws.com" }
Für den angegebenen benutzerdefinierten Domänennamen gibt API Gateway den Edge-optimierten API-Hostnamen als Wert der Eigenschaft distributionDomainName
zurück. Sie müssen einen DNS-Datensatz so einrichten, dass der Edge-optimierte benutzerdefinierte Domänenname auf diesen Verteilungsdomänennamen verweist. Auf diese Weise kann der Datenverkehr, der an den Edge-optimierten benutzerdefinierten Domänennamen gebunden ist, an den Edge-optimierten Hostnamen der API weitergeleitet werden.
Nachdem Sie den DNS-Datensatz eingerichtet haben, können Sie den Endpunkttyp REGION
des benutzerdefinierten Domänennamens löschen:
aws apigateway update-domain-name \ --domain-name api.example.com \ --patch-operations [ \ {op:'remove', path:'/endpointConfiguration/types', value:'REGIONAL'}, \ {op:'remove', path:'regionalCertificateArn'} \ ]
Das Ergebnis dieses Befehls sieht in etwa wie folgende Ausgabe aus und enthält nur Konfigurationsdaten des Edge-optimierten Domänennamens:
{ "certificateArn": "arn:aws:acm:us-east-1:738575810317:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a", "certificateName": "edge-cert", "certificateUploadDate": "2017-10-16T23:22:57Z", "distributionDomainName": "d1frvgze7vy1bf.cloudfront.net", "domainName": "regional.haymuto.com", "endpointConfiguration": { "types": "EDGE" } }