在您的應用程式中,要求可能會在同一項服務的不同版本之間來回轉送。流量遷移功能可以切換這類要求的轉送目標,將流量從一或多個版本移至單一新版本。
如要瞭解在應用程式的兩個以上版本之間拆分流量的相關資訊,請參閱流量拆分一文。
事前準備
在設定傳送至版本的流量之前,請確認您的使用者帳戶含有必要權限。
逐步遷移流量
在標準環境中,您可以選擇立即或逐步將要求轉送至目標版本。
根據預設,系統會停用暖機要求,且會立即將流量遷移至某個版本。
如果您想將流量逐步遷移到某個版本,也可以選擇啟用暖機要求。如果您在沒有任何執行中執行個體的情況下,立即將流量遷移到新版本,載入要求的延遲時間可能會遽增。如果您在部署新的版本時採用現有版本的名稱,則會讓流量立即遷移。系統會立即關閉舊版本的所有執行個體,並將要求載入新版本,因此延遲時間可能會遽增。
如果已啟用暖機要求,則您只能藉由指定立即遷移流量,才能讓流量在不同環境的版本之間遷移。
新增暖機要求至應用程式
如果已啟用暖機要求,則必須在新的執行個體收到任何使用者要求之前,就先將「暖機要求」傳送至這些新的執行個體,才能逐步遷移流量。暖機要求允許目前接收流量的版本來處理要求,因此可縮短使用者回應時間;但是在建立新執行個體的同時,將流量遷移至新版本還是會耗費一點時間。
如果沒有啟用暖機要求,則在尚未建立新的執行個體之前,系統就已將使用者要求傳送給這些新的執行個體。由於建立新的執行個體和載入應用程式程式碼會導致延遲,因此這些使用者回應也可能會發生延遲的情況。
如要避免延遲並啟用暖機要求,請先將inbound_services
元素納入設定檔,再把應用程式部署到 App Engine。
舉例來說,您可以先將下列指令納入 app.yaml
檔案,再將該檔案部署到 App Engine:
inbound_services:
- warmup
如需啟用暖機要求的完整詳細資訊,請參閱設定暖機要求以改善效能。
將流量遷移至新版本
控制台
如要在 Google Cloud 控制台中遷移流量,請前往「Versions」(版本) 頁面:
- 選取您要將全部流量 (100% 的流量) 遷移至哪個版本。
- 按一下 [Migrate traffic] (遷移流量)。
- 選用:啟用暖機要求時,流量會逐步遷移。如要立即遷移流量,請選取「Show advanced options」(顯示進階選項) 區段下的選項。
gcloud
安裝 Google Cloud CLI 後,請執行 gcloud
app services set-traffic
指令,將全部流量遷移至單一版本。例如:
- 如要立即遷移流量:
gcloud app services set-traffic [MY_SERVICE] --splits [MY_VERSION]=1
- 如要逐步遷移流量,請納入選用的
--migrate
標記:gcloud app services set-traffic [MY_SERVICE] --splits [MY_VERSION]=1 --migrate
API
如要透過程式遷移流量,您可以使用 Admin API。詳情請參閱遷移及拆分流量的相關說明。