將自訂網域名稱移轉至API閘道中的其他API端點類型 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將自訂網域名稱移轉至API閘道中的其他API端點類型

您可以在邊緣最佳化與區域端點之間遷移自訂網域名稱。您會先將新的端點組態類型新增至自訂網域名稱的現有 endpointConfiguration.types 清單。接下來,您可以設定DNS記錄,將自訂網域名稱指向新佈建的端點。最後,您會移除過時的自訂網域名稱組態資料。

考量事項

以下是在區域端點和邊緣最佳化APIAPI端點之間移轉自訂網域的考量事項。

  • 邊緣最佳化的自訂網域名稱需要由ACM美國東部 (維吉尼亞北部) — us-east-1 區域提供的憑證。此憑證會分發至所有地理位置。

  • 地區自訂網域名稱需要ACM在託管API. 您可以從區域的本機區域要求新ACM憑證,將不在us-east-1區域中的邊緣最佳化自訂網域名稱移轉至區域自訂網域名稱。API

  • 在邊緣最佳化的自訂網域名稱和地區自訂網域名稱之間完成移轉作業最多可能需要 60 秒的時間。移轉時間也取決於您更新DNS記錄的時間。

移轉自訂網域名稱

下列程序顯示如何將邊緣最佳化的自訂網域名稱移轉至地區自訂網域名稱。

AWS Management Console
  1. 請在 https://console.aws.amazon.com/apigateway 登入API閘道主控台。

  2. 在主導覽窗格中,選擇 [自訂網域名稱]。

  3. 選擇邊緣最佳化的自訂網域名稱。

  4. 在組索引標籤上,對於端點組態,選擇編輯

  5. 選擇 [新增地區端點]。

  6. 對於ACM憑證,請選擇憑證。

    區域憑證必須與區域屬於相同的區域API。

  7. 選擇儲存

  8. 設定DNS記錄,將地區自訂網域名稱指向此地區主機名稱。如需詳細資訊,請參閱設定 Route 53 以將流量路由傳送至API閘道

  9. 確認DNS組態使用正確的端點後,即會刪除邊緣最佳化端點組態。選擇您的自訂網域名稱,然後針對端點設定 (邊緣最佳化) 選擇 [刪除]。

  10. 確認您的選擇並刪除端點。

AWS CLI

下列update-domain-name指令顯示如何將您的自訂網域名稱移轉至地區自訂網域名稱:

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

區域憑證必須與區域屬於相同的區域API。

成功回應會有 200 OK 狀態碼以及與下列類似的內文:

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

對於已移轉的地區自訂網域名稱,產生的regionalDomainName屬性會傳回地區API主機名稱。您必須設定DNS記錄,將地區自訂網域名稱指向此地區主機名稱。如此可讓繫結至自訂網域名稱的流量路由至區域主機。

設定DNS記錄之後,您可以移除邊緣最佳化的自訂網域名稱。以下update-domain-name指令展示如何移除邊緣最佳化的自訂網域名稱。

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

下列程序顯示如何將地區自訂網域名稱移轉至邊緣最佳化的自訂網域名稱。

AWS Management Console
  1. 請在 https://console.aws.amazon.com/apigateway 登入API閘道主控台。

  2. 在主導覽窗格中,選擇 [自訂網域名稱]。

  3. 選擇邊緣最佳化的自訂網域名稱。

  4. 在組索引標籤上,對於端點組態,選擇編輯

  5. 選擇 [新增邊緣最佳化端點]。

  6. 對於ACM憑證,請選擇憑證。

    us-east-1 區域中,必須建立邊緣最佳化網域憑證。

  7. 選擇儲存

  8. 設定DNS記錄,將邊緣最佳化的自訂網域名稱指向此邊緣最佳化的主機名稱。如需詳細資訊,請參閱設定 Route 53 以將流量路由傳送至API閘道

  9. 確認DNS組態使用正確的端點後,即刪除區域端點組態。選擇您的自訂網域名稱,然後針對端點設定 (地區) 選擇 [刪除]。

  10. 確認您的選擇並刪除端點。

AWS CLI

以下update-domain-name指令展示如何將自訂網域名稱移轉至邊緣最佳化的自訂網域名稱:

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:738575810317:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a"} ]'

us-east-1 區域中,必須建立邊緣最佳化網域憑證。

成功回應會有 200 OK 狀態碼以及與下列類似的內文:

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

對於指定的自訂網域名稱,APIGateway 會傳回邊緣最佳化的主機名API稱做為內distributionDomainName容值。您必須設定DNS記錄,將邊緣最佳化的自訂網域名稱指向此發佈網域名稱。這可讓繫結至邊緣最佳化自訂網域名稱的流量路由至邊緣API最佳化主機名稱。

設定DNS記錄之後,您可以移除自訂網域名稱的REGION端點類型。下列update-domain-name命令顯示如何移除區域端點類型:

aws apigateway update-domain-name \ --domain-name api.example.com \ --patch-operations '[ {"op":"remove", "path":"/endpointConfiguration/types", value:"REGIONAL"}, {"op":"remove", "path":"regionalCertificateArn"} ]'

此命令的結果類似下列輸出,而且只有邊緣最佳化網域名稱組態資料:

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