[AEM Forms]{class="badge positive" title="适用于AEM Forms)。"}

为同一自适应表单配置特定于环境的REST端点

将自适应表单从开发升级到暂存升级到生产时,该表单通常需要提交到每个环境中的​不同的 REST端点,而表单本身保持不变。 对表单提交操作中的端点URL进行硬编码会破坏此情况,因为同一URL会随表单一起传送到每个环境。

本文介绍如何保留单个可移植的自适应表单,并让其提交到REST端点操作解析为每个环境中的正确端点。 表单按名称​而不是URL引用REST配置,每个环境都为该配置提供自己的值。

先决条件 prerequisites

  • 基于核心组件的自适应表单。
  • 通过启用了​ 云配置 ​的配置浏览器(工具 > 常规 > 配置浏览器)创建的配置容器
  • 访问​工具 > Cloud Services​以及每个环境(或Cloud Manager部署管道)上的包管理器进行升级的权限。

在暂存时创建RESTful服务配置 create-rest-configuration

在暂存创作实例上,创建您的表单引用的命名配置。 将​ 服务终结点URL ​设置为用于暂存的REST或webhook终结点。

  1. 转到​工具 > Cloud Services > 数据源

  2. 选择您的配置容器,然后选择​创建

  3. 在​ 常规 ​选项卡上,为配置提供一个​名称(例如,restTest)。 在每个环境中使用​ same ​名称,以便在提升后一致解析表单。

  4. 在​ 身份验证设置 ​选项卡上,配置:

    • 选择RESTful服务服务终结点
    • 方法类型POST
    • 服务终结点URL:暂存终结点URL(例如,用于测试暂存提交的webhook URL)。
    • 内容类型:例如,多部分表单数据
    • 身份验证类型:根据终结点的要求(例如,​或​基本身份验证)。
  5. 选择​保存并关闭

将自适应表单指向配置容器 set-configuration-container

在暂存时,将表单与包含REST配置的配置容器关联。

  1. 在​ Forms和文档 ​中,选择您的自适应表单并打开​属性

  2. 在​ 基本 ​选项卡上,将​ 配置容器 ​设置为包含您的RESTful服务配置的容器(例如,/conf/restConfigTest)。

  3. 选择​保存并关闭

配置提交到REST端点操作 configure-submit-action

在暂存时,将表单配置为通过指定的REST配置提交,而不是通过硬编码URL提交。 有关完整的提交操作引用,请参阅为REST端点提交操作配置自适应表单

  1. 打开自适应表单进行编辑,选择​ 指南容器 ​组件,然后打开其​ 自适应表单容器 ​属性。

  2. 打开​ 提交 ​选项卡,从​ 提交操作 ​下拉列表中选择​提交到REST终结点

  3. 在​ 操作配置 ​下,选择​启用POST请求

  4. 对于​选择选项,请选择​配置 (不是​URL)。

  5. 从列表中选择命名配置(例如,restTest)。

  6. 选择​完成

该表单现在通过指定配置而不是固定URL解析其提交端点。

将表单从暂存提升至生产 promote-across-environments

在暂存环境中配置和测试之后,将相同的表单和配置容器移至生产环境。 您可以使用以下任一方法。

选项1:创作和打包方法 option-package

当作者直接在每个环境中维护表单和配置时,可使用此选项。

  1. 在​ 暂存 ​创作实例上,在包管理器中生成一个包含表单及其配置容器的内容包,例如:

    • /content/dam/formsanddocuments/<your-form-path>
    • /content/forms/af/<your-form-path>
    • /conf/<your-config-container> (包含.../settings/cloudconfigs/fdm/<your-config>
  2. 下载包并将其安装在​ 生产 ​创作实例上。

IMPORTANT
该包在生产环境中安装相同的配置,包括从暂存环境安装​服务终结点URL。 请勿在生产环境中保留适当的暂存URL。 安装后更新生产环境上的端点,如下节所述。

选项2:上下文感知覆盖方法(建议用于自动化) option-context-aware

当您希望某个打包配置的端点、用户名和密码能够在每个环境中自动解析,而无需在部署后手动编辑时,可使用此选项。 此方法将覆盖使用Cloud Manager环境变量的配置属性。

对于REST配置,您通常为serviceEndPointuserNamepassword属性创建环境变量,然后从项目中的OsgiConfigurationOverrideProvider配置文件引用它们。

有关完整过程,请参阅上下文感知云配置

在生产环境中更新端点URL configure-endpoint-on-production

在生产环境中安装包后,自适应表单和REST配置​名称(例如,restTest)与暂存匹配。 该配置中的​ 服务终结点URL ​仍指向包中的暂存终结点。 在生产环境中打开配置,并将其替换为生产端点URL。

  1. 在​ 生产 ​创作实例上,转到​工具 > 云服务 > 数据源

  2. 选择您部署的配置容器(例如restConfigTest),然后打开命名配置(例如restTest)。

  3. 在​ 身份验证设置 ​选项卡上,将​ 服务终结点URL ​设置为生产REST或webhook终结点。

  4. 选择​保存并关闭

在测试期间,请求检查器(如webhook捕获服务)将为您提供每个环境的唯一URL,以便您确认哪个端点接收每次提交。

验证路由 verify

从暂存和生产环境中提交相同的表单,并确认每个环境发布到其自身的端点,而不是其他环境的URL。

  1. 在​ 暂存 ​创作实例上,打开自适应表单并使用测试数据提交它(例如,在文本字段中输入stagetest)。 确认POST请求到达您在暂存上配置的​暂存 服务终结点URL

  2. 在​ 生产 ​创作实例上,打开同一自适应表单并使用测试数据提交它(例如,在文本字段中输入prodtest)。 确认POST请求到达您在生产上配置的​生产 服务终结点URL,而不是暂存URL。

  3. 确认每个请求都使用预期的内容类型(例如,多部分表单数据)并包含提交的表单数据。 将真正的安全端点(HTTPS)用于生产。

最佳实践 best-practices

  • 在每个环境中使用相同的配置​名称,以便在升级后一致解析表单。
  • 保持终结点​ ​特定于环境。 切勿将单个环境的URL硬编码到表单的提交操作中。
  • 对于生产端点,请确保URL安全(HTTPS),并确保将接收路径配置为根据您的身份验证模型正确处理POST请求。
  • 当您希望部署可重复且无需手动部署后编辑时,首选使用上下文感知覆盖方法。
recommendation-more-help
experience-manager-cloud-service-help-main-toc