启动网店

本指南介绍如何启动 PWA Kit 网店并使其可以从其官方公共网址访问。您有三种选择来启动和引导流量到您的 PWA Kit 网店:

  1. 使用 CloudFlare 或 Akamai 等第三方 CDN。
  2. 使用 Salesforce Commerce Cloud 提供的嵌入式 CDN (eCDN)。有关使用 eCDN 将流量引导到 Managed Runtime 的更多信息,请参阅指南
  3. 使用 Managed Runtime CDN。

在本指南中,我们使用具有以下属性的示例网店:

  • 生产环境 (Production) URL: https://www.example.com
  • 项目 ID:example
  • 环境 ID:stagingproduction

在 Managed Runtime 之上堆叠第三方 CDN 是可选项。客户可以根据以下条件选择使用第三方 CDN:

  • 与他们选择的 CDN 供应商预先存在的关系,其中内部团队擅长配置和管理 CDN。
  • 除了 Managed Runtime 提供的功能之外,还要对 CDN 功能进行额外的控制,例如自定义 WAF 规则、额外的性能标头和额外的第三方集成。

希望降低服务成本、快速上市且 CDN 要求有限的客户可以使用 eCDN 或内置的 Managed Runtime CDN。

本指南假定您有权访问 Runtime Admin 应用程序和 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。

要使用自定义域运行本地开发服务器:

  1. 修改本地计算机的 DNS 以将您的自定义域解析为 127.0.0.1 (localhost)。
  2. 编辑 ssr.js
  3. options 传递至 runtime.createHandler 中,将端口设置为 80
  4. 运行 EXTERNAL_DOMAIN_NAME=www.example.com npm start,用您的自定义域代替 example.com 的值。在端口 80 上运行服务器有时可能需要管理权限。

从您的浏览器到自定义域的请求现在已解析并路由到您的本地开发服务器!

启动环境的过程对于准备环境 (Staging) 和生产环境 (Production) 来说是相同的,唯一的区别是域名和使用的 Managed Runtime 环境。

我们强烈建议先在准备环境 (Staging) 中完成启动过程,然后再在 生产环境 (Production) 中重复该过程。

对于提供的说明,假设要在 staging.example.com 启动网店,Managed Runtime 中的项目 ID 是 example,并且将捆绑包部署到名为 staging 的环境中。

可以随时完成这些步骤,但我们建议在开始使用 PWA Kit 后立即启动它们。

使用 Runtime API Web 应用程序或 Managed Runtime API创建名为 staging 的环境(也称为目标),以练习启动网店。

这是使用 Managed Runtime API 的 projects_target_create 端点创建环境的示例请求。在请求中将 example 替换为实际项目 ID 字符串并将 $API_KEY 替换为实际 API 密钥。

有关使用 Runtime Admin 创建环境的说明,请参阅我们的 Managed Runtime Administration(托管运行时管理)指南。

大多数 PWA Kit 执行都会向 B2C Commerce 提供的 OCAPI 和控制器发出请求。

您必须确保 Managed Runtime 可以到达与您的 B2C Commerce 实例关联的域才能发出这些请求。

使域可访问通常涉及配置 eCDN 以使您的 B2C Commerce 实例在 ecom.example.com 这样的子域中可用。有关更多信息,请参阅eCDN 设置和配置文档

配置 B2C Commerce eCDN 域后,更新环境的代理设置以使用新的 API 位置。有关更多信息,请参阅代理请求指南。

如果您将流量直接引导到 Managed Runtime CDN,则 Managed Runtime 将为您颁发并管理 TLS 证书。

使用第三方 CDN 或 eCDN 时不需要此步骤。请参阅 CDN 供应商文档以配置 TLS 证书。

要允许 Managed Runtime 颁发 TLS 证书,您必须创建 CNAME 记录联系 Salesforce 客户支持,提供您所需的证书域。然后 Salesforce 为您提供证书的详细验证 CNAME 记录。支持 *.example.com 等通配符证书。

准备环境 (Staging) 和生产环境 (Production) 支持使用自定义域启动。目前,开发等所有其他环境都被限制继续使用默认 mobify-storefront.com 域。

您必须在收到详细信息后 24 小时内创建提供的验证 DNS CNAME 记录。该属性组显示如下:

使用第三方 CDN 时不需要此步骤。

staging.example.com 上线时间 (TTL) 减少到一分钟。减少 TTL 可以加快 DNS 转换过程,如果出现问题,可以允许快速回滚。

可以使用dig 命令验证 TTL:

使用第三方 CDN 时不需要此步骤。

配置环境以接收来自主机 staging.example.com 的流量。

使用 Managed Runtime API 更新环境的 ssr_external_domainssr_external_hostname 设置:

在此步骤之后,该环境在其 mobify-storefront.com 域中不再可访问。

使用 cURL 命令发出 DNS spoofing 请求,验证新设置是否生效:

使用第三方 CDN 和 Managed Runtime CDN 时,切换过程有所不同。

对于此选项,您必须将 CDN 配置为指向 Managed Runtime 源而不是现有的 CDN 源。请参阅您的 CDN 提供商文档以获取详细指导。

将外部主机名 ({{project}}-{{environment}}.mobify-storefront.com) 添加为第三方 CDN 中的来源。确保 CDN 配置为:

  • 设置 Host 标头以匹配源 {{project}}-{{environment}}.mobify-storefront.com
  • 转发请求方法
  • 转发路径(包括查询字符串)
  • 转发标头
  • 转发正文
  • 遵守 HTTP 缓存标头。

考虑添加一个处理程序来反映 HTTP 请求,以验证 CDN 配置是否正确:

还可以考虑使用 httpbin.org/anything 添加代理来验证传递给代理的标头是否正确发送。

对于此选项,您必须执行 DNS 切换,将您的域从旧源指向 Managed Runtime CDN。

Salesforce 支持部门将提供遵循约定 {{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 目标设置控制环境从哪个主机接收流量。如果请求的 HTTP Host 标头与此值不匹配,则请求将失败并出现 403 错误。
  • 目前,Salesforce 不支持带有如 example.com 裸域的网店 URL(没有 www 子域)。要使用裸域,必须设置服务器以将请求从裸域重定向到 CNAME。