將服務端點與 Code Engine 搭配使用
所有 IBM Cloud® Code Engine 專案都提供與 IBM Cloud® 服務端點的整合。 此支援可讓您從傳統基礎架構連接至 Code Engine 工作負載,並保持在 IBM Cloud 網路內。
您可以控制 Code Engine 工作量的可見性,並指定是否將應用程式或函數公開給公用或專用端點。 配置給 visibility = private 的應用程式或功能是透過服務端點來存取。 透過服務端點存取的應用程式或功能不會離開 IBM 網路,而會留在 IBM Cloud 網路內。
公用端點
公用端點提供與公用網路上的部署的連線。 在供應時,公用端點是所有部署的預設選項。 環境需要具有網際網路存取權才能連接至部署。
專用端點
專用網路上具有服務端點的部署會取得無法從公用網際網路存取的端點。 所有資料流量都會遞送至專用於 Code Engine 部署的硬體,並保留在 IBM Cloud 專用網路上。 進出此端點的所有資料流量都是免費的,且在資料流量保留在 IBM Cloud中的情況下不會產生費用。 在您的環境存取 IBM Cloud 私人網路之後,就不需要網際網路連線來連接您的部署。
Code Engine 具有專用端點的應用程式部署可從專用網路內的任何帳戶存取,且存取每個實例都需要驗證。 若要將此存取限制為特定 IP 位址、IP 位址範圍、IBM Cloud 服務或 VPC,請設定 基於上下文的限制規則。
使用服務端點安全管理 Code Engine 資源
-
指定 Code Engine 專案以使用專用端點。 您可以將 Code Engine 專案配置為僅搭配 CLI 使用專用端點。 若要建立專案,請搭配使用
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 create和project select指令,如果未明確指定--endpoint選項,則行為由系統決定。 如果 IBM Cloud CLI 連接到private.cloud.ibm.com,Code Engine 專案的行為就好像--endpoint是private。 如果 IBM Cloud CLI 連接到cloud.ibm.com,Code Engine 專案的行為就好像--endpoint是public。 -
如果您沒有建立新專案,而選擇了現有專案,且希望您的應用程式只對私有端點可見,請確認現有專案支援具有私有可見性的應用程式。 使用
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 -
建立只對專用端點可見的應用程式或函數。 搭配使用
ibmcloud ce application create或ibmcloud ce function create指令與--visibility=private選項。 另外,您也可以使用主控台來建立或更新應用程式或函式,並設定 應用程式的可見性。ibmcloud ce application create -n myapp --visibility=private
使用服務端點安全地存取您的應用程式
-
從 Code Engine 專案中,確認您的應用程式已配置
visibility=private設定。 請參閱 使用私有端點部署應用程式。 -
檢索到專用網路公開的 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
-
-
從 IBM Cloud 私人網路內部呼叫應用程式 (例如,從 IBM Cloud Shell 呼叫應用程式)。
myapp應用程式是一個簡單的 Hello World 應用程式。 當您使用 cURL, 執行myapp應用程式時,會返回Hello World。 例如,從 IBM Cloud Shell 執行:curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
使用服務端點安全地存取您的功能
-
從 Code Engine 專案中,確認您的函數已配置
visibility=private設定。 請參閱 使用專用端點部署函數。 -
檢索到專用網路公開的 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
-