在發佈時建立新社群群組

雖然從發佈例項開始,但實際上會發生在製作例項上建立社群群組(這會產生新網站頁面和新使用者群組)。

在程式中,新網站頁面會複製到所有發佈執行個體。 動態建立的社群使用者群組及其成員資格已分發至所有發佈執行個體。

使用安全控制台建立用戶或組

根據設計,在發佈環境中建立的使用者資料不會出現在製作環境中,反之亦然。

使用者管理與安全性 console用於在發佈環境中新增使用者,使用者同步會將新使用者及其群組成員資格同步至其他發佈執行個體(如有必要)。 使用者同步也會同步透過安全性主控台建立的使用者群組。

使用者在發佈時發佈內容

對於使用者產生的內容(UGC),在發佈執行個體上輸入的資料可透過 配置的SRP.

最佳實務

依預設,使用者同步為 停用. 啟用用戶同步涉及修改 現有 OSGi設定。 啟用使用者同步後,不應新增任何設定。

使用者同步需仰賴製作環境來管理使用者資料分配,即使使用者資料並非建立在製作上亦然。

必備條件

  1. 如果使用者和使用者群組已在一個發佈者上建立,建議您 手動同步 在配置和啟用用戶同步之前,將用戶資料發送給所有發佈者。

    啟用使用者同步後,只會同步新建立的使用者和群組。

  2. 確認已安裝最新程式碼:

若要在AEM Communities上啟用使用者同步,必須進行下列設定。 請確定這些設定正確,以防止Sling內容分送失敗。

Apache Sling Distribution Agent — 同步代理工廠

此設定會擷取要在發佈者間同步的內容。 設定位於製作執行個體上。 作者必須追蹤所有發佈者,以及同步所有資訊的位置。

設定中的預設值適用於單一發佈執行個體。 由於使用者同步對同步多個發佈例項(例如對於發佈伺服器陣列)非常有用,因此需要將其他發佈例項新增至設定。

如何同步內容?

製作執行個體會偵測發佈者的匯出端點。 每當特定發佈者上建立或更新使用者時(n),作者就會從其匯出端點取得內容,並 推播內容 至其他發佈者(n-1,即內容擷取所在的發佈者以外)。

配置Apache Sling同步代理的配置

在AEM製作例項上:

  1. 以管理員權限登入。

  2. 存取 Web主控台.

    例如, http://localhost:4502/system/console/configMgr.

  3. 找出 Apache Sling Distribution Agent — 同步代理工廠.

    • 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

    • 驗證名稱: socialpubsync.

    • 選取 已啟用 核取方塊。

    • 選擇 使用多個隊列.

    • 指定 導出器端點匯入工具端點 (您可以新增更多匯出工具和匯入工具端點)。

      這些端點會定義您要從何處取得內容,以及要推送內容的位置。 作者從指定的匯出工具端點擷取內容,並將內容推送至發佈工具(其擷取內容的發佈工具除外)。
      sync-agent-fact

AdobeGranite分發 — 加密密碼傳輸機密提供程式

它可讓作者識別已授權的使用者,即擁有將使用者資料從作者同步到發佈的權限。

已建立授權用戶 在所有發佈執行個體上,可協助發佈者與作者連線,並在作者上設定Sling分送。 此授權使用者具備所有必要條件 ACL.

每當要在發佈者上安裝資料或從發佈者擷取資料時,作者就會使用此設定中設定的憑證(使用者名稱和密碼)與發佈者連線。

使用授權使用者將作者與發佈者連線

在AEM製作例項上:

  1. 以管理員權限登入。

  2. 存取 Web主控台.

    例如, http://localhost:4502/system/console/configMgr.

  3. 找出 AdobeGranite分發 — 加密密碼傳輸機密提供程式.

  4. 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

    驗證屬性 name: socialpubsync- publishUser .

  5. 將使用者名稱和密碼設為 授權使用者.

    例如, usersync-admin

    granite-passwrd-trans

Apache Sling Distribution Agent — 佇列代理工廠

此設定用於設定您要在不同發佈者間同步的資料。 在 允許的根,則「var/community/distribution/diff」會啟動,而建立的復製程式會從發佈商擷取資料,並將其安裝在其他發佈商上。

配置要同步的資料(節點路徑)

在AEM發佈例項上:

  1. 以管理員權限登入。

  2. 存取 Web主控台.

    例如, http://localhost:4503/system/console/configMgr.

  3. 找出 Apache Sling Distribution Agent — 佇列代理工廠.

  4. 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

    驗證名稱: socialpubsync -reverse。

  5. 選取 已啟用 核取方塊並儲存。

  6. 指定要在中複製的節點路徑 允許的根.

  7. 對每個 publish 例項。

    queue-agent-fact

AdobeGranite分佈 — 差異觀察器工廠

此設定會同步各發佈者的群組成員資格。
如果更改某個發佈者中組的成員資格時,不會更新其他發佈者的成員資格,請確保 ref:members 新增至 查找屬性名稱.

確保成員同步

在每個AEM發佈例項上:

  1. 以管理員權限登入。

  2. 存取 Web主控台.

    例如, http://localhost:4503/system/console/configMgr.

  3. 找出 AdobeGranite分佈 — 差異觀察器工廠.

  4. 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

    驗證 代理名稱: socialpubsync -reverse**。

  5. 選取 已啟用 核取方塊。

  6. 指定 rep:members as description 中的屬性名稱 查找屬性名稱,並儲存。

    diff-obs

Apache Sling Distribution觸發程式 — 排程觸發程式工廠

此設定可讓您設定輪詢間隔(在此間隔內,發佈者會被Ping通,且作者會提取變更),以同步各發佈者的變更。

作者每30秒輪詢一次發佈者(預設)。 如果資料夾中存在任何包 /var/sling/distribution/packages/ socialpubsync - vlt /shared,則會擷取這些套件並安裝至其他發佈者。

更改輪詢間隔

在AEM製作例項上:

  1. 以管理員權限登入。

  2. 存取 Web主控台,例如 http://localhost:4502/system/console/configMgr

  3. 找出 Apache Sling Distribution觸發程式 — 排程觸發程式工廠

    • 選取要開啟以進行編輯的現有設定(鉛筆圖示)
    • 驗證 Name: socialpubsync-scheduled-trigger
    • 將間隔(以秒為單位)設定為所需間隔並保存。

    排程觸發器

AEM Communities使用者同步接聽程式

如需Sling分送中訂閱與後續項目有所差異的問題,請檢查 AEM Communities使用者同步接聽程式 設定:

  • NodeTypes
  • 可忽略屬性
  • 可忽略節點
  • DistributedFolders

若要同步訂閱、追蹤和通知

在每個AEM發佈例項上:

  1. 以管理員權限登入。

  2. 存取 Web主控台. 例如, http://localhost:4503/system/console/configMgr.

  3. 找出 AEM Communities使用者同步接聽程式.

  4. 選取要開啟以進行編輯的現有設定(鉛筆圖示)。

    驗證名稱: socialpubsync-scheduled-trigger

  5. 設定下列項目 NodeTypes :

    rep:User

    nt :unstructured

    nt :resource

    rep:ACL

    sling:Folder

    sling:OrderedFolder

    此屬性中指定的節點類型將同步,並且通知資訊(隨後是部落格和配置)會在不同發佈者之間同步。

  6. 在中添加要同步的所有資料夾 DistributedFolders. 例如,

    區段/計分

    社交/關係

    活動

  7. 設定 ignorablenodes 至:

    .token

    系統

    rep :cache (由於我們使用黏著工作階段,因此不需要將此節點同步至不同的發佈者)

    user-sync-listner

唯一Sling ID

AEM製作例項使用Sling ID來識別資料傳回的位置,以及發佈商需要(或不需要)將套件傳回的位置。

確認發佈伺服器陣列中的所有發佈者都有唯一的Sling ID。 如果Sling ID在發佈伺服器陣列中用於多個發佈執行個體相同,則使用者同步將會失敗。 由於作者不知道要從何處擷取套件,以及要在何處安裝套件。

確保發佈伺服器陣列中發佈者的唯一Sling ID

在每個發佈例項上:

  1. 瀏覽至 https://主機:埠/system/console/status-slingsettings.

  2. 檢查 Sling ID.

    slid

    如果發佈例項的Sling ID符合任何其他發佈例項的Sling ID,則:

  3. 停止具有相符Sling ID的其中一個發佈執行個體。

  4. crx-quickstart/launchpad/felix 目錄,搜索並刪除名為_sling.id.file的檔案。

    例如,在Linux系統上:

    rm -i $(find . -type f -name sling.id.file)

    例如,在Windows系統上:

    use windows explorer and search for _sling.id.file_

  5. 啟動發佈例項。 啟動時,系統會為其指派新的Sling ID。

  6. 驗證 Sling ID 現在是唯一的。

重複這些步驟,直到所有發佈執行個體都有唯一的Sling ID。