[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端點。
-
前往工具 > 雲端服務 > 資料來源。
-
選取您的設定容器,然後選取建立。
-
在 一般 標籤上,提供組態的名稱 (例如
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。
-
在 staging 作者執行個體上,開啟最適化表單並提交包含測試資料的表單(例如,在文字欄位中輸入
stagetest)。 確認POST要求到達您在暫存時設定的暫存 服務端點URL。 -
在 production 製作執行個體上,開啟相同的最適化表單並提交它並包含測試資料(例如,在文字欄位中輸入
prodtest)。 確認POST要求到達您在生產上設定的生產環境 服務端點URL,而不是暫存URL。 -
確認每個請求都使用預期的內容型別(例如,多部分表單資料),並包含提交的表單資料。 使用真正的安全端點(HTTPS)進行生產。
最佳做法 best-practices
- 在每個環境中使用相同的組態名稱,以便表單在促銷後解析一致。
- 保留端點 值 環境特定。 切勿將單一環境的URL硬式編碼至表單的提交動作。
- 對於生產端點,請確保URL安全(HTTPS),並確保接收路徑已設定為針對您的驗證模型正確處理POST請求。
- 當您希望部署可重複且不需要手動部署後編輯時,偏好使用內容感知覆寫方法。