环境提供隔离空间,您的代码在特定依赖和配置下运行。这可用于多种原因,如兼容性测试或版本管理。使用不同环境有助于代码一致性、测试和生产隔离,降低部署代码时的错误风险。
Wrangler 允许您为每个环境部署具有不同配置的同一 Worker 应用。
如果您使用 Wrangler 环境,必须为每个环境指定要使用的 Durable Object 绑定。
Durable Object 绑定不会继承。例如,您可以如下定义名为 staging 的环境:
{
"env": {
"staging": {
"durable_objects": {
"bindings": [
{
"name": "EXAMPLE_CLASS",
"class_name": "DurableObjectExample"
}
]
}
}
}
}[[env.staging.durable_objects.bindings]]
name = "EXAMPLE_CLASS"
class_name = "DurableObjectExample"由于 Wrangler 在发布时将环境名称附加到顶层名称,对于名为 worker-name 的 Worker,上述示例等效于:
{
"env": {
"staging": {
"durable_objects": {
"bindings": [
{
"name": "EXAMPLE_CLASS",
"class_name": "DurableObjectExample",
"script_name": "worker-name-staging"
}
]
}
}
}
}[[env.staging.durable_objects.bindings]]
name = "EXAMPLE_CLASS"
class_name = "DurableObjectExample"
script_name = "worker-name-staging"staging 环境中的 "EXAMPLE_CLASS" 绑定到与顶层 "EXAMPLE_CLASS" 绑定不同的 Worker 代码名称,因此将访问具有不同持久存储的不同 Durable Objects。
如果您想要访问与顶层绑定相同 Objects 的环境特定绑定,请使用 script_name 显式指定顶层 Worker 代码名称:
{
"env": {
"another": {
"durable_objects": {
"bindings": [
{
"name": "EXAMPLE_CLASS",
"class_name": "DurableObjectExample",
"script_name": "worker-name"
}
]
}
}
}
}[[env.another.durable_objects.bindings]]
name = "EXAMPLE_CLASS"
class_name = "DurableObjectExample"
script_name = "worker-name"您可以为每个环境以及顶层定义 Durable Object 迁移。环境级迁移覆盖顶层迁移。
有关更多信息,请参阅迁移 Wrangler 配置。
本地开发会话创建独立的、仅本地的环境,镜像生产环境,以便在部署到生产之前测试 Worker 和 Durable Objects。
DB 的现有 Durable Object 绑定在本地运行时对 Worker 可用。
请参阅 Workers 本地开发。
KV 支持的 Durable Objects 支持使用仪表板 playground 进行远程开发。仪表板 playground 使用浏览器版 Visual Studio Code,允许您完全在浏览器中快速迭代 Worker。
要开始远程开发:
-
在 Cloudflare 仪表板中,进入 Workers & Pages 页面。
Go to Workers & Pages ↗ -
选择现有 Worker。
-
选择屏幕右上角的 Edit code(编辑代码) 图标。