AEM でクラウドサービスとしてツリーアクティベーションを行う方法
一連のドキュメント全体を公開する準備ができたときや、クラウドサービスとして AEM にアセットを移行した直後など、ドキュメントまたはアセットのツリー全体を公開する必要がある場合があります。これらの一括アクティベーションを行う方法はここ数年で変わり、AEM Cloud Service では古い方法でツリーレプリケーションを実行できなくなりました。変更点は次のとおりです。
以前のバージョンの AEM でのツリーの複製
以前のバージョンの AEM(つまりAEM 6.5 以前)では、一括アクティベーション(または「一括公開」)を行う必要がある場合は、AEM の「ツリーレプリケーション」または「ツリーアクティベーション」機能を使用します。これにより、複製するすべてのページまたはアセットがキューに入れられ、それぞれが AEM の複製キューに追加されます。
ここまでで、AEM に火をつける最も古くからある古典的な方法の 1 つに着手できました。次のようなことが起こり得ますし、頻繁に起こることもあります。
- レプリケーションキューには、AEM にアクティブ化するように指示したコンテンツツリーの大きさと、取り込む必要のあるサブアセットまたは子ページの数に応じて、数百、数千、場合によっては数十万のアセットやページが読み込まれる可能性があります。
- その後、AEM 作成者は、すべてのレプリケーショントラフィックを一時ストレージに取り込んで AEM Publisher に送信しようとすると非常に行き詰まる可能性があります。
- その時点で他の作成者が行っているようなありふれたページアクティベーションは、レプリケーショントラフィックの膨大なキューの後ろで待つ必要があり、数時間かかることがあります(場合によっては週末全体でも)かかることがあります。
- いずれかのパブリッシャーに何らかの問題が発生した場合、キューはハングします (多数のパブリッシャーのうちの 1 つがアイテムの複製中に CPU 使用率の高い、ネットワーク、またはストレージの異常が発生し、スタッフシャーマンに不吉な兆候が見られるなど)。これにより、問題が処理されるまでレプリケーションキュー全体がハングアップします。
- 複製されるアセットまたはページに権限の問題がある場合 (たとえば、それらを公開しているユーザーが何らかの理由でツリー全体にアクセスできない場合や、説明していないパブリッシャーのいずれかに手動で何かが行われた場合など)、キュー全体がハングアップします。
- また、ツリーレプリケーションイベントによってキャッシュ無効化イベントが大量に発生し、パブリッシャーがアセットを繰り返しアクティブ化しようとしているときに、ロードによってパブリッシャーがクラッシュする可能性があります。
AEM サイトを長期間運営している人なら誰でも、ツリーレプリケーションに関連するレプリケーションの問題やサイトの信頼性の問題に遭遇したことがあるでしょう。
クラウドサービスとしての AEM でのツリーレプリケーション
AEM as a Cloud Service が最初にリリースされたときも、ツリーレプリケーションはまだ利用可能で(制限あり)、AEM 6.5 で行っていたのと同様の方法で実行されていました。(ツリーレプリケーションUIは実際には2021年の終わりに削除されました)
最初の注意点として、AEM 6.5 以前で知られていた「複製」は、コンテンツがオーサーからパブリッシュに移行する方法ではなくなっていることを認識しておく必要があります。これがスリングディストリビューションで実行されるようになりました。その仕組みの詳細については、この AdaptTo ビデオを参照してください。
ツリー複製の新しいメカニズムは、「コンテンツツリーの公開」ワークフローです。
このワークフローが基本的に行うことは次のとおりです。
- ワークフローを開始すると、アクティブにしたいツリーのペイロードが表示されます (つまり、どのレベルから開始するか)
- 次に AEM はワークフローを開始し、ツリーの複製をパッケージにまとめ、Sling Distribution を使用してすべてのパブリッシャーに配布します。完了するまでペイロードパス全体を再帰的に調べます。
これを使用するには、次のようにします。たとえば、オンプレミスの AEM 6.5 Assets インスタンスからクラウドサービスとしての AEM へのアセットの移行が完了したとします。たとえば、「/content/dam/arborydigital/images」というパスがあり、このパスには、アクティブにしたい何千もの画像を含む一連のサブツリーがあるとします。これらを有効化/公開するには:
-
AEM クラウドサービスオーサーインスタンスに移動します
-
ツール-> ワークフロー-> モデルに移動
-
右上の [作成] をクリックし、次に [モデルを作成] をクリックします
-
名前を付けて
-
ワークフローモデルをクリックし、「編集」をクリックします
-
「プロセスステップ」を検索し、それをワークフローのステップとしてドラッグします
-
プロセスステップをクリックし、レンチアイコンを押してそのステップを設定します。表示されるダイアログの「プロセス」タブをクリックします。
-
「コンテンツツリーの公開」プロセスを選択し、「Handler Advance」チェックボックスをオンにします。
-
引数に「EnableVersion=True、AgentID=Publish、includeChildren=True」を追加します。デフォルトでは、コンテンツツリーの公開ワークフローには子は含まれません。この引数を追加すると、ワークフローはツリーを繰り返し処理し、すべての子ノードを公開します。
さらに、パブリッシュ層ではなくこのワークフローでプレビューのみをターゲットにしたい場合は、代わりに「agentID=Preview」を引数として指定できます。(これを指摘してくれたエリック・ヴァン・ギームに声をかけてください!) -
右上の「SYNC」ボタンを押します
-
「ワークフローモデル」リストで新しいワークフローを選択し、「ワークフローを開始」をクリックします。表示されるダイアログの「ペイロード」で、アクティブにしたいツリーを入力またはブラウズできます。たとえば、「/content/dam/arborydigital/images」と入力すると、そのディレクトリにあるすべてのノードがアクティブになります。「実行」を押します。
-
その後、ワークフローが開始され、アクティブ化するように指示したアセットの数にもよりますが、完了するまでに数分から数時間かかります。
-
モニタリング:その後、Splunk の「aemerror」ログを確認するか、コマンドラインから Adobe IO を使用して AEM エラーログを記録することで、レプリケーションイベントのステータスを監視できます。
ツリーアクティベーションパッケージが公開に向けて公開されることを示す次のようなイベントが表示されます。
20.08.2024 13:53: 24.538 [cm-p107857-e1299068-aem-author-6d6b4bddf6-bnhwx] *INFO* [eventadminAsyncThread #7] org.apache.sling.distribution.journal.impl.Publisher.DistributionPublisher.DistributionPublisher [publish] ID dstrpck-1724161011143-d6d35a6a-d557-4f99-9906-e8eb55e7772c のパッケージが正常に適用されました。ADD と入力すると、パス [/content/dam/arborydigital/images/smoothing-spline-jmp.jpg,/content/dam/arborydigital/images/screenshots/gallery/blorp.jpg...。
制限:アセットのアクティベーションの「大きさが大きすぎる」という制限はまだありません。このブログ投稿の執筆中に、AEM Cloud Service で約 100 GB のアセットを含むコンテンツツリーのツリーレプリケーションワークフローを開始しましたが、ツリーはブログ投稿の執筆を終了する前に終了しました。
うまくいけば、これがうまくいくでしょう!
著者について
聞いたことみたいな?自分に合ったものについて質問がありますか?話したいです! お問い合わせ