將要求轉送至多地區傳統版應用程式負載平衡器

本指南說明如何建立 Google Cloud HTTPS 負載平衡器,以便:

  • 根據要求網址路徑選取後端服務。
  • 將要求轉送至距離用戶端較近的後端 (多地區負載平衡)。

在開始之前,請先熟悉外部應用程式負載平衡器的概念。

如需簡易範例,請參閱「使用 Compute Engine 後端設定外部應用程式負載平衡器」一文。如需瞭解 HTTP 重寫和重新導向等進階路由功能,請參閱「外部應用程式負載平衡器的流量管理」。

總覽

本指南提供建立負載平衡器的操作說明。您可從中學習如何讓負載平衡器依據要求網址的路徑引導流量,並平衡多個地區間的流量。您在美國 (us-central1-b 區域) 和歐盟 (eu-west1-b 區域) 共建立八個 Compute Engine 執行個體。接下來建立負載平衡器,將流量轉送至上述執行個體。

完成操作說明的步驟後,負載平衡器的設定會如下所示:

  • 流量若包含開頭為 /video 的網址路徑,會轉送至一個後端服務。
  • 流量包含的網址路徑若不符合此模式,會轉送至其他後端服務。

在此教學文件中,需建立如下圖所示的設定:

多區域 HTTPS 負載平衡
多區域 HTTPS 負載平衡 (按一下可放大)

圖表中的事件順序如下:

  1. 用戶端存取 https://www.example.com/video/concert 網址,傳送內容要求至轉送規則所定義的外部 IP 位址。該要求可以使用 IPv4 或 IPv6,兩種通訊協定皆有適用的轉送規則。
  2. 轉送規則將要求導向目標 HTTPS Proxy。
  3. 目標 Proxy 會使用網址對應中設定的規則,判斷哪個後端服務會收到要求。包含 /video 的請求 (例如 https://www.example.com/video/concert) 會傳送至 video-backend-service。其他任何網址路徑都會傳送到預設服務 web-backend-service
  4. 負載平衡器依據要求的負載以及和用戶端的距離,判斷應由哪個後端服務的執行個體群組處理要求,並將要求導向該群組中的執行個體。
  5. 執行個體處理每個使用者的內容要求。video 執行個體處理影片內容,而 www 執行個體則處理所有其他內容。

在此範例中,負載平衡器會接受用戶端的 HTTPS 要求,並將這些要求變成 HTTP 轉送至後端。您也可以將負載平衡器設為接受 HTTP 要求,並且在將要求轉送成至後端時使用 HTTPS。

事前準備

這些操作說明需要專案才能進行。如果您還沒有專案,請現在建立一個。這些操作說明會引導您建立自訂模式的虛擬私有雲 (VPC) 網路。您也必須建立自訂的防火牆規則,才能讓流量連上執行個體。

如果您希望透過指令列操作,請先安裝 gcloud 指令列工具。如需該工具的概念與安裝資訊,請參閱 gcloud 概覽

權限

為了完成本指南中的步驟,您必須具有在專案中建立 Compute Engine 執行個體的權限。您必須具有專案擁有者或編輯者角色,或者具有下列 Compute Engine 身分與存取權管理角色

工作 必要角色
建立執行個體 Compute 執行個體管理員
新增與移除防火牆規則 安全性管理員
建立負載平衡器元件 網路管理員
建立專案 (選用) 專案建立者

詳情請參閱下列指南:

設定

選用:建立新專案

建議具備 resourcemanager.projects.create 權限的使用者先建立新專案,再繼續進行本教學接下來的步驟。如此可以簡化指南最後清除所用資源的工作。

設定網路與子網路

在此範例中,請使用下列虛擬私人雲端網路、地區與子網路:

  • 網路:網路為名為 lb-network自訂模式虛擬私人雲端網路

  • 位於兩個不同地區的子網路:

    • us-subnet 使用 10.1.10.0/24 做為其主要 IP 範圍,位於 us-central1 地區。
    • eu-subnet 使用 10.1.11.0/24 做為其主要 IP 範圍,位於 europe-west1 地區。

如要建立範例網路與子網路,請依照下列步驟操作:

主控台

  1. 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 按一下「建立虛擬私有雲網路」

  3. 輸入 lb-network 的「Name」

  4. 在「Subnets」(子網路) 區段中,建立第一個子網路:

    • 將「Subnet creation mode」(子網路建立模式) 設為 [Custom] (自訂)
    • 在「New subnet」(新的子網路) 區段中,輸入以下資訊:
      • Name (名稱):us-subnet
      • Region (區域):us-central1
      • IP address range (IP 位址範圍):10.1.10.0/24
      • 按一下 [完成]
  5. 請繼續在「Subnets」(子網路) 區段中點選「Add subnet」(新增子網路),並建立第二個子網路:

    • 在「New subnet」(新的子網路) 區段中,輸入以下資訊:
      • Name (名稱):eu-subnet
      • Region (區域):europe-west1
      • IP address range (IP 位址範圍):10.1.11.0/24
      • 按一下 [完成]
  6. 按一下 [建立]。

gcloud

  1. 建立自訂虛擬私人雲端網路:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. 建立 us-subnet

    gcloud compute networks subnets create us-subnet \
      --network=lb-network \
      --range=10.1.10.0/24 \
      --region=us-central1
    
  3. 建立 eu-subnet

    gcloud compute networks subnets create eu-subnet \
      --network=lb-network \
      --range=10.1.11.0/24 \
      --region=europe-west1
    

設定防火牆規則

預設拒絕輸入會封鎖後端執行個體收到的流量,包含來自負載平衡器與Google Cloud 健康狀態檢查系統的流量。您必須建立新的防火牆規則,才能覆寫預設規則,讓流量連上您的執行個體。

在此範例中,您會建立下列防火牆規則:

  • fw-allow-ssh:輸入規則,適用於要進行負載平衡的執行個體,可在 TCP 通訊埠 22 上允許來自任何位址的連入 SSH 連線。您可以為這項規則選擇較嚴格的來源 IP 範圍;例如,您可以僅指定要從其中啟動 SSH 工作階段之系統的 IP 範圍。本範例使用目標標記 allow-ssh 來識別應套用此規則的後端 VM。

  • fw-allow-health-check-and-proxy:輸入規則,適用於要進行負載平衡的執行個體,可允許來自負載平衡器和Google Cloud 健康狀態檢查系統 (130.211.0.0/2235.191.0.0/16) 的流量。這個範例會使用目標標記 allow-health-check 來辨識應套用這項規則的後端 VM。

主控台

  1. 在 Google Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。

    前往「防火牆政策」

  2. 按一下「建立防火牆規則」,建立第一個防火牆規則:

    1. 輸入 fw-allow-ssh 的「Name」
    2. 在「Network」下方選取 lb-network
    3. 在「Targets」(目標) 下方,選取 [Specified target tags] (指定的目標標記)
    4. 在「Target tags」(目標標記) 欄位填入 allow-ssh
    5. 將「Source filter」(來源篩選器) 設為「IPv4 ranges」(IPv4 範圍)
    6. 將「Source IPv4 ranges」(來源 IPv4 範圍) 設為 0.0.0.0/0
    7. 在「Protocols and ports」(通訊協定與通訊埠) 下方,選取 [Specified protocols and ports] (指定的通訊協定與通訊埠)
    8. 勾選「TCP」TCP核取方塊,然後輸入 22 做為「Port number」(通訊埠編號)。
    9. 按一下 [建立]。
  3. 按一下「Create firewall rule」(建立防火牆規則),建立第二個防火牆規則:

    1. 輸入 fw-allow-health-check-and-proxy 的「Name」
    2. 在「Network」下方選取 lb-network
    3. 在「Targets」(目標) 下方,選取 [Specified target tags] (指定的目標標記)
    4. 在「Target tags」(目標標記) 欄位填入 allow-health-check
    5. 將「Source filter」(來源篩選器) 設為「IPv4 ranges」(IPv4 範圍)
    6. 將「Source IPv4 ranges」(來源 IPv4 範圍) 設為 130.211.0.0/2235.191.0.0/16
    7. 在「Protocols and ports」(通訊協定與通訊埠) 下方,選取 [Specified protocols and ports] (指定的通訊協定與通訊埠)
    8. 勾選「TCP」TCP核取方塊,通訊埠編號請輸入 80,443
    9. 按一下 [建立]。

gcloud

  1. 建立 fw-allow-ssh 防火牆規則,允許與具有 allow-ssh 網路標記的 VM 建立 SSH 連線。若省略 source-ranges,Google Cloud 會將規則解讀為任何來源

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  2. 建立 fw-allow-health-check-and-proxy 規則,以允許負載平衡器與 Google Cloud 健康檢查在 TCP 通訊埠 80443 上與後端執行個體通訊:

    gcloud compute firewall-rules create fw-allow-health-check-and-proxy \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80,tcp:443
    

建立執行個體

如要設定具有 Compute Engine 後端的負載平衡器,您的 VM 必須屬於某個執行個體群組。本指南說明如何使用執行 Apache 的 Linux VM 建立代管執行個體群組。

代管執行個體群組提供的 VM 會執行外部 HTTPS 負載平衡器的後端伺服器。為示範之用,後端會提供自己的主機名稱。

在此範例中,您要建立八個虛擬機器執行個體 (VM):四個用於處理影片內容,另外四個則用於處理其他所有內容。您可以使用開機指令碼安裝 Apache 網路伺服器軟體,提供不重複的首頁給每個執行個體。請注意,您可以在 VM 上使用任何網路伺服器;我們在本例中安裝 Apache,方便您操作。

主控台

建立執行個體範本。

  1. 前往 Google Cloud 控制台的「Instance Templates」(執行個體範本) 頁面。

    前往「Instance templates」(執行個體範本) 頁面

    1. 點選「建立執行個體範本」
    2. 在「Name」(名稱) 中輸入 video-us-template
    3. 確認「開機磁碟」已設為 Debian 映像檔,例如「Debian GNU/Linux 12 (bookworm)」。這些操作說明使用僅在 Debian 上可用的指令,例如 apt-get
    4. 點選「進階選項」
    5. 按一下「網路」,然後設定下列欄位:
      1. 在「Network tags」(網路標記) 中輸入 allow-health-checkallow-ssh
      2. 在「網路介面」中,選取下列項目:
        • Network (網路):lb-network
        • Subnet (子網路):us-subnet
    6. 按一下 [Management] (管理)。在「Startup script」(開機指令碼) 欄位中輸入下列指令碼。

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      mkdir -p /var/www/html/video
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html /var/www/html/video/index.html
      systemctl restart apache2
      
    7. 按一下 [建立]。

  2. 建立代管執行個體群組。在 Google Cloud 控制台中,前往「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組)

    1. 點選「建立執行個體群組」
    2. 選取「New managed instance group (stateless)」(新增代管執行個體群組 (無狀態))。詳情請參閱「無狀態或有狀態的 MIG」。
    3. 在「Name」(名稱) 中輸入 ig-video-us
    4. 在「Location」(位置) 底下,選取 [Single zone] (單一區域)。
    5. 在「區域」部分,選取偏好的區域。本範例使用 us-central1
    6. 在「Zone」(區域) 中,選取 us-central1-b
    7. 在「Instance template」(執行個體範本) 下,選取 video-us-template
    8. 在「Autoscaling mode」(自動調度資源模式) 下方,選取 Off:do not autoscale
    9. 在「Maximum number of instances」(執行個體數量上限) 下方輸入 2
    10. 按一下 [建立]。

gcloud

  1. 建立執行個體範本。

    gcloud compute instance-templates create video-us-template \
       --region=us-central1 \
       --network=lb-network \
       --subnet=us-subnet \
       --tags=allow-health-check,allow-ssh \
       --image-family=debian-12 \
       --image-project=debian-cloud \
       --metadata=startup-script='#! /bin/bash
         apt-get update
         apt-get install apache2 -y
         a2ensite default-ssl
         a2enmod ssl
         vm_hostname="$(curl -H "Metadata-Flavor:Google" \
         http://metadata.google.internal/computeMetadata/v1/instance/name)"
         mkdir -p /var/www/html/video
         echo "Page served from: $vm_hostname" | \
         tee /var/www/html/index.html /var/www/html/video/index.html
         systemctl restart apache2'
    
  2. 依據範本建立代管執行個體群組。

    gcloud compute instance-groups managed create ig-video-us \
       --template=video-us-template --size=2 --zone=us-central1-b
    

針對四個執行個體群組重複執行這項程序四次。請務必變更每個執行個體群組的名稱、範本名稱、地區和區域,如下所示:

  • ig-video-usvideo-us-templateus-central1-b (如範例所示)
  • ig-video-euvideo-eu-templateeurope-west1-b
  • ig-www-uswww-us-templateus-central1-b
  • ig-www-euwww-europe-templateeurope-west1-b

將命名通訊埠新增至執行個體群組

針對每個執行個體群組定義一個 HTTP 服務,並將通訊埠名稱對應至相關的通訊埠:設定完成後,負載平衡服務會將流量轉送至該具名連接埠。

主控台

  1. 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組)

  2. 按一下執行個體群組名稱 (例如 ig-video-us),然後按一下「編輯群組」

  3. 按一下 [Specify port name mapping] (指定通訊埠名稱對應)

  4. 按一下 [新增項目]。

  5. 在「Port name」(通訊埠名稱) 中輸入 http。在「Port number」(通訊埠編號) 中輸入 80

  6. 按一下 [儲存]

針對每個執行個體群組重複執行這個步驟。

gcloud

gcloud compute instance-groups unmanaged set-named-ports ig-video-us \
    --named-ports http:80 \
    --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-us \
    --named-ports http:80 \
    --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-video-eu \
    --named-ports http:80 \
    --zone europe-west1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-eu \
    --named-ports http:80 \
    --zone europe-west1-b

保留外部 IP 位址

現在已設定好執行個體並開始執行,請設定負載平衡所需的服務。在本節中,您要建立兩個通用靜態外部 IP 位址,供您的客戶使用,以連上您的負載平衡器。

主控台

  1. 在 Google Cloud 控制台中,前往「External IP addresses」(外部 IP 位址) 頁面。

    前往「外部 IP 位址」

  2. 按一下 [Reserve static address] (預約靜態位址) 以預留 IPv4 位址。

  3. lb-ipv4-1 的「Name」 指派給 lb-ipv4-1

  4. 將「Network tier」(網路級別) 設為「Premium」(進階)。

  5. 將「IP version」(IP 版本) 設為「IPv4」

  6. 將「Type」(類型) 設為「Global」(通用)

  7. 按一下 [Reserve] (預約)

  8. 再按一下 [Reserve static address] (預約靜態位址) 以預留 IPv6 位址。

  9. lb-ipv6-1 的「Name」 指派給 lb-ipv6-1

  10. 將「Network tier」(網路級別) 設為「Premium」(進階)

  11. 將「IP version」(IP 版本) 設為 IPv6

  12. 確定「Type」(類型) 已設為「Global」(通用)。

    在此範例中,負載平衡器會使用進階級網路。使用標準級網路的負載平衡器會改為使用地區 IP 位址。標準層級無法使用 IPv6 位址。

  13. 按一下「保留」

gcloud

  1. 保留 IPv4 位址:

    gcloud compute addresses create lb-ipv4-1 \
      --ip-version=IPV4 \
      --network-tier=PREMIUM \
      --global
    
  2. 預留 IPv6 位址:

    gcloud compute addresses create lb-ipv6-1 \
      --ip-version=IPV6 \
      --network-tier=PREMIUM \
      --global
    

設定負載平衡資源

負載平衡器的功能涉及多種連線資源。在本節中,您將設定這些資源並為其建立連線。如下所示:

  • 已命名的通訊埠,負載平衡器會使用這項服務來將流量導向您的執行個體群組。
  • 健康狀態檢查,這項服務會輪詢您的執行個體,並查看其健康狀態是否良好。負載平衡器只會將流量傳送至健康狀態良好的執行個體。
  • 後端服務,可以追蹤能力、工作階段相依性與健康狀態檢查。後端服務會依據能力與執行個體健康狀態,將要求導向後端 VM 或端點。
  • 網址對應,可讓負載平衡器依據要求網址的主機與路徑,將要求導向特定的後端服務。
  • SSL 憑證資源。SSL 憑證資源含有 SSL 憑證資訊,負載平衡器在 HTTPS 用戶端與其連結後,會使用此資訊來用來終止 TLS。您可以使用多個 SSL 憑證,也就是任何代管或自行管理的 SSL 憑證組合。您必須為您使用的每個憑證建立一個 SSL 憑證資源。
  • 目標 HTTPS Proxy,負載平衡器會使用此 Proxy,建立起網址對應和 SSL 憑證與全域轉送規則之間的關聯。
  • 兩個全域轉送規則,分別用於 IPv4 和 IPv6,可保存全域外部 IP 位址資源。全域轉送規則可將傳入要求轉送至目標 Proxy。

主控台

開始設定

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「Load balancing」(負載平衡) 頁面

  2. 點選「建立負載平衡器」
  3. 在「Type of load balancer」(負載平衡器類型)部分,選取「Application Load Balancer (HTTP/HTTPS)」(應用程式負載平衡器 (HTTP/HTTPS)),然後點選「Next」(下一步)
  4. 在「公開或內部」部分,選取「公開 (外部)」,然後點選「下一步」
  5. 在「全域或單一區域部署」部分,選取「最適合全域工作負載」,然後點選「Next」
  6. 在「Load balancer generation」(負載平衡器代別) 部分,選取「Classic Application Load Balancer」(傳統應用程式負載平衡器),然後點選「Next」(下一步)
  7. 按一下 [設定]

基本設定

  1. 在負載平衡器的「Name」(名稱) 中輸入 web-map
  2. 將視窗保持開啟,以便繼續操作。

設定 www 執行個體的後端服務與健康狀態檢查

負載平衡器需要兩個後端服務,以及供這兩個服務使用的一項健康狀態檢查。在此範例中,負載平衡器會終止用戶端的 HTTPS 要求,並使用 HTTP 與後端通訊。為達到此目標,請指定後端通訊協定與健康狀態檢查的 HTTP。

  1. 按一下「後端設定」
  2. 在「Create or select a backend service」下拉式選單中,將滑鼠指標懸停在「Backend services」,然後選取「Create a backend service」
  3. 將後端服務的「Name」設為 web-backend-service
  4. 請確認「後端類型」已設為「執行個體群組」
  5. 在「Protocol」下拉式選單中,選取「HTTP」
  6. 在「Named port」(已命名通訊埠) 欄位中輸入 http
  7. 在「Backends」(後端) 下方,將「Instance group」(執行個體群組) 設為 ig-www-us
  8. 對於負載平衡器與執行個體間的流量,請將「Port numbers」(通訊埠編號) 設為 80
  9. 保留其餘欄位的預設值。
  10. 按一下「New backend」(新增後端) 視窗底部的「Done」(完成)
  11. 按一下「Add backend」(新增後端),並重複上述步驟,但選取執行個體群組 ig-www-eu
  12. 將視窗保持開啟,以便繼續操作。

設定 www 執行個體的健康狀態檢查。

  1. 在「Health check」(健康狀態檢查) 下方的「Backend configuration」(後端設定) 視窗中,選取 [Create a health check] (建立健康狀態檢查) 或 [Create another health check] (建立另一個健康狀態檢查)。
  2. 如要建立 HTTP 健康狀態檢查,請設定下列健康狀態檢查參數:
    • 名稱http-basic-check-www
    • 「Protocol」 設為 HTTP
    • 「Port」(通訊埠)80
  3. 點選「儲存並繼續」
  4. 按一下 [建立]。

設定 video 執行個體的後端服務與健康狀態檢查

  1. 請重複上述步驟,但將第二個後端服務命名為 video-backend-service,並指派 ig-video-usig-video-eu 執行個體群組至此後端服務。
  2. 請按照相同的步驟建立健康狀態檢查,但請將健康狀態檢查命名為 http-basic-check-video。健康檢查名稱不得重複。

設定主機與路徑規則

主機與路徑規則會設定負載平衡器的網址對應資源。

  1. 在畫面的左欄中,按一下 [Host and path rules] (主機與路徑規則)
  2. 第一列的右欄中已填入 web-backend-service,且「Hosts」與「Paths」 已按照預設規則 Any unmatched (default) 填妥。
  3. 確認右欄中有包含 video-backend-service 的第二列。若不存在,請按一下「Add host and path rule」,然後從右欄的下拉式選單中選取 video-backend-service。請依照下列資訊填寫其他欄位:
    1. 將「Hosts」設為 *
    2. 在「Paths」欄位中:
      1. 輸入 /video,然後按下 Tab 鍵。
      2. 輸入 /video/*,然後按下 Tab 鍵。

設定前端

您可在前端設定區段中,設定負載平衡器的多項資源,包含轉送規則與 SSL 憑證。此外,您也可以在此區段中,選取用戶端與負載平衡器間使用的通訊協定。

在此範例中,您在用戶端與負載平衡器間使用的是 HTTPS,因此您需要有一個或多個 SSL 憑證資源才能設定 Proxy。如要瞭解如何建立 SSL 憑證資源,請參閱「SSL 憑證」。建議使用 Google 代管的憑證。

  1. 在「Create global external Application Load Balancer」(建立全域外部應用程式負載平衡器)頁面的左側面板中,按一下「Frontend configuration」(前端設定)
  2. 在「Name」(名稱) 欄位中輸入 https-content-rule
  3. 在「Protocol」欄位中選取 HTTPS
  4. 將視窗保持開啟,以便繼續操作。

設定 IPv4 轉送規則

  1. 將「IP version」(IP 版本) 設為 IPv4
  2. 在「IP address」(IP 位址) 中,選取您先前建立的 lb-ipv4-1
  3. 確認「Port」(通訊埠) 已設為 443,以允許 HTTPS 流量。
  4. 按一下「Certificate」下拉式清單。
    1. 如果您已擁有自行管理的 SSL 憑證資源,且想要做為主要 SSL 憑證使用,請在下拉式選單中選取所需資源。
    2. 否則,請選取 [Create a new certificate] (建立新憑證)
    3. 填入 www-ssl-cert 的「名稱」
    4. 選取「Upload my certificate」(上傳我的憑證) 或「Create Google managed certificate」(建立 Google 代管憑證)。如要建立 Google 代管的憑證,您必須擁有網域。如果您沒有網域,可以上傳自己的憑證來進行測試。
    5. 如果您選取「Upload my certificate」(上傳我的憑證),請完成下列步驟。
      1. 在「Public key certificate」欄位中,執行下列其中一項操作:
        • 按一下「上傳」按鈕,然後選取 PEM 格式的憑證檔案。
        • 複製 PEM 格式憑證的內容,然後貼上。內容的開頭和結尾必須是 -----BEGIN CERTIFICATE----------END CERTIFICATE-----
      2. 針對「Certificate chain」(憑證鏈結)欄位,請執行下列其中一項操作:
        • 按一下「上傳」按鈕,然後選取 CA 的憑證檔案。這個檔案應包含中繼 CA 憑證和根 CA 憑證。
        • 複製並貼上憑證鏈結的內容。鏈結中的每個憑證都必須採用 PEM 格式,開頭為 -----BEGIN CERTIFICATE-----,結尾為 -----END CERTIFICATE-----。 Google Cloud 不會為您驗證憑證鏈結,您必須自行驗證。
        • 如果您省略憑證鏈結,憑證應由公開信任的 CA 簽署,這樣客戶端就會自動信任。
      3. 針對「Private key certificate」欄位,執行下列其中一項操作:
        • 按一下「上傳」按鈕,然後選取私密金鑰。私密金鑰必須採用 PEM 格式,且不得使用通關密語保護。
        • 複製並貼上 PEM 格式私密金鑰的內容。RSA 私密金鑰開頭必須為 -----BEGIN RSA PRIVATE KEY-----,結尾為 -----END RSA PRIVATE KEY-----。ECDSA 私密金鑰開頭須為 -----BEGIN EC PRIVATE KEY-----,結尾為 -----END EC PRIVATE KEY-----
      4. 按一下 [建立]。
    6. 如果您選取「Create Google managed certificate」(建立 Google 代管憑證),請輸入「Domain」(網域)
  5. 如要新增主要安全資料傳輸層 (SSL) 憑證資源以外的憑證資源,請按照下列指示操作:
    1. 按一下「新增憑證」
    2. 從「Certificates」(憑證) 清單中選取所需憑證,或是按一下 [Create a new certificate] (建立新憑證) 並按照上述指示操作。
  6. 在「QUIC 協商」下方,選取下列任一選項:
    • 自動 (預設):允許 Google 控制 QUIC 協商的時機。目前,選取「自動」時,系統會停用 QUIC。選取這個選項,即表示您允許 Google 在日後自動為這個負載平衡器啟用 QUIC 協商和 HTTP/3。在 gcloud 和 API 中,這個選項稱為 NONE
    • 已啟用:允許負載平衡器與用戶端交涉 QUIC。
    • 已停用:避免負載平衡器與用戶端協商 QUIC。
  7. 按一下 [完成]
  8. 將視窗保持開啟,以便繼續操作。

設定 IPv6 轉送規則

  1. 按一下 [Add frontend IP and port] (新增前端 IP 和通訊埠)
  2. 輸入 https-content-ipv6-rule 的「Name」
  3. 若您想要在用戶端與負載平衡器間使用 HTTPS,請在「Protocol」欄位中選取 HTTPS。如果您想要在用戶端與負載平衡器間使用 HTTP,請選取 HTTP
  4. 將「IP version」(IP 版本) 設為 IPv6
  5. 在「IP」中,選取您先前建立的 lb-ipv6-1
  6. 預設的通訊埠必須設定為 443
  7. 如果您已經有想要使用的 SSL 憑證資源,請在「Certificate」(憑證) 下拉式選單中選取所需資源。如果沒有,請選取「Create a new certificate」
    1. 填入 www-ssl-cert 的「名稱」
    2. 在正確的欄位中上傳您的公用金鑰憑證 (.crt 檔案)、憑證鏈結 (.csr 檔案) 與私密金鑰 (.key 檔案)。
    3. 按一下 [建立]。
  8. 如要新增主要 SSL 憑證資源以外的憑證資源,請按照下列指示操作:
    1. 按一下「新增憑證」
    2. 從「Certificates」(憑證) 清單中選取所需憑證,或是按一下 [Create a new certificate] (建立新憑證) 並按照上述指示操作。
  9. 在「QUIC 協商」下方,選取下列任一選項:
    • 自動 (預設):允許 Google 控制 QUIC 協商的時機。目前,選取「自動」時,系統會停用 QUIC。選取這個選項後,Google 日後會自動為這個負載平衡器啟用 QUIC 協商和 HTTP/3。在 gcloud 和 API 中,這個選項稱為 NONE
    • 已啟用:允許負載平衡器與用戶端進行 QUIC 交涉。
    • 已停用:避免負載平衡器與用戶端協商 QUIC。
  10. 按一下 [完成]

審查及完成

  1. 在「Create global external Application Load Balancer」(建立全域外部應用程式負載平衡器)頁面的左側面板中,按一下「Review and finalize」(檢查並完成)
  2. 將您的設定與您打算建立的內容進行比較。
  3. 如果一切正確無誤,請按一下「建立」,即可建立外部應用程式負載平衡器。

gcloud

  1. 建立健康狀態檢查。如果您在負載平衡器與後端之間使用 HTTP,請使用 gcloud 指令。

    gcloud compute health-checks create http http-basic-check \
        --port 80
    
  2. 為每個內容供應商建立後端服務

    --protocol 欄位設為 HTTP,因為我們要使用 HTTP 前往執行個體。請使用我們先前建立的 http-basic-check 健康狀態檢查做為健康狀態檢查。

    • 如為全域外部應用程式負載平衡器,請使用 gcloud CLI 指令搭配 load-balancing-scheme=EXTERNAL_MANAGED。這項設定提供進階流量管理功能
    • 如果是傳統版應用程式負載平衡器,請使用 load-balancing-scheme=EXTERNAL
    gcloud compute backend-services create video-backend-service \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --global-health-checks \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=http-basic-check \
        --global
    
    gcloud compute backend-services create web-backend-service \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --global-health-checks \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=http-basic-check \
        --global
    
  3. 將您的執行個體群組新增至後端服務,以做為後端使用。後端會定義其包含的執行個體群組容量 (後端使用率上限或每秒查詢次數上限)。在這個範例中,請將 balancing-mode 設為 UTILIZATIONmax-utilization 設為 0.8,以及 capacity-scaler 設為 1。如果您想要耗盡後端服務,請將 capacity-scaler 設為 0

    新增 ig-video-us 執行個體群組:

    gcloud compute backend-services add-backend video-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-video-us \
        --instance-group-zone=us-central1-b \
        --global
    

    新增 ig-video-eu 執行個體群組:

    gcloud compute backend-services add-backend video-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-video-eu \
        --instance-group-zone=europe-west1-b \
        --global
    

    新增 ig-www-us 執行個體群組:

    gcloud compute backend-services add-backend web-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-www-us \
        --instance-group-zone=us-central1-b \
        --global
    

    新增 ig-www-eu 執行個體群組:

    gcloud compute backend-services add-backend web-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-www-eu \
        --instance-group-zone=europe-west1-b \
        --global
    
  4. 建立網址對應,將收到的要求轉送至正確的後端服務。在此情況下,由 --path-rules 旗標定義的要求路徑對應,會根據您網站上各要求的網址路徑來分割流量。與 --path-rules 清單項目不相符的流量會傳送至 --default-service flag 中的項目。

    1. 建立網址對應:

      gcloud compute url-maps create web-map \
          --default-service web-backend-service
      
    2. 新增路徑比對器至您的網址對應,並定義您的要求路徑對應:

      gcloud compute url-maps add-path-matcher web-map \
          --default-service web-backend-service \
          --path-matcher-name pathmap \
          --path-rules="/video=video-backend-service,/video/*=video-backend-service"
      
  5. 建立要在 HTTPS Proxy 中使用的 SSL 憑證資源。如要建立 Google 代管的憑證,您必須擁有網域。如果您沒有網域,可以使用自行簽署的 SSL 憑證進行測試。詳情請參閱「安全資料傳輸層 (SSL) 憑證類型」。

    如要使用多組安全資料傳輸層 (SSL) 憑證,您必須為每組憑證建立安全資料傳輸層 (SSL) 憑證資源。

    建立自行管理的 SSL 憑證資源:

    gcloud compute ssl-certificates create www-ssl-cert \
        --certificate [CRT_FILE_PATH] \
        --private-key [KEY_FILE_PATH]
    

    建立 Google 代管的 SSL 憑證資源:

    gcloud compute ssl-certificates create www-ssl-cert \
      --domains [DOMAIN]
    
  6. 建立目標 HTTPS Proxy 以轉送要求至您的網址對應。Proxy 是負載平衡器的一部分,為 HTTPS 負載平衡保留 SSL 憑證,因此您也可以在此步驟中載入您的憑證。

    gcloud compute target-https-proxies create https-lb-proxy \
        --url-map web-map --ssl-certificates www-ssl-cert
    
  7. 建立兩個全域轉送規則,以將傳入要求轉送至 Proxy,一個用於 IPv4,另一個則用於 IPv6。

    • 如為全域外部應用程式負載平衡器,請使用 gcloud CLI 指令搭配 load-balancing-scheme=EXTERNAL_MANAGED。這項設定提供進階流量管理功能
    • 如果是傳統版應用程式負載平衡器,請使用 load-balancing-scheme=EXTERNAL
    gcloud compute forwarding-rules create https-content-rule \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --network-tier=PREMIUM \
        --address=lb-ipv4-1 \
        --global \
        --target-https-proxy=https-lb-proxy \
        --ports=443
    
    gcloud compute forwarding-rules create https-content-ipv6-rule \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --network-tier=PREMIUM \
        --address=lb-ipv6-1 \
        --global \
        --target-https-proxy=https-lb-proxy \
        --ports=443
    

建立全域轉送規則後,可能需等待數分鐘時間,才能讓您的設定傳播到全世界。

將網域連結至負載平衡器

建立負載平衡器後,請記下與負載平衡器相關聯的 IP 位址,例如 30.90.80.100。如要將網域指向負載平衡器,請使用網域註冊服務建立 A 記錄。如果您在 SSL 憑證中新增了多個網域,則必須為每個網域新增 A 記錄,並全部指向負載平衡器的 IP 位址。舉例來說,如要為 www.example.comexample.com 建立 A 記錄,請使用以下方法:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

如果您使用 Cloud DNS 做為 DNS 供應商,請參閱「新增、修改及刪除記錄」。

將流量傳送至執行個體

您已設定負載平衡器服務,現在可以開始傳送流量至轉送規則,並觀察流量是否分散到不同的執行個體。

控制台和網路瀏覽器

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「負載平衡」

  2. 按一下 web-map,即可展開您剛建立的負載平衡器。

  3. 在「Backend」(後端) 區段中,確認執行個體健康狀態良好。「Healthy」(健康) 欄應已填妥,顯示四個執行個體中的執行個體健康狀態均良好。如看到其他資訊,請先嘗試重新載入頁面。Google Cloud 主控台可能需要一段時間才能顯示執行個體的健康狀態良好。如果幾分鐘後,後端仍未顯示為健康,請檢查指派到您後端執行個體的防火牆設定與網路標記設定。

  4. 記下負載平衡器的 IPv4 和 IPv6 位址:

    1. 在 Google Cloud 控制台中,前往「External IP addresses」(外部 IP 位址) 頁面。

      前往「外部 IP 位址」

    2. 在「Name」下方,找出名為 lb-ipv4-1lb-ipv6-1 的地址,然後記錄「External Addresses」欄中的相關值。

  5. 如果您使用的是 Google 代管的憑證,請按照下列步驟操作:

    1. 建立下列 DNS 記錄:

    2. 確認憑證資源的狀態為「ACTIVE」(有效)。詳情請參閱 Google 代管的 SSL 憑證資源狀態

  6. 如要使用網路瀏覽器測試負載平衡器,請前往下列任一網址:

    • https://IP_ADDRESS,其中 IP_ADDRESS 是負載平衡器的 IPv4 位址。如果瀏覽器顯示憑證警告,您必須明確指示瀏覽器信任憑證。這項警告會出現,是因為憑證通常會使用網域而非 IP 位址進行設定。

    • https://FQDN,其中 FQDN 是您設定 DNS 以指向負載平衡器 IP 位址的完整網域名稱 (FQDN)。如果您使用的是自行管理的自行簽署 SSL 憑證,或是由自訂憑證授權單位 (CA) 簽署的自行管理 SSL 憑證,瀏覽器會顯示憑證警告,除非您明確設定瀏覽器信任憑證或其 CA。如要進一步瞭解自行管理的憑證,請參閱「建立私密金鑰和憑證」。

    您的瀏覽器應該會顯示另一個頁面,其中內容會顯示提供該頁面的執行個體名稱,以及其所屬區域 (例如:Page on ig-www-us-02 in us-central1-b)。

  7. 透過瀏覽器前往下列任一網址:

    • https://IP_ADDRESS/video,其中 IP_ADDRESS 是負載平衡器的 IPv4 位址。

    • https://FQDN/video,其中 FQDN 是您設定 DNS 以指向負載平衡器 IP 位址的 FQDN。

    您的瀏覽器應該會顯示另一個頁面,其中內容會顯示提供該頁面的 video 執行個體名稱,以及其所屬區域 (例如 Page on ig-video-us-02 in us-central1-b)。

gcloud 和使用 curl

  1. 記下負載平衡器的 IPv4 和 IPv6 位址:

    gcloud compute addresses describe lb-ipv4-1 \
    --format="get(address)" \
    --global
    
    gcloud compute addresses describe lb-ipv6-1 \
    --format="get(address)" \
    --global
    
  2. 如果您使用的是 Google 代管的憑證,請按照下列步驟操作:

    1. 建立下列 DNS 記錄:

    2. 確認憑證資源的狀態為「ACTIVE」(有效)。如需詳細資訊,請參閱 Google 代管 SSL 憑證資源狀態

      gcloud compute ssl-certificates list
      
  3. 使用 curl 指令來測試這些網址的回覆。請將 IP_ADDRESS 替換為負載平衡器的 IPv4 位址:

    curl -k https://IP_ADDRESS
    
    curl -k https://IP_ADDRESS/video/
    
  4. 使用 curl 指令測試這些網址的回應。請將 IP_ADDRESS 替換為負載平衡器的 IPv6 位址。針對 IPv6,您必須在位址周圍放上方括號 ([]),並使用 -g 標記停用 glob (例如:curl -g -6 "https://[2001:DB8::]/")。

    curl -k -g -6 https://[IP_ADDRESS]
    
    curl -k -g -6 https://[IP_ADDRESS]/video/
    

測試多區域功能

如要模擬不同地理區域內的使用者,您可以連結至自己位於其他地區的虛擬機器執行個體,再從該執行個體執行 curl 指令,您會看到要求前往該地區中距離最近的執行個體。

如果您連線至 ig-www-us-01,執行 curl 指令會顯示要求會傳送至 us-central1 中的例項。您會看到類似以下的輸出內容:Page on ig-www-us-02 in us-central1-b

如果您連線至 ig-www-eu-01,執行 curl 指令會顯示要求會傳送至 europe-west1 中的例項。您會看到類似以下的輸出內容:Page on ig-www-eu-02 in europe-west1-b

您可以用世界任一處的用戶端系統進行測試。若地區中的後端變得不健康,或達到能力上限,HTTPS 負載平衡器會自動傳送流量至下一個距離最近的地區

其他設定選項

本節會延伸說明設定範例,並提供替代和其他設定選項。所有工作都是選填項目。您可以按任何順序執行這些工作。

啟用工作階段相依性

以下程序說明如何為每項後端服務設定不同類型的工作階段親和性:

  • web-backend-service 的用戶端 IP 位址工作階段相依性
  • video-backend-service 的 HTTP Cookie 工作階段相依性

啟用用戶端 IP 相依性後,負載平衡器會根據用戶端 IP 位址建立的雜湊,將特定用戶端的要求導向至同一個後端 VM。

啟用產生的 Cookie 相依性後,負載平衡器會在第一個要求中發出 Cookie。對於每個含有相同 Cookie 的後續要求,負載平衡器會將要求導向相同的後端 VM 或端點。外部應用程式負載平衡器的 Cookie 名稱為 GCLB

控制台

如要為 web-backend-service 啟用用戶端 IP 工作階段相依性:

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「負載平衡」

  2. 點選「後端」

  3. 按一下「web-backend-service」 (您為本範例建立的其中一個後端服務的名稱),然後按一下「Edit」

  4. 在「後端服務詳細資料」頁面中,按一下「進階設定」

  5. 在「Session affinity」(工作階段相依性) 下方,從選單中選取「Client IP」(用戶端 IP)

  6. 按一下 [儲存]

如要為 video-backend-service 啟用產生的 Cookie 工作階段相依性,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「負載平衡」

  2. 點選「後端」

  3. 按一下「video-backend-service」 (您為本範例建立的其中一個後端服務的名稱),然後按一下「Edit」

  4. 在「後端服務詳細資料」頁面中,按一下「進階設定」

  5. 在「Session affinity」(工作階段相依性) 下方,從選單中選取「Generated cookie」

  6. 按一下 [Update]

gcloud

使用以下 gcloud 指令更新 web-backend-service 後端服務,並指定用戶端 IP 工作階段相依性:

gcloud compute backend-services update web-backend-service \
    --session-affinity=CLIENT_IP \
    --global

使用下列 gcloud 指令更新 video-backend-service 後端服務,並指定產生的 Cookie 工作階段相依性:

gcloud compute backend-services update video-backend-service \
    --session-affinity=GENERATED_COOKIE \
    --global

API

如要設定用戶端 IP 工作階段相依性,請向 backendServices/patch 方法提出 PATCH 要求。

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/web-backend-service
{
  "sessionAffinity": "CLIENT_IP"
}

如要設定產生的 Cookie 工作階段相依性,請對 backendServices/patch 方法發出 PATCH 要求。

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/video-backend-service
{
  "sessionAffinity": "GENERATED_COOKIE"
}

從後端 VM 移除外部 IP 位址

外部應用程式負載平衡器會使用其內部 IP 位址,與特殊的負載平衡器路徑與後端通訊。後端執行個體不需要外部 IP 位址也可以與負載平衡器通訊。您可以從後端服務移除外部 IP 位址以增加安全性。

若要從後端執行個體移除外部 IP 位址,請依照這些指示操作。

如果需要讓 SSH 連結至沒有外部 IP 位址的後端執行個體,請參閱連結沒有外部 IP 位址的執行個體

正在清除所用資源

完成本教學課程後,您可以刪除所建立的資源,這樣日後就不需再為這些資源付費。如果是在資源專屬的專案中建立資源,可以刪除整個專案。否則,您可以個別刪除資源。

刪除專案

控制台

  1. 前往 Google Cloud 控制台的「Projects」(專案) 頁面。

    前往「專案」

  2. 在專案清單中選取要刪除的專案,然後按一下 「刪除」

  3. 在對話方塊中輸入 PROJECT_ID,然後按一下「Shut down」(關閉) 即可刪除專案。

gcloud

執行下列指令,將 PROJECT_ID 替換為您的專案 ID:

gcloud projects delete PROJECT_ID

刪除個別資源

主控台

刪除負載平衡器

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「負載平衡」

  2. 勾選 web-map 旁邊的核取方塊。

  3. 點選頁面頂端的 [Delete] (刪除) 按鈕。

  4. 選取所有其他資源旁的核取方塊,包含後端服務、健康檢查狀態與 SSL 憑證。

  5. 按一下 [Delete load balancer and the selected resources] (刪除負載平衡器和選取的資源)

刪除執行個體群組

  1. 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組)

  2. 勾選頂端位於「Name」(名稱) 旁的核取方塊,並選取所有執行個體群組。

  3. 按一下 「Delete」(刪除)

  4. 在確認視窗中,按一下「Delete」。

釋出外部 IP 位址

  1. 在 Google Cloud 控制台中,前往「External IP addresses」(外部 IP 位址) 頁面。

    前往「外部 IP 位址」

  2. 勾選 lb-ipv4-1lb-ipv6-1 旁的核取方塊。

  3. 按一下「釋出靜態位址」

  4. 在確認視窗中,按一下「Delete」。

刪除防火牆規則

  1. 在 Google Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。

    前往「防火牆政策」

  2. 勾選 fw-allow-health-check-and-proxyfw-allow-ssh 旁的核取方塊。

  3. 按一下 「Delete」(刪除)

  4. 在確認視窗中,按一下「Delete」。

刪除 VM 執行個體

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 選取頂部位於「Name」(名稱) 旁的核取方塊,並選取所有執行個體群組。

  3. 按一下 「Delete」(刪除)

  4. 在確認視窗中,按一下「Delete」。

刪除虛擬私人雲端網路

  1. 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 按一下「lb-network」。

  3. 在網路詳細資料頁面上,按一下 [Delete VPC network] (刪除 VPC 網路)。

  4. 在確認視窗中,按一下「Delete」。

gcloud

刪除負載平衡器

如要刪除負載平衡器,您需要刪除其個別元件。

  1. 刪除轉送規則:

    gcloud compute forwarding-rules delete https-content-rule \
        --global
    
    gcloud compute forwarding-rules delete https-content-ipv6-rule \
        --global
    
  2. 刪除通用外部 IP 位址:

    gcloud compute addresses delete lb-ipv4-1 \
        --global
    
    gcloud compute addresses delete lb-ipv6-1 \
        --global
    
  3. 刪除目標 Proxy:

    gcloud compute target-https-proxies delete https-lb-proxy
    
  4. 刪除 SSL 憑證:

    gcloud compute ssl-certificates delete www-ssl-cert
    
  5. 刪除網址對應:

    gcloud compute url-maps delete web-map
    
  6. 刪除後端服務:

    gcloud compute backend-services delete web-backend-service \
        --global
    
    gcloud compute backend-services delete video-backend-service \
        --global
    
  7. 刪除健康狀態檢查:

    gcloud compute health-checks delete http-basic-check
    

您已刪除所有負載平衡器資源。

刪除執行個體群組

重複以下指令,並使用以下的名稱和區域組合,刪除四個非代管的執行個體群組。請依照下列資訊,替換 INSTANCE_GROUP_NAMEZONE

  • 名稱:ig-www-us,區域:us-central1-b
  • 名稱:ig-video-us,區域:us-central1-b
  • 名稱:ig-www-eu,區域:europe-west1-b
  • 名稱:ig-video-eu,區域:europe-west1-b
gcloud compute instance-groups unmanaged delete INSTANCE_GROUP_NAME \
   --zone=ZONE

刪除 VM 執行個體

重複下列指令,並使用以下的名稱與區域組合,刪除八個 VM。請依照下列資訊,替換 VM_NAMEZONE

  • 名稱:ig-www-us-01,區域:us-central1-b
  • 名稱:ig-www-us-02,區域:us-central1-b
  • 名稱:ig-video-us-01,區域:us-central1-b
  • 名稱:ig-video-us-02,區域:us-central1-b
  • 名稱:ig-www-eu-01,區域:europe-west1-b
  • 名稱:ig-www-eu-02,區域:europe-west1-b
  • 名稱:ig-video-eu-01,區域:europe-west1-b
  • 名稱:ig-video-eu-02,區域:europe-west1-b
gcloud compute instances delete VM_NAME \
   --zone=ZONE

刪除防火牆規則

刪除下列兩個防火牆規則:

gcloud compute firewall-rules delete fw-allow-health-check-and-proxy
gcloud compute firewall-rules delete fw-allow-ssh

刪除虛擬私人雲端網路

  1. 刪除 us-subnet

    gcloud compute networks subnets delete us-subnet \
    --region=us-central1
    
  2. 刪除 eu-subnet

    gcloud compute networks subnets delete eu-subnet \
    --region=europe-west1
    
  3. 刪除虛擬私有雲網路:

    gcloud compute networks delete lb-network
    

您已刪除此專案中設定的所有資源。

後續步驟