選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

設定 Amazon API Gateway Canary Release 部署

焦點模式
設定 Amazon API Gateway Canary Release 部署 - Amazon API Gateway

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

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

Canary Release 是一種軟體開發策略,此策略會部署 API (和其他軟體) 的新版本以供測試之用,而基本版本仍會部署為生產版本以供相同階段正常操作之用。為了進行討論,我們在這份文件中將基本版本參照為生產版本。雖然這十分合理,但是您可以在任何非生產版本上自由地套用 Canary Release 來進行測試。

在 Canary Release 部署中,總 API 流量會隨機分為生產版本以及具有預先設定比率的 Canary Release。一般而言,Canary Release 會收到一小部分的 API 流量,而生產版本則會佔用其餘流量。透過 Canary,只有 API 流量才能看到更新過的 API 功能。您可以調整 Canary 流量百分比,以最佳化測試涵蓋範圍或效能。

透過保持較小的 Canary 流量以及隨機選取,新版本中的潛在錯誤在任何時間都不會對使用者造成嚴重影響,而且隨時都不會對單一使用者造成嚴重影響。

測試指標通過您的需求之後,即可將 Canary Release 提升至生產版本,並停用 Canary 進行部署。這讓新功能可在生產階段中使用。

API Gateway 中的 Canary Release 部署

在 API Gateway 中,Canary Release 部署會使用 API 基本版本之生產版本的部署階段,並連接至 API 新版本之 Canary Release 的階段 (相較於基本版本)。階段是與初始部署以及具有後續部署的 Canary 建立關聯。一開始,階段和 Canary 都指向相同的 API 版本。在本節中,我們會交換使用階段和生產版本,並交換使用 Canary 和 Canary Release。

若要部署具有 Canary Release 的 API,請將 Canary 設定新增至一般部署階段,以建立 Canary Release 部署。Canary 設定說明基礎 Canary Release,而階段代表此部署內 API 的生產版本。若要新增 Canary 設定,請在部署階段上設定 canarySettings,並指定下列項目:

啟用 Canary Release 之後,除非停用 Canary Release 並從階段移除 Canary 設定,否則部署階段無法與其他非 Canary Release 部署建立關聯。

當您啟用 API 執行記錄時,Canary Release 會有針對所有 Canary 請求產生的專屬日誌和指標。它們會回報至生產階段 CloudWatch Logs 日誌群組,以及 Canary 特定 CloudWatch Logs 日誌群組。這也適用於存取記錄。不同的 Canary 特定日誌適用於驗證新的 API 變更,以及決定是否接受變更,並將 Canary Release 提升至生產階段,或是捨棄變更,並從生產階段還原 Canary Release。

生產階段執行日誌群組命名為 API-Gateway-Execution-Logs/{rest-api-id}/{stage-name},而 Canary Release 執行日誌群組命名為 API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}/Canary。對於存取記錄,您必須建立新的日誌群組,或選擇現有日誌群組。Canary Release 存取日誌群組名稱會有附加至所選取日誌群組名稱的 /Canary 尾碼。

在預先設定的存活期 (TTL) 內,Canary Release 可以使用階段快取 (啟用時) 存放回應,以及使用快取項目將結果傳回至下一個 Canary 請求。

在 Canary Release 部署中,API 的生產版本和 Canary Release 可以與相同的版本或不同的版本建立關聯。當它們與不同版本建立關聯時,會分別快取生產和 Canary 請求的回應,而且階段快取會傳回生產和 Canary 請求的對應結果。當生產版本和 Canary Release 與相同部署建立關聯時,階段快取會將單一快取金鑰用於這兩種類型的請求,並傳回生產版本和 Canary Release 中相同請求的相同回應。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。