将服务端点与 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 配合使用。 要创建项目,请使用带有
--endpoint=private
选项的ibmcloud ce project create
命令。ibmcloud ce project create --name myproject --endpoint=private
等待项目处于
active
状态。 通过 CLI,您可以使用ibmcloud ce project get
命令来确认项目状态。如果希望现有 Code Engine 项目使用专用端点,请使用带有
--endpoint=private
选项的ibmcloud ce project select
命令。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
-
创建仅对专用端点可视的应用程序或函数。 使用带有
--visibility=private
选项的ibmcloud ce application create
或ibmcloud ce function create
命令。 您也可以使用控制台创建或更新应用程序或函数,并设置 应用程序的可见性。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,使用带有
--option url
选项的ibmcloud ce application get
命令。 在下面的示例中,由于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
-