将虚拟专用端点与 Code Engine 配合使用
所有 IBM Cloud® Code Engine 项目都提供与 IBM Cloud® Virtual Private Endpoints (VPE) for Virtual Private Cloud (VPC) 的集成。 此支持使您能够使用从 VPC 中的子网分配的所选 IP 地址,从 VPC 网络连接到 Code Engine 应用程序或功能。
通过 Code Engine,可以使用以下类型的 VPE:
- 用于管理项目资源的虚拟专用端点。 每个区域有一个静态 VPE。
- 用于访问应用程序的虚拟专用端点。 每个 Code Engine 项目有一个 VPE。 可以使用此 VPE 访问项目中的所有应用程序。
专用端点提供与 IBM Cloud 专用网络上的项目资源,应用程序或功能的连接。 通过虚拟专用端点进行连接时,所有流量都将路由到专用于 Code Engine 应用程序的硬件,并保留在 IBM Cloud 专用网络上。 在流量保留在 IBM Cloud中的情况下,与此端点之间的所有流量都没有额外费用。
将使用公共端点和虚拟专用端点自动配置 Code Engine 项目。
您可以控制 Code Engine 应用程序的 可视性,并指定是向公共端点还是专用端点公开应用程序或函数。 可以通过 VPE 或其他 Code Engine 应用程序或功能来访问为专用网络配置的应用程序或功能。 通过 VPE 访问的应用程序或功能不会离开 IBM 网络并保留在 IBM Cloud 网络中。
使用 VPE 安全地管理项目资源
开始之前,必须具有 IBM Cloud 帐户。
-
创建 IBM Cloud® Virtual Private Cloud。 遵循 入门 指示信息。
-
确保 VPC 至少有一个 VSI (虚拟服务器实例),并且可以连接到 VSI。 您可以使用 VPC 控制台,CLI 和 API 从 IBM Cloud 控制台中的 IBM Cloud® Virtual Private Cloud 页面供应 VSI。
- 创建 SSH 密钥 以访问 VSI。
- 使用控制台创建虚拟服务器实例。
- 保留浮动 IP 地址,以便可以从因特网访问实例。
- 连接到 VSI。
-
在 IBM Cloud 控制台中,单击“菜单”图标,然后选择 VPC 基础结构-> 网络-> 虚拟专用端点网关。 通过完成此 指令,为区域 Code Engine 端点
api.<region>.codeengine.cloud.ibm.com创建 VPE。 -
创建 VPE 后,新的 VPE 和专用 DNS (pDNS) 可能需要几分钟才能完成此过程并开始为 VPC 工作。 当您在 VPE 的 详细信息视图 中看到 IP 地址集时,将确认完成。
-
通过 SSH 登录到 VSI 并使用
root@。 例如,ssh root@<VSI_floating_IP_address>。 -
要从 VSI 中访问 Code Engine 资源,请 设置 Code Engine CLI 环境。 确保 IBM Cloud CLI 已连接到
private.cloud.ibm.com。 -
指定 Code Engine 项目以使用专用端点。 要创建项目,请使用带有
--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 application create -n myapp --visibility=private
现在,您已配置并设置虚拟专用端点以管理项目资源。 如果要控制要向专用端点公开的应用程序,那么可以 设置 VPE 以访问应用程序。
使用 VPE 安全地访问应用程序
开始之前,必须具有 IBM Cloud 帐户。
仅当所选项目支持 应用程序专用可视性 时,才能使用 VPE 通过专用端点访问应用程序。 要确认项目是否支持应用程序专用可视性,请使用 ibmcloud ce project get 命令来验证 Application Private Visibility Supported 的输出是否设置为 true。
-
创建 IBM Cloud® Virtual Private Cloud。 遵循 入门 指示信息。
-
确保 VPC 至少有一个 VSI (虚拟服务器实例),并且可以连接到 VSI。 您可以使用控制台,CLI 和 API 从 IBM Cloud 控制台中的 IBM Cloud® Virtual Private Cloud 页面快速供应虚拟服务器实例。
- 创建 SSH 密钥 以访问 VSI。
- 使用 UI 创建虚拟服务器实例。
- 保留浮动 IP 地址,以便可以从因特网访问实例。
- 连接到 VSI。
-
从 Code Engine 项目中,确认已使用
visibility=private设置配置应用程序。 请参阅 使用专用端点部署应用程序。 -
在 IBM Cloud 控制台中,单击“菜单”图标,然后选择 VPC 基础结构-> 网络-> 虚拟专用端点网关。 通过完成此 指示信息,为用于专用应用程序可视性的特定项目的区域 Code Engine 端点创建 VPE。 此项目在表中列出,其端点格式为
*.<uuid>.private.<region>.codeengine.appdomain.cloud。 -
创建 VPE 后,新的 VPE 和专用 DNS (pDNS) 可能需要几分钟才能完成此过程并开始为 VPC 工作。 当您在 VPE 的 详细信息视图 中看到 IP 地址集时,将确认完成。
-
检索向专用网络公开的 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 -
现在,您可以在 VSI 中使用实例。 调用应用程序。
myapp应用程序是一个简单的 Hello World 应用程序。 当您对myapp应用程序执行 curl 操作时,将返回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。
-
创建 IBM Cloud® Virtual Private Cloud。 遵循 入门 指示信息。
-
确保 VPC 至少有一个 VSI (虚拟服务器实例),并且可以连接到 VSI。 您可以使用控制台,CLI 和 API 从 IBM Cloud 控制台中的 IBM Cloud® Virtual Private Cloud 页面快速供应虚拟服务器实例。
- 创建 SSH 密钥 以访问 VSI。
- 使用 UI 创建虚拟服务器实例。
- 保留浮动 IP 地址,以便可以从因特网访问实例。
- 连接到 VSI。
-
从 Code Engine 项目中,确认已使用
visibility=private设置配置应用程序。 请参阅 使用专用端点部署应用程序。 -
在 IBM Cloud 控制台中,单击“菜单”图标,然后选择 VPC 基础结构-> 网络-> 虚拟专用端点网关。 通过完成此 指示信息,为用于专用应用程序可视性的特定项目的区域 Code Engine 端点创建 VPE。 此项目在表中列出,其端点格式为
*.<uuid>.private.<region>.codeengine.appdomain.cloud。 -
创建 VPE 后,新的 VPE 和专用 DNS (pDNS) 可能需要几分钟才能完成此过程并开始为 VPC 工作。 当您在 VPE 的 详细信息视图 中看到 IP 地址集时,将确认完成。
-
检索向专用网络公开的 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 中使用实例。