try.boxlang.io 现已支持全部 BoxLang 版本,并可自由开关 CFML 兼容模式
现在,BoxLang 演练场允许你在已发布的 BoxLang 版本中进行选择,并开启或关闭 CFML 兼容性,而无需安装运行时或设置容器。选择版本,输入代码片段,即可在浏览器中运行。
编辑器背后是 AWS Lambda 上的无服务器实现。每种 BoxLang 版本与兼容模式的组合都从同一个仓库构建,并部署为相互隔离的函数。以下是变化内容以及这种安排如何运作。
[LOADING...]
演练场允许你选择运行时版本、切换 CFML 兼容性、分享代码,并直接在浏览器中运行示例。
演练场的新变化
选择 BoxLang 版本
使用版本选择器选择 Latest、Snapshot 或某个已发布的具体版本。Latest 跟随最新发布;固定版本则可让你在重复运行时,对照同一运行时检查行为。
[LOADING...]
版本选择器展示最新构建、快照和具体已发布版本,方便开发者比较运行时行为。
开启或关闭 CFML 兼容性
CFML Compat 开关决定所选环境是否加载 bx-compat-cfml,这是 BoxLang 用于运行兼容 Adobe ColdFusion 和 Lucee 代码的模块。将其关闭,即可单独测试原生 BoxLang。每个可用的运行时版本都具备这两种配置。
[LOADING...]
你可以在启用或禁用 CFML 兼容性的情况下运行同一代码片段,以比较原生 BoxLang 与兼容模式的行为。
为什么版本选择很重要
- 复现缺陷: 针对较早和较晚版本运行相同代码,以隔离行为变化。
- 比较发布版本: 无需更改本地安装即可检查新功能。
- 评估 CFML 迁移: 在启用兼容性的情况下尝试现有 CFML 代码片段,然后探索原生 BoxLang 替代方案。
- 分享可复现示例: 在报告问题或讲解功能时,清楚说明运行时版本和兼容性选择。
架构:一个仓库,多个 Lambda 环境
演练场不是为每个版本维护单独的服务器,而是构建并部署一组相互隔离的 AWS Lambda 函数矩阵。
每个函数都打包其指定的 BoxLang 版本,并在需要时打包兼容模块。它拥有自己的配置、内存和执行上下文,AWS 会单独对其进行扩缩容。添加一个发布版本意味着扩展构建矩阵,而不是再创建和管理一台服务器。
这种模式不仅适用于演练场:同一个仓库可以为回归测试、API 版本、迁移或特定租户工作负载生成相互隔离的运行时。
AWS Lambda 上的 BoxLang 无服务器
演练场使用 BoxLang AWS Lambda 运行时,开发者也可以在自己的项目中使用它。
编写一个类,部署一个函数
Lambda 应用可以是一个名为 Lambda.bx 的 BoxLang 类,其中包含 run() 方法:
运行时会以 BoxLang 结构体的形式将传入的 JSON 提供在 event 中。context 参数是原生 AWS 上下文对象,可通过 Java 互操作性访问。可选的 response 结构体控制 HTTP 风格响应。
你也可以直接返回数据。字符串、结构体和数组会自动按需序列化:
使用运行时的处理程序配置你的函数:
运行时特性
BoxLang Lambda 运行时提供的约定和服务,足以支持不止单函数演示:
- 请求和响应处理,包括 JSON 序列化和错误处理。
- 基于约定的 URI 路由:例如
/products映射到Products.bx。 - 通过
x-bx-function标头选择备用方法。 - 在热调用之间重用已编译的类。
- 可通过
BOXLANG_LAMBDA_CONNECTION_POOL_SIZE配置连接池。 - 通过
BOXLANG_LAMBDA_DEBUGMODE=true启用调试指标。 - 通过
Application.bx提供应用生命周期钩子。 - 从
src/resources/boxlang_modules打包 BoxLang 模块。 - 日志记录与追踪。
构建、测试与部署
BoxLang AWS Lambda 起始仓库 包含测试、Maven 依赖管理、AWS SAM 集成和 GitHub Actions。其典型工作流如下:
该起始项目包含用于发布构建和快照构建的 CI/CD 工作流。发布工作流可以在推送到 main 时运行,也可以通过手动触发运行;快照工作流则处理非 main 分支和拉取请求。AWS 部署步骤可通过项目工具获得,并可按需启用,包括设置后通过 workbench/2-deploy.sh 和 CloudFormation 进行部署。
为什么使用 BoxLang 构建无服务器应用?
BoxLang 将动态语言语法与 JVM 互操作性相结合。AWS Java 库和 Maven 依赖可与原生语言特性(如闭包和集合成员方法)一起使用。拥有现有 CFML 代码的团队可以使用 bx-compat-cfml 评估无服务器执行,而不必假设完全重写是唯一选择。
Lambda 基于用量的扩缩容也适合带版本的演练场:不常用的组合无需运行在永久预置的服务器上。开发者可以将同样的方法用于内部测试环境或独立扩缩容的 API 变体。
试用并探索源代码
打开 try.boxlang.io,选择版本,更改 CFML Compat 设置,然后运行代码片段。要构建类似项目或自行部署 BoxLang 函数,请从以下资源开始:
如需查看原始公告和更多 Ortus 资源,请参阅 Ortus Solutions 博客上的原始文章。
[LOADING...]
作者
Luis Majano
Ortus Solutions 首席执行官 - 工程师 - 作者 - ColdBox HMVC、BoxLang JVM 语言、ContentBox CMS 等项目的创建者。
相关文章
-
BoxLang 1.17.0 发布:模块 Inception、CLI 检查器、Jar 加载等更多功能!
AI [LOADING...]
[LOADING...]Cristobal Escobar 2026 年 9 月 17 日 231 次浏览 -
BoxLang AI 3.4.0:网关、人在回路与完整安全栈
AI [LOADING...]
[LOADING...]Luis Majano 2026 年 9 月 25 日 224 次浏览 -
社区聚焦:BoxLang Express 将 Node 风格 HTTP 带入 JVM
AI BoxLang [LOADING...]
[LOADING...]Cristobal Escobar 2026 年 9 月 8 日 187 次浏览 -
宣布 BX-WORD:面向 BoxLang 的原生 Microsoft Word 自动化
BoxLang BoxLang [LOADING...]
[LOADING...]Cristobal Escobar 2026 年 9 月 1 日 165 次浏览BoxLang## 加入讨论
AI [LOADING...]
[LOADING...]Cristobal Escobar2026年9月17日 231 次浏览
BoxLang 1.17.0 发布:模块自定义加载、CLI 检查器、Jar 加载及更多内容!
AI [LOADING...]
[LOADING...]Luis Majano2026年9月25日 224 次浏览
BoxLang AI 3.4.0:网关、人在回路与完整安全栈
BoxLang [LOADING...]
[LOADING...]Cristobal Escobar2026年9月8日 187 次浏览
社区聚焦:BoxLang Express 将 Node 风格的 HTTP 带入 JVM
BoxLang [LOADING...]
[LOADING...]Cristobal Escobar2026年9月1日 165 次浏览