washpost/fusion-engineengine是Fusion架构的核心渲染组件,以Lambda形式存在。它接收包含可渲染组件(如React组件)及相关内容的Rendering对象,将这些组件与内容融合后生成HTML。同时,engine支持通过将生成的HTML写入S3实现多种缓存模式,使Fusion源可以优先或作为备份提供该HTML内容。
@arc-fusion/prop-types(Fusion自定义属性类型)。engine Lambda为单租户模式,通过Maestro进行部署。部署过程中,Maestro会打包前端组件(称为Feature Pack)和核心engine代码,使Fusion能够生成静态HTML。
Fusion提供公共HTTP端点,详细描述见API文档,主要包括:
以下路由专为PageBuilder Admin UI设计:
Configs描述PageBuilder Admin中可用的组件,为只读路由,返回JSON格式数据:
GET /configs/chainsGET /configs/featuresGET /configs/layoutsGET /configs/output-typesGET /configs/content/schemasGET /configs/content/sourcesResolvers由PageBuilder Admin发布,包含所有解析器的payload。该路由用于将JSON上传至S3,触发resolver-generator重建resolver Lambda:
POST /resolversSite Properties是站点特定的值,可在bundle中任何位置访问,本质上替代PageBuilder Classic中的Runtime Properties:
GET /propertiesengine Lambda中包含Webpack,在Rendering对象发布时被调用,用于编译相关资源。
部署后的目录结构如下:
/opt/ engine/ bundle/ build/ <-- 仅服务端编译的bundle代码 components/ combinations/ output-types/ fusion.json content/ schemas/ sources/ fusion.json properties.js dist/ <-- 服务端和客户端的编译bundle代码 components/ combinations/ configs/ components/ chains/ features/ layouts/ output-types/ content/ schemas/ sources/ engine/ admin.js polyfill.js preview.js react.js stats.json <-- webpack统计输出(仅本地开发) calls.json <-- 请求追踪输出(仅本地开发) generated/ <-- 动态生成的src文件,作为webpack入口点 components/ combinations/ properties.js linked_modules/ <-- 动态映射卷,支持`npm link` node_modules/ <-- 在docker镜像中构建的bundle模块,用于缓存优化 src/ <-- 实际的bundle仓库 environment/ <-- Lambda读取的环境变量 lib/ <-- fusion engine源代码 node_modules/ <-- fusion engine模块 src/ index.js <-- serverless和AWS Lambda调用的入口文件 webpack/ <-- webpack配置,在Compiler Lambda上执行 stages/ static/ <-- webpack静态产物(仅本地开发)
注意:
/opt目录是为可能使用的lambda layers做准备。build/或dist/放在bundle/下,以避免运行时bundle模块优先于engine版本。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务