此文本已使用 Salesforce 机器翻译系统进行翻译。如需了解更多详情,请点击此处。
News: PWA Kit 3.0.0 现已推出,并支持 Node 18。升级您的项目 和环境以维护功能。您_无法_使用旧版本部署您的站点。
Important
Managed Runtime 提供部署、托管和监控 PWA Kit 网店的基础架构。
Managed Runtime 仅支持通过 PWA Kit 模板创建的应用程序。可用模板的源代码可以在 GitHub 上的 PWA Kit 存储库的 template-* 文件夹中找到。
Important
本指南介绍 Managed Runtime 的主要部分以及如何访问它。
在使用 Managed Runtime 和 Runtime Admin 之前必须启用它们,并且您必须请求访问它们。要为您的组织启用 Managed Runtime 和 Runtime Admin,请联系您的 Salesforce 帐户团队。要获得访问权限,请让您的 Commerce Cloud 管理员使用 Account Manager 将以下角色之一添加到您的帐户:Managed Runtime User(托管运行时用户)或 Managed Runtime Admin(托管运行时管理员)。
Important
环境是用于描述 Managed Runtime 托管的特定网店的所有云基础架构和配置值的术语。环境用于将您的生产环境 (Production) 网店与为其他目的(例如开发或测试)部署的网店分开。
在 Managed Runtime API 中,环境称为“目标”,但两个术语指的是同一事物。
Note
由于环境在可自动扩展和缩减的高效微服务上运行,因此您可以根据需要创建任意数量的环境,而无需额外费用。例如,您可以创建一个短期环境,专门用于单个敏捷开发冲刺或该冲刺中的单个用户故事。当您不再需要某个环境时,我们建议您将其删除。
标记为生产的环境优先由 Salesforce 的支持团队监控。对于生产环境,您还可以使用 Log Center 调试。要将环境标记为生产环境 (Production),您有两种选择:
is_production 参数。要使用这些端点将环境标记为生产环境 (Production),请将 is_production 设置为 true。默认情况下,您最多可以将 10 个环境标记为生产环境 (Production)。要增加您的限度,请联系支持部门。
Important
在环境中运行的网店代码称为捆绑包。使用 PWA Kit 中包含的开发人员工具生成一个捆绑包并将其推送到 Managed Runtime。
捆绑包是您的代码在特定时间点的快照。它是_不可变的_:创建捆绑包后,将无法更改。拥有完整且准确的捆绑包历史记录可以更轻松地解决部署问题。
Note
推送捆绑包后,您可以使用 Runtime Admin(运行时管理员)或 Managed Runtime API 将该产品指定为“已部署”。每个项目可以有多个捆绑包,但每个环境只能有一个指定为已部署的捆绑包。您可以随时更改指定为已部署的捆绑包。有关更多信息,请参阅推送和部署捆绑包。
为了帮助您管理多个环境,每个环境也属于一个项目,每个项目都属于一个组织。一个组织可以包含多个网店的多个项目,每个项目可以包含多个环境。Managed Runtime 用户可以属于多个组织以分隔不同的工作流。
每个组织最多总计可以有 100 个环境和最多 10 个生产环境。如果您需要提高这些限度,请联系您的 Salesforce 支持代表。
组织和用户组织成员资格由 Account Manager 中的设置确定。用户可以作为成员或管理员属于组织。成员只能与分配了项目角色的 Managed Runtime 中的项目进行交互。管理员可以与组织内的所有项目进行交互。
要为用户分配管理员组织成员资格,请联系 Salesforce Support。
Important
对于 Managed Runtime 项目,用户可以具有以下能力:
每个用户均被分配项目角色,该角色决定他们拥有哪些能力。(一个用户只能有_一个_角色。)项目角色可以分配给组织内的任何用户。
下表显示了与每个角色相关的能力:
| 角色 | 浏览 | 管理重定向 | 部署 | 管理团队 | 访问日志 | 查看和管理环境变量 |
|---|---|---|---|---|---|---|
| 管理员 | 是 | 是 | 是 | 是 | 是 | 是 |
| 开发人员 | 是 | 是 | 是 | 否 | 是 | 是 |
| 营销人员 | 是 | 是 | 否 | 否 | 否 | 否 |
| 只读 | 是 | 否 | 否 | 否 | 否 | 否 |
在每个 Managed Runtime 环境中,已发布捆绑包中的 React 应用程序在 Node.js 环境中运行。为了响应页面请求并渲染结果,我们在 PWA Kit 的渲染和路由系统的帮助下使用 Express Web 框架。我们称这种 React、Node 和 Express 的组合为应用服务器。(尽管从技术上讲,应用服务器在“无服务器”技术上运行。)应用服务器经过优化,可在提供低计算成本、高可用性、快速渲染和大规模扩展能力的云基础架构上运行。
因为 PWA Kit 的渲染和路由系统处理本地开发环境和 Managed Runtime 环境之间的差异,所以您的代码在部署时以可预测的方式运行。这种可预测性鼓励开发团队更频繁地部署捆绑包,从而提高开发团队的生产力。
目前,应用服务器支持 Transport Layer Security (TLS) 版本 1.2 及更高版本。
在 App Server 上运行的代码可以访问以下环境变量:
DEPLOY_TARGET:环境的 ID。EXTERNAL_DOMAIN_NAME:在环境中设置的域名。MOBIFY_PROPERTY_ID:环境所属项目的 ID。支持应用服务器的是几个边缘服务,包括:
我们的代理请求指南中详细介绍代理服务器和 CDN。我们的最大化缓存命中率指南中介绍称为请求处理器的边缘函数。
Managed Runtime 的边缘服务战略性地分布在我们的公共云基础架构中。每个服务都尽可能靠近用户,以获得更快的性能。
为了管理您的组织、项目、环境和捆绑包的设置,我们提供两种不同的工具:
将 Runtime Admin 工具用于日常任务,例如将新代码捆绑包部署到环境。在您需要编程控制时使用 API,例如自动创建作为持续集成脚本一部分的环境。
管理工具为您提供了一种自助方式来配置许多设置,包括:
对管理工具的访问由 Account Manager 角色和 API 密钥控制。对于持续集成 (CI) 和持续交付 (CD) 流程,具有自己 API 密钥的专用机器人用户通常由您的组织设置。
有趣的事实:与您的网店一样,Runtime Admin 工具是部署到 Managed Runtime 的无标头 React 应用程序。
在构建网店时,请牢记 Managed Runtime 环境的以下限制条件:
Host 标头与 Runtime Admin 中设置的“外部主机名”匹配的请求。/ 仅接受 HTTP GET 请求。Cookie 和 HTTP 响应 Set-Cookie 标头。可以通过在具有 projects_target_partial_update 端点的环境中设置 allow_cookies 属性来启用它们。您还可以在 Runtime Admin 的环境设置中启用 Cookie。PWA Kit 版本 3.1.0 或更高版本支持 Cookie。请参阅使用 Cookies 进行个性化设置。_ 开头的标头请求。这些请求将被丢弃。EC2 的 AWS IP 范围。要允许来自代理的列表请求,请使用 CLOUDFRONT_ORIGIN_FACING。/mobify 是为受管端点保留的。这些端点包括:
/mobify/ping:当环境正常运行时,返回 HTTP 200 响应代码。/mobify/redirect/$path:返回与 projects_target_redirect_retrieve 类似的响应。/mobify/proxy/$name:返回来自代理的响应。x-mobify-cachebreaker: 1ssr_only 和 ssr_shared 文件的最大大小为 249 MB。application/javascript、application/json、image/png、image/gif、image/jpeg、image/svg+xml、image/webp、text/css、text/plain和字体(ttf、woff、woff2、otf等)。所有其他内容类型都需要由外部系统提供服务。Managed Runtime 代理有不同的 约束条件。
您可以在 Salesforce Status 上订阅有关 Managed Runtime 服务可用性的更新。
现在您已经了解了 Managed Runtime 的主要部分,是时候动手实践了!推送并部署捆绑包指南就是很好的起点。
在使用 Managed Runtime 和 Runtime Admin 之前必须启用它们,并且您必须请求访问它们。要为您的组织启用 Managed Runtime 和 Runtime Admin,请联系您的 Salesforce 帐户团队。要获得访问权限,请让您的 Commerce Cloud 管理员使用 Account Manager 将以下角色之一添加到您的帐户:Managed Runtime User(托管运行时用户)或 Managed Runtime Admin(托管运行时管理员)。
Important