启动网店
本指南介绍如何启动 PWA Kit 网店并使其可以从其官方公共网址访问。您有三种选择来启动和引导流量到您的 PWA Kit 网店:
- 使用 CloudFlare 或 Akamai 等第三方 CDN。
- 使用 Salesforce Commerce Cloud 提供的嵌入式 CDN (eCDN)。有关使用 eCDN 将流量引导到 Managed Runtime 的更多信息,请参阅指南。
- 使用 Managed Runtime CDN。
在本指南中,我们使用具有以下属性的示例网店:
- 生产环境 (Production) URL:
https://www.example.com
- 项目 ID:
example
- 环境 ID:
staging
和production
在 Managed Runtime 之上堆叠第三方 CDN 是可选项。客户可以根据以下条件选择使用第三方 CDN:
- 与他们选择的 CDN 供应商预先存在的关系,其中内部团队擅长配置和管理 CDN。
- 需要对 CDN 功能进行额外的控制,超出 eCDN 或 Managed Runtime 提供的功能。
希望降低服务成本、快速上市且 CDN 要求有限的客户可以使用 eCDN 或内置的 Managed Runtime CDN。
本指南假定您有权访问 Runtime Admin Web 应用程序和 Managed Runtime API 来执行管理任务。要访问这些工具,请联系 Commerce Cloud 管理员并要求他们使用 Account Manager 将以下任一角色添加到您的帐户:Managed Runtime User(托管运行时用户)或 Managed Runtime Admin(托管运行时管理员)。
要向 Managed Runtime API 发出请求,必须在 HTTP 请求 Authorization
标头中包含一个值为 Bearer $API_KEY``的 API 密钥。对于提供的所有示例请求,不要忘记将
$API_KEY` 替换为实际 API 密钥。
要查找 API 密钥,请登录 Runtime Admin并转到帐户设置页面。
重要提示:请将您的 API 密钥视为密码,因为它允许脚本代表您完成操作。
您需要访问您的 DNS 提供商才能创建和更新 CNAME 记录,并需要访问您的第三方 CDN 提供商(如果适用)。
在本指南中,“Mobify”一词出现在几个地方。Mobify 是最初开发 PWA Kit 和 Managed Runtime 的公司。2020 年,Salesforce 收购了 Mobify 及其所有技术。
Mobify 品牌名称出现在用于托管网店的 cloud.mobify.com
域和 Managed Runtime API 使用的 mobify-storefront.com
域中。
如果您需要添加根据使用的域改变站点行为的条件逻辑,则当您的本地开发服务器可以使用自定义域时,更容易测试此逻辑。为什么需要添加这种逻辑?例如,考虑需要根据域查找不同的 SLAS 客户端 ID。
要使用自定义域运行本地开发服务器:
- 修改本地计算机的 DNS 以将您的自定义域解析为
127.0.0.1
(localhost)。 - 编辑
ssr.js
。 - 在
options
传递至runtime.createHandler
中,将端口设置为80
。 - 运行
EXTERNAL_DOMAIN_NAME=www.example.com npm start
,用您的自定义域代替example.com
的值。在端口80
上运行服务器有时可能需要管理权限。
从您的浏览器到自定义域的请求现在已解析并路由到您的本地开发服务器!
启动环境的过程对于准备环境 (Staging) 和生产环境 (Production) 来说是相同的,唯一的区别是域名和使用的 Managed Runtime 环境。
我们强烈建议先在准备环境 (Staging) 中完成启动过程,然后再在 生产环境 (Production) 中重复该过程。这些步骤应在启动 PWA Kit 项目后立即完成,并且至少在发布日期前两周完成。
对于提供的说明,假设要在 staging.example.com
启动网店,Managed Runtime 中的项目 ID 是 example
,并且将捆绑包部署到名为 staging
的环境中。
使用 Runtime Admin 或 Managed Runtime API 创建名为 staging
的环境来练习启动网店。
下面是一个使用 projects_target_create 端点创建环境的示例请求。将请求中的 example
替换为您实际的项目 ID 字符串,将 $API_KEY
替换为您的 API 密钥:
有关使用 Runtime Admin 创建环境的说明,请参阅我们的 Managed Runtime Administration(托管运行时管理)指南。
除了 B2C Commerce API 之外,许多 PWA Kit 实现还会向 OCAPI 或控制器发出请求。
您必须确保 Managed Runtime 可以访问您的 B2C Commerce 实例。
使 API 可访问通常涉及配置 eCDN,以使您的 B2C Commerce 实例在备用域(如 ecom.example.com
)上可用。有关更多信息,请参阅eCDN 设置和配置文档
配置域后,更新环境的代理设置以使用它。有关更多信息,请参阅代理请求指南。
使用第三方 CDN 或 eCDN 时不需要此步骤。有关配置证书的信息,请参阅 CDN 供应商文档。
如果将流量直接路由到 Managed Runtime CDN,则 Managed Runtime 将代表您颁发和管理 TLS 证书。
要允许 Managed Runtime 颁发证书,您必须:
- 选择要用于网店的域。例如,
staging.example.com
和www.example.com
。支持*.example.com
等通配符域。将仅为与准备环境和生产环境关联的域颁发特定域证书。 - 确保将域
CAA
记录 设置为允许 AWS 颁发证书。 - 请联系 Salesforce 客户支持,提供所需的证书域。
- Salesforce 提供用于验证域所有权的
CNAME
记录。您必须在收到详细信息后的 24 小时内创建提供的记录。
使用第三方 CDN 或 eCDN 时不需要此步骤。
将 staging.example.com
上线时间 (TTL) 减少到一分钟。减少 TTL 可以加快 DNS 切换过程,如果出现问题,可以允许快速回滚。
可以使用dig
命令验证 TTL:
使用访问控制设置下的 Managed Runtime UI 或使用 access_control_header API 设置环境的访问控制标头。在此示例中,我们使用 API 设置具有标头值 25pn5dec7f1c
的访问控制标头。请参阅访问控制标头。
配置环境以接收来自主机 staging.example.com
的流量。
使用 projects_target_partial_update API 更新环境 ssr_external_domain
和 ssr_external_hostname
设置:
在此步骤之后,该环境在其 mobify-storefront.com
域中不再可访问。
使用 cURL 命令发出 DNS spoofing 请求,验证新设置是否生效:
切换会有所不同,具体取决于您使用的是第三方 CDN、eCDN 还是 Managed Runtime CDN。
将 Managed Runtime 环境配置为 CDN 中的源:
- 设置
Host
标头以匹配您的环境{{project}}-{{environment}}.mobify-storefront.com
- 转发请求方法
- 转发路径(包括查询字符串)
- 转发标头
- 转发正文
- 通过 HTTPS 转发所有流量
- 遵守 HTTP 缓存标头。
- 如果为您的环境配置了标头值,请将它设置为
x-sfdc-access-control
请参阅您的 CDN 提供商文档以获取详细指导。
Managed Runtime 使用 HTTP Host
标头将请求路由到环境。主机不正确的请求将被拒绝,并显示 HTTP 403 错误请求响应。
请考虑添加处理程序以反映 HTTP 请求,并验证 CDN 配置是否正确:
还可以考虑使用 httpbin.org/anything 添加代理来验证传递给代理的标头是否正确发送。
如果遇到问题,请使用调试 PWA Kit 应用中所述的技术。
更新 eCDN 路由规则以将流量路由到 Managed Runtime 环境。请查看 eCDN MRT 规则指南了解更多信息。
执行 DNS 切换,将域从旧源指向 Managed Runtime CDN。
Managed Runtime CDN 域遵循约定 {{project}}-{{environment}}-cdn.mobify-storefront.com
,其中 {{project}}
是项目 ID,{{environment}}
是环境 ID。
将 staging.example.com
的 DNS CNAME 记录更新至 example-staging-cdn.mobify-storefront.com
。
打开网络浏览器并导航到 staging.example.com
。
恭喜,您已完成发布! 🥳
完成准备环境 (Staging) 站点的这些说明后,您可以对生产域和生产环境 (Production) 重复相同的过程。
从这里开始,Customer Success 小组将协助监控网站的流量,以确保发布成功。目标是确保在发布期间一切都按预期进行!
启动后,拥有“Signature Success 计划”的客户会收到主动的站点监控。要利用这种增加的监控服务,您必须将您的环境标记为 production
。有关更多信息,请参阅 Managed Runtime 概述中的环境。
ssr_external_hostname
目标设置控制环境从哪个主机接收流量。如果请求的 HTTPHost
标头与此值不匹配,则请求将失败并出现 403 错误。- 目前,Salesforce 不支持带有如
example.com
裸域的网店 URL(没有www
子域)。要使用裸域,必须设置服务器以将请求从裸域重定向到 CNAME。