[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终结点。
-
转到工具 > Cloud Services > 数据源。
-
选择您的配置容器,然后选择创建。
-
在 常规 选项卡上,为配置提供一个名称(例如,
restTest)。 在每个环境中使用 same 名称,以便在提升后一致解析表单。 -
在 身份验证设置 选项卡上,配置:
- 选择RESTful服务: 服务终结点。
- 方法类型: POST。
- 服务终结点URL:暂存终结点URL(例如,用于测试暂存提交的webhook URL)。
- 内容类型:例如,多部分表单数据。
- 身份验证类型:根据终结点的要求(例如,无或基本身份验证)。
-
选择保存并关闭。
将自适应表单指向配置容器 set-configuration-container
在暂存时,将表单与包含REST配置的配置容器关联。
-
在 Forms和文档 中,选择您的自适应表单并打开属性。
-
在 基本 选项卡上,将 配置容器 设置为包含您的RESTful服务配置的容器(例如,
/conf/restConfigTest)。 -
选择保存并关闭。
配置提交到REST端点操作 configure-submit-action
在暂存时,将表单配置为通过指定的REST配置提交,而不是通过硬编码URL提交。 有关完整的提交操作引用,请参阅为REST端点提交操作配置自适应表单。
-
打开自适应表单进行编辑,选择 指南容器 组件,然后打开其 自适应表单容器 属性。
-
打开 提交 选项卡,从 提交操作 下拉列表中选择提交到REST终结点。
-
在 操作配置 下,选择启用POST请求。
-
对于选择选项,请选择配置 (不是URL)。
-
从列表中选择命名配置(例如,
restTest)。 -
选择完成。
该表单现在通过指定配置而不是固定URL解析其提交端点。
将表单从暂存提升至生产 promote-across-environments
在暂存环境中配置和测试之后,将相同的表单和配置容器移至生产环境。 您可以使用以下任一方法。
选项1:创作和打包方法 option-package
当作者直接在每个环境中维护表单和配置时,可使用此选项。
-
在 暂存 创作实例上,在包管理器中生成一个包含表单及其配置容器的内容包,例如:
/content/dam/formsanddocuments/<your-form-path>/content/forms/af/<your-form-path>/conf/<your-config-container>(包含.../settings/cloudconfigs/fdm/<your-config>)
-
下载包并将其安装在 生产 创作实例上。
选项2:上下文感知覆盖方法(建议用于自动化) option-context-aware
当您希望某个打包配置的端点、用户名和密码能够在每个环境中自动解析,而无需在部署后手动编辑时,可使用此选项。 此方法将覆盖使用Cloud Manager环境变量的配置属性。
对于REST配置,您通常为serviceEndPoint、userName和password属性创建环境变量,然后从项目中的OsgiConfigurationOverrideProvider配置文件引用它们。
有关完整过程,请参阅上下文感知云配置。
在生产环境中更新端点URL configure-endpoint-on-production
在生产环境中安装包后,自适应表单和REST配置名称(例如,restTest)与暂存匹配。 该配置中的 服务终结点URL 仍指向包中的暂存终结点。 在生产环境中打开配置,并将其替换为生产端点URL。
-
在 生产 创作实例上,转到工具 > 云服务 > 数据源。
-
选择您部署的配置容器(例如
restConfigTest),然后打开命名配置(例如restTest)。 -
在 身份验证设置 选项卡上,将 服务终结点URL 设置为生产REST或webhook终结点。
-
选择保存并关闭。
在测试期间,请求检查器(如webhook捕获服务)将为您提供每个环境的唯一URL,以便您确认哪个端点接收每次提交。
验证路由 verify
从暂存和生产环境中提交相同的表单,并确认每个环境发布到其自身的端点,而不是其他环境的URL。
-
在 暂存 创作实例上,打开自适应表单并使用测试数据提交它(例如,在文本字段中输入
stagetest)。 确认POST请求到达您在暂存上配置的暂存 服务终结点URL。 -
在 生产 创作实例上,打开同一自适应表单并使用测试数据提交它(例如,在文本字段中输入
prodtest)。 确认POST请求到达您在生产上配置的生产 服务终结点URL,而不是暂存URL。 -
确认每个请求都使用预期的内容类型(例如,多部分表单数据)并包含提交的表单数据。 将真正的安全端点(HTTPS)用于生产。
最佳实践 best-practices
- 在每个环境中使用相同的配置名称,以便在升级后一致解析表单。
- 保持终结点 值 特定于环境。 切勿将单个环境的URL硬编码到表单的提交操作中。
- 对于生产端点,请确保URL安全(HTTPS),并确保将接收路径配置为根据您的身份验证模型正确处理POST请求。
- 当您希望部署可重复且无需手动部署后编辑时,首选使用上下文感知覆盖方法。