第 10 章 覆盖核心后端服务配置
Red Hat Developer Hub (RHDH)后端平台由多个已封装的核心服务组成。RHDH 后端在初始化过程中静态安装这些默认核心服务。
您可以通过自定义后端源代码和重建 Developer Hub 应用程序来配置这些核心服务。或者,您可以使用动态插件功能将核心服务安装为 BackendFeature 来自定义核心服务。
要使用动态插件功能在 RHDH 应用程序中自定义核心服务,您必须配置后端以避免静态安装给定的默认核心服务。
例如,可以通过为 root HTTP 路由器后端服务安装自定义配置功能来处理所有传入请求,从而添加中间件功能来处理所有传入的请求,以允许访问底层 Express 应用。
处理传入 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 不会自动安装默认实施。
10.1. 覆盖环境变量 复制链接链接已复制到粘贴板!
要允许动态插件加载核心服务覆盖,您必须启动 Developer Hub 后端,并将对应的核心服务 ID 环境变量设置为 true。
| 变量 | 描述 |
|---|---|
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |
|
|
覆盖 |