3.3. 配置 Fuse Online 和 3scale API 发现
如果创建 API 供应商集成,您可能需要为 Red Hat 3scale 中的该集成启用 API 发现。默认行为是 API 不会公开进行 3scale 中的自动发现。
如果启用 3scale 发现,您可以稍后选择性地禁用它。
3.3.1. 配置 Fuse Online 以启用 API 的 3scale 发现
如果创建 API 供应商集成,您可能需要为 Red Hat 3scale 中的该集成启用 API 发现。默认行为是 API 不会公开进行 3scale 中的自动发现。启用发现时,您必须提供 3scale 用户界面的 URL。
要将 Fuse Online 配置为在安装 Fuse Online 前启用 API 3scale 发现,请参阅配置 Fuse Online 的自定义资源属性的描述。
安装后,您可以通过更新 syndesis
自定义资源来启用发现功能。执行此操作的说明包括在此文档中。启用发现功能时,它仅适用于更新资源时您连接到的 OpenShift 项目。
打开 3scale 服务发现意味着:
默认行为是 3scale 发布 API 供应商集成。当 3scale 发布 API 供应商集成时:
- Fuse Online 不提供正在运行的 API 供应商集成的外部 URL。
- 该 API 只能通过 3scale 访问。需要 3scale 中的配置来公开端点。详情请参阅 Red Hat 3scale API Management、Service Discovery。
- API 提供程序集成的创建者可以禁用该集成的 3scale 发现。换句话说,每个 API 提供程序集成创建者都可以选择集成的 API 是否可以被发现。
先决条件
- Fuse Online 安装在 OCP 现场。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 - 您有在要启用 API 发现的项目中安装 Fuse Online 的权限。
- 您知道 OpenShift 集群中的 3scale 项目的名称。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到运行 Fuse Online 的 OpenShift 项目。您只为此项目启用发现功能。例如:
oc project my-fuse-online-project
添加允许 3scale 项目查看 Fuse Online 集成的权限:
oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp
例如,如果 OpenShift 上的 3scale 项目命名为
my3scale
:oc adm policy add-cluster-role-to-user view system:serviceaccount:my3scale:amp
编辑
syndesis
自定义资源:调用以下命令,这通常在编辑器中打开资源:
oc edit syndesis
通过将
managementUrlFor3scale
设置为 3scale 用户界面的 URL 来编辑资源。结果类似如下:spec: components: server: features: managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
- 保存资源。
可选。要确认已在您切换到的项目上打开发现,请输入以下命令:
oc describe dc/syndesis-server
打开发现后,此命令的输出会显示
OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量已设置为您在自定义资源中指定的 URL。
结果
对 syndesis
自定义资源的更改会触发 syndesis-operator
(负责安装 Fuse Online)以重新部署 syndesis-server
。在切换到的 OpenShift 项目中,新的默认行为是 API 在 3scale 中公开以发现。
不要编辑 syndesis-server DeploymentConfig
对象,以设置 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量。这不起作用,因为 syndesis-operator
会还原您的更改。
确保仅部署 Fuse Online,并始终根据合成自定义资源进行部署。
syndesis
-operator
3.3.2. 配置 Fuse Online 以禁用 API 的 3scale 发现
如果您遵循 配置 Fuse Online 以启用 API 的 3scale 发现 的步骤,则每个 API 供应商集成创建者都可以选择是否可发现集成 API。在某些情况下,您可能想要重新配置默认行为,即集成 API 在 3scale 中不可发现,例如,您可能想要在 Fuse Online 中编辑和测试 API 供应商集成。为此,请更新 Fuse Online syndesis
自定义资源,以便指定 managementUrlFor3scale
键和值的行被注释掉。这将禁用 3scale 发现。然后重新发布任何使用可发现 API 发布的 API 供应商集成。
先决条件
- Fuse Online 安装在 OCP 现场。
- 您有在要禁用发现的项目中安装 Fuse Online 的权限。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 - 在 OpenShift 项目中启用了 3scale 发现,如 配置 Fuse Online 以启用 API 的 3scale 发现 中所述。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到启用了 3scale 发现的 OpenShift 项目。例如:
oc project my-fuse-online-project
编辑
syndesis
自定义资源:调用以下命令,这通常在编辑器中打开资源:
oc edit syndesis
通过在指定
managementUrlFor3scale
键和值的行开头插入 hash 符号(#
)来编辑资源。这使得行成为禁用发现的注释。结果应类似如下:spec: components: server: features: # managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
保存资源。
这会更新
syndesis
自定义资源。此更新移除了OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量。对syndesis
自定义资源的更改会触发syndesis-operator
(负责安装 Fuse Online)以重新部署syndesis-server
。新的默认行为是 API 不再在 3scale 中发现。
不要编辑
syndesis-server DeploymentConfig
对象,以删除OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量的设置。这不起作用,因为syndesis-operator
会还原您的更改。syndesis
-operator重新发布启用了发现且在您刚刚禁用发现的项目中创建的任何 API 供应商集成。
换句话说,如果您在为创建 API 供应商集成的项目启用了发现时禁用了该集成的 API 发现功能,则不需要重新发布 API 供应商集成。
结果
在相关 OpenShift 项目中创建的 API 供应商集成的 API 不再可在 3scale 中发现。
当 Fuse Online 发布(或重新发布)位于相关项目中的 API 提供程序集成时,Fuse Online 提供调用 API 提供程序集成操作的外部 URL。