2.3. 配置 Fuse Online 和 3scale API 发现
如果创建 API 供应商集成,则可能需要在红帽 3scale 中为该集成的 API 进行发现。默认行为是 API 在 3scale 中没有公开供自动发现。
如果启用了 3scale 发现功能,您可以稍后禁用它。
2.3.1. 配置 Fuse Online 以启用 3scale API 发现 复制链接链接已复制到粘贴板!
如果创建 API 供应商集成,则可能需要在红帽 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, Service Discovery。
- API 供应商集成的创建者可禁用 3scale 发现该集成。换句话说,每个 API 供应商集成创建者都可以选择集成 API 是否可以被发现。
先决条件
- Fuse Online 已安装在 OCP on-site.
-
已安装
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.comspec: components: server: features: managementUrlFor3scale: https://3scale-admin.apps.mycluster.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存资源。
可选。要确认已为您切换到的项目打开了发现,请调用以下命令:
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
2.3.2. 配置 Fuse Online 以禁用 API 的 3scale 发现 复制链接链接已复制到粘贴板!
如果您遵循了 配置 Fuse Online 中的步骤以启用 3scale 发现 API,每个 API 供应商集成创建者可以选择该集成的 API 是否可以被发现。在某些情况下,您可能想要重新配置默认行为,即集成 API 在 3scale 中不可发现,例如:您可能希望在 Fuse Online 中编辑和测试 API 供应商集成。为此,请更新 Fuse Online syndesis 自定义资源,以便指定 managementUrlFor3scale 键和值被注释掉的行。这禁用由 3scale 进行发现。然后重新发布任何带有可发现 API 的 API 供应商集成。
先决条件
- Fuse Online 已安装在 OCP on-site.
- 您需要在要禁用发现的项目中安装 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.comspec: components: server: features: # managementUrlFor3scale: https://3scale-admin.apps.mycluster.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 保存资源。
这会
更新同步自定义资源。该更新会删除OPENSHIFT_MANAGEMENT_URL_FOR3SCALE环境变量。对syndesis自定义资源的改变会触发syndesis-operator(负责安装 Fuse Online)重新部署syndesis-server。新的默认行为是,API 不再公开用于 3scale 中的发现。
不要编辑
syndesis-server DeploymentConfig对象,以删除OPENSHIFT_MANAGEMENT_URL_FOR3SCALE环境变量的设置。这不起作用,因为syndesis-operator会恢复您的更改。确保仅部署 Fuse Online,并根据合合自定义资源始终部署。syndesis-operator重新发布启用了发现的所有 API 供应商集成,并在您刚刚禁用发现的项目中创建的 API 供应商集成。
换句话说,如果您禁用了该集成的 API 发现功能,且为创建 API 供应商集成的项目启用了发现,则不需要重新发布 API 供应商集成。
结果
在相关 OpenShift 项目中创建的 API 供应商集成的 API 在 3scale 中不再可以被发现。
当 Fuse Online 发布(或重新发布)一个位于相关项目中的 API 供应商集成时,Fuse Online 提供了一个外部 URL,用于调用 API 供应商集成操作。