[AEM Forms]{class="badge positive" title="適用於AEM Forms)。"}

為相同的最適化表單設定環境特定的REST端點

將調適型表單從開發升級到測試環境再升級到生產環境時,表單通常需要提交到每個環境中的​不同 REST端點,而表單本身保持不變。 以硬式編碼方式在表單的提交動作中嵌入端點URL會破壞此功能,因為相同的URL會隨著表單傳送至每個環境。

本文說明如何保留單一、可攜式的最適化表單,並讓其提交至REST端點動作解析為每個環境中的正確端點。 表單參考了名稱為​而非URL的REST組態,而且每個環境都為該組態提供自己的值。

先決條件 prerequisites

  • 根據核心元件的最適化表單。
  • 透過啟用​ 雲端組態 ​的組態瀏覽器(工具 > 一般 > 組態瀏覽器)建立的組態容器
  • 存取​工具 > 雲端服務​的許可權,以及每個環境(或Cloud Manager部署管道)上封裝管理員的提升許可權。

在中繼時建立RESTful服務設定 create-rest-configuration

在測試編寫執行個體上,建立您的表單參考的命名設定。 將​ 服務端點URL ​設定為暫存的REST或webhook端點。

  1. 前往​工具 > 雲端服務 > 資料來源

  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. 在​ staging ​作者執行個體上,開啟最適化表單並提交包含測試資料的表單(例如,在文字欄位中輸入stagetest)。 確認POST要求到達您在暫存時設定的​暫存 服務端點URL

  2. 在​ production ​製作執行個體上,開啟相同的最適化表單並提交它並包含測試資料(例如,在文字欄位中輸入prodtest)。 確認POST要求到達您在生產上設定的​生產環境 服務端點URL,而不是暫存URL。

  3. 確認每個請求都使用預期的內容型別(例如,多部分表單資料),並包含提交的表單資料。 使用真正的安全端點(HTTPS)進行生產。

最佳做法 best-practices

  • 在每個環境中使用相同的組態​名稱,以便表單在促銷後解析一致。
  • 保留端點​ ​環境特定。 切勿將單一環境的URL硬式編碼至表單的提交動作。
  • 對於生產端點,請確保URL安全(HTTPS),並確保接收路徑已設定為針對您的驗證模型正確處理POST請求。
  • 當您希望部署可重複且不需要手動部署後編輯時,偏好使用內容感知覆寫方法。
recommendation-more-help
experience-manager-cloud-service-help-main-toc