搭配使用「虛擬專用端點」與 Code Engine

所有 IBM Cloud® Code Engine 專案都提供與 IBM Cloud® Virtual Private Endpoints (VPE) for Virtual Private Cloud (VPC) 的整合。 此支援可讓您使用您選擇的 IP 位址,從 VPC 網路連接至 Code Engine 應用程式或功能,這些 IP 位址是從 VPC 內的子網路配置。

使用 Code Engine,您可以使用下列類型的 VPE:

專用端點提供與 IBM Cloud 專用網路上專案資源、應用程式或函數的連線。 當您透過虛擬專用端點進行連接時,所有資料流量都會遞送至專用於 Code Engine 應用程式的硬體,並保留在 IBM Cloud 專用網路上。 如果資料流量保留在 IBM Cloud中,則進出此端點的所有資料流量都不需額外收費。

Code Engine 專案會自動配置公用和虛擬專用端點。

您可以控制 Code Engine 應用程式的 可見性,並指定要向公用或專用端點公開應用程式或功能。 配置給專用網路的應用程式或函數可以透過 VPE 或其他 Code Engine 應用程式或函數來存取。 透過 VPE 存取的應用程式或功能不會離開 IBM 網路,也不會停留在 IBM Cloud 網路內。

使用 VPE 安全地管理專案資源

開始之前,您必須具有 IBM Cloud 帳戶

  1. 建立 IBM Cloud® Virtual Private Cloud。 遵循 入門 指示。

  2. 請確定您的 VPC 至少有一個 VSI (虛擬伺服器實例),且可以連接至 VSI。 您可以使用 VPC 主控台、CLI 及 API,從 IBM Cloud 主控台中的 IBM Cloud® Virtual Private Cloud 頁面佈建 VSI。

    1. 建立 SSH 金鑰 以存取 VSI。
    2. 使用主控台來建立虛擬伺服器實例
    3. 保留浮動 IP 位址,以便可以從網際網路存取您的實例。
    4. 連接至 VSI
  3. 在 IBM Cloud 主控台中,按一下「功能表」圖示,然後選取 VPC 基礎架構-> 網路-> 虛擬專用端點閘道。 透過完成此 指示,為地區 Code Engine 端點 api.<region>.codeengine.cloud.ibm.com 建立 VPE。

  4. 建立 VPE 之後,新的 VPE 和專用 DNS (pDNS) 可能需要幾分鐘才能完成處理程序,並開始為您的 VPC 工作。 當您在 VPE 的 詳細資料視圖 中看到 IP 位址集時,即會確認完成。

  5. 透過 SSH 登入 VSI 並使用 root@。 例如,ssh root@<VSI_floating_IP_address>

  6. 若要從 VSI 內存取 Code Engine 資源,請 設定 Code Engine CLI 環境。 確定 IBM Cloud CLI 已連接至 private.cloud.ibm.com

  7. 指定 Code Engine 專案以使用專用端點。 若要建立專案,請搭配使用 ibmcloud ce project create 指令與 --endpoint=private 選項。

    ibmcloud ce project create --name myproject --endpoint=private
    

    請等待直到專案處於 active 狀態。 使用 CLI,您可以使用 ibmcloud ce project get 指令來確認專案狀態。

    如果您想要現有的 Code Engine 專案使用專用端點,請搭配使用 ibmcloud ce project select 指令與 --endpoint=private 選項。

    ibmcloud ce project select --name myproject --endpoint=private
    

    對於 project createproject select 指令,如果未明確指定 --endpoint 選項,則行為由系統決定。 如果 IBM Cloud CLI 已連接至 private.cloud.ibm.com,則 Code Engine 專案的行為如同 --endpointprivate。 如果 IBM Cloud CLI 已連接至 cloud.ibm.com,則 Code Engine 專案的行為如同 --endpointpublic

  8. 如果您未建立新專案,並且已選取現有專案,並且您希望應用程式或功能僅對專用端點可見,請確認現有專案支援具有專用可見性的應用程式。 使用 ibmcloud ce project get 指令來驗證 Application Private Visibility Supported 的輸出是否設為 true。 如果值為 false,請 聯絡 IBM 支援中心,以在現有專案內啟用此功能。

    ibmcloud ce project get -n myproject
    

    輸出範例

    Getting project 'myproject'...
    OK
    
    Name:                                      myproject  
    ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
    Status:                                    active  
    Enabled:                                   true  
    Application Private Visibility Supported:  false  
    Selected:                                  true  
    Region:                                    us-south
    Resource Group:             default
    Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
    Age:                        52d
    Created:                                   Tue, 28 Sep 2021 05:12:16 -0500  
    Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500  
    
    Quotas:    
    Category                                  Used  Limit  
    App revisions                             1     60  
    Apps                                      1     20  
    Build runs                                1     100  
    Builds                                    2     100  
    Configmaps                                2     100  
    CPU                                       0     64  
    Ephemeral storage                         0     256G  
    Instances (active)                        0     250  
    Instances (total)                         0     2500  
    Job runs                                  0     100  
    Jobs                                      0     100  
    Memory                                    0     256G  
    Secrets                                   6     100  
    Subscriptions (cron)                      0     100  
    Subscriptions (IBM Cloud Object Storage)  0     100  
    Subscriptions (Kafka)                     0     100
    
  9. 建立只對專用端點可見的應用程式。 搭配使用 ibmcloud ce application create 指令與 --visibility=private 選項。 或者,您可以使用主控台來建立應用程式或更新現有應用程式,並設定 應用程式的可見性

    ibmcloud ce application create -n myapp --visibility=private
    

您現在已配置並設定虛擬專用端點來管理專案資源。 如果您想要控制要向專用端點公開的應用程式,則可以 設定 VPE 以存取應用程式

使用 VPE 安全地存取應用程式

開始之前,您必須具有 IBM Cloud 帳戶

如果您選取的專案支援 應用程式專用可見性,則只能使用 VPE 來存取具有專用端點的應用程式。 若要確認專案是否支援應用程式專用可見性,請使用 ibmcloud ce project get 指令來驗證 Application Private Visibility Supported 的輸出是否設為 true

  1. 建立 IBM Cloud® Virtual Private Cloud。 遵循 入門 指示。

  2. 請確定您的 VPC 至少有一個 VSI (虛擬伺服器實例),且可以連接至 VSI。 您可以使用主控台、CLI 及 API,從 IBM Cloud 主控台中的 IBM Cloud® Virtual Private Cloud 頁面快速佈建虛擬伺服器實例。

    1. 建立 SSH 金鑰 以存取 VSI。
    2. 使用使用者介面建立虛擬伺服器實例
    3. 保留浮動 IP 位址,以便可以從網際網路存取您的實例。
    4. 連接至 VSI
  3. 從 Code Engine 專案中,確認您的應用程式已配置 visibility=private 設定。 請參閱 使用專用端點部署應用程式

  4. 在 IBM Cloud 主控台中,按一下「功能表」圖示,然後選取 VPC 基礎架構-> 網路-> 虛擬專用端點閘道。 完成此 指示,針對您要用於專用應用程式可見性的特定專案,建立地區 Code Engine 端點的 VPE。 此專案在表格中列出,其端點格式為 *.<uuid>.private.<region>.codeengine.appdomain.cloud

  5. 建立 VPE 之後,新的 VPE 和專用 DNS (pDNS) 可能需要幾分鐘才能完成處理程序,並開始為您的 VPC 工作。 當您在 VPE 的 詳細資料視圖 中看到 IP 位址集時,即會確認完成。

  6. 擷取向專用網路公開的 Code Engine 應用程式的 URL。 URL 採用下列格式: <app>.<uuid>.private.<region>.codeengine.appdomain.cloud。 從 Code Engine 主控台,移至應用程式的 網域對映 標籤,以檢視應用程式及其可用 URL 的可見性。 從 Code Engine CLI,您可以搭配使用 ibmcloud ce application get 指令與 --option url 選項。 因為 myapp 的可見性設為 visibility=private,所以使用此指令指定 --option url 會將 URL 輸出至專用網路。

    ibmcloud ce application get -n myapp -output url
    

    輸出範例

    http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    
  7. 您現在可以在 VSI 中使用您的實例。 呼叫應用程式。 myapp 應用程式是一個簡單的 Hello World 應用程式。 當您 curl myapp 應用程式時,會傳回 Hello World

    curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    

使用 VPE 安全地存取功能

開始之前,您必須具有 IBM Cloud 帳戶

如果您選取的專案支援 函數專用可見性,則只能使用 VPE 來存取具有專用端點的函數。 若要確認專案是否支援函數專用可見性,請使用 ibmcloud ce project get 指令來驗證 Application Private Visibility Supported 的輸出是否設為 true

  1. 建立 IBM Cloud® Virtual Private Cloud。 遵循 入門 指示。

  2. 請確定您的 VPC 至少有一個 VSI (虛擬伺服器實例),且可以連接至 VSI。 您可以使用主控台、CLI 及 API,從 IBM Cloud 主控台中的 IBM Cloud® Virtual Private Cloud 頁面快速佈建虛擬伺服器實例。

    1. 建立 SSH 金鑰 以存取 VSI。
    2. 使用使用者介面建立虛擬伺服器實例
    3. 保留浮動 IP 位址,以便可以從網際網路存取您的實例。
    4. 連接至 VSI
  3. 從 Code Engine 專案中,確認您的應用程式已配置 visibility=private 設定。 請參閱 使用專用端點部署應用程式

  4. 在 IBM Cloud 主控台中,按一下「功能表」圖示,然後選取 VPC 基礎架構-> 網路-> 虛擬專用端點閘道。 完成此 指示,針對您要用於專用應用程式可見性的特定專案,建立地區 Code Engine 端點的 VPE。 此專案在表格中列出,其端點格式為 *.<uuid>.private.<region>.codeengine.appdomain.cloud

  5. 建立 VPE 之後,新的 VPE 和專用 DNS (pDNS) 可能需要幾分鐘才能完成處理程序,並開始為您的 VPC 工作。 當您在 VPE 的 詳細資料視圖 中看到 IP 位址集時,即會確認完成。

  6. 擷取向專用網路公開之 Code Engine 函數的 URL。 URL 採用下列格式: <function>.<uuid>.private.<region>.codeengine.appdomain.cloud。 從 Code Engine 主控台,移至函數的 網域對映 標籤,以檢視函數及其可用 URL 的可見性。 從 Code Engine CLI,您可以使用 ibmcloud ce function get 指令。 因為 myfunction 的可見性設為 visibility=private,這個指令會顯示專用網路的 URL。

    ibmcloud ce function get -n myfunction
    

    輸出範例

    http://myfunction.1abc23def19.private.us-south.codeengine.appdomain.cloud
    

您現在可以在 VSI 中使用您的實例。