第 11 章 覆盖核心后端服务配置
Red Hat Developer Hub (RHDH)后端平台由多个已封装的核心服务组成。RHDH 后端在初始化过程中静态安装这些默认核心服务。
使用动态插件功能将其安装为 BackendFeature 来自定义核心服务。
流程
通过在 Developer Hub
app-config.yaml配置文件中将对应的核心服务 ID 环境变量设置为true,将 Developer Hub 配置为允许核心服务覆盖。Expand 表 11.1. 环境变量和核心服务 ID 变量 覆盖相关服务 ENABLE_CORE_AUTH_OVERRIDEcore.authENABLE_CORE_CACHE_OVERRIDEcore.cacheENABLE_CORE_ROOTCONFIG_OVERRIDEcore.rootConfigENABLE_CORE_DATABASE_OVERRIDEcore.databaseENABLE_CORE_DISCOVERY_OVERRIDEcore.discoveryENABLE_CORE_HTTPAUTH_OVERRIDEcore.httpAuthENABLE_CORE_HTTPROUTER_OVERRIDEcore.httpRouterENABLE_CORE_LIFECYCLE_OVERRIDEcore.lifecycleENABLE_CORE_LOGGER_OVERRIDEcore.loggerENABLE_CORE_PERMISSIONS_OVERRIDEcore.permissionsENABLE_CORE_ROOTHEALTH_OVERRIDEcore.rootHealthENABLE_CORE_ROOTHTTPROUTER_OVERRIDEcore.rootHttpRouterENABLE_CORE_ROOTLIFECYCLE_OVERRIDEcore.rootLifecycleENABLE_CORE_SCHEDULER_OVERRIDEcore.schedulerENABLE_CORE_USERINFO_OVERRIDEcore.userInfoENABLE_CORE_URLREADER_OVERRIDEcore.urlReaderENABLE_EVENTS_SERVICE_OVERRIDEevents.service-
将自定义核心服务安装为
BackendFeature,如下例所示:
处理传入 HTTP 请求的 BackendFeature 中间件功能示例
// Create the BackendFeature
export const customRootHttpServerFactory: BackendFeature =
rootHttpRouterServiceFactory({
configure: ({ app, routes, middleware, logger }) => {
logger.info(
'Using custom root HttpRouterServiceFactory configure function',
);
app.use(middleware.helmet());
app.use(middleware.cors());
app.use(middleware.compression());
app.use(middleware.logging());
// Add a the custom middleware function before all
// of the route handlers
app.use(addTestHeaderMiddleware({ logger }));
app.use(routes);
app.use(middleware.notFound());
app.use(middleware.error());
},
});
// Export the BackendFeature as the default entrypoint
export default customRootHttpServerFactory;
+ 在上例中,因为 BackendFeature 覆盖 HTTP 路由器服务的默认实现,您必须将 ENABLE_CORE_ROOTHTTPROUTER_OVERRIDE 环境变量设置为 true,以便 Developer Hub 不会自动安装默认实施。