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 以启用 3scale 发现 API,请参阅 配置 Fuse Online 的自定义资源属性的描述。
安装后,您可以通过更新复合自定义资源来启用发现。执行此操作的说明位于本主题中。当您启用发现时,它只适用于在更新资源时连接到的 OpenShift 项目。
打开 3scale 服务发现意味着:
默认行为是 3scale 发布 API 供应商集成。当 3scale 发布 API 供应商集成时:
- Fuse Online 不提供运行 API 提供程序集成的外部 URL。
- API 只能通过 3scale 访问。3scale 中的配置需要公开端点。详情请参阅 Red Hat 3scale API Management, 服务发现。
- 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 在线集成的权限:
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 以禁用 3scale 发现 API
如果您遵循了 配置 Fuse Online 中的步骤以启用 3scale 发现 API,每个 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 供应商集成。
结果
在 3scale 中不再可发现相关 OpenShift 项目中创建的 API 供应商集成的 API。
当 Fuse Online 发布(或重新发布)位于相关项目中的 API 供应商集成时,Fuse Online 提供了一个外部 URL,用于调用 API 提供程序集成操作。