こんにちは、大和株式会社の長森です。
今回、人気記事であるACS AEM Commons全機能ひとこと紹介の最新版をお届いたします!
ACS AEM Commonsとは
ACS AEM Commonsとは、Adobe Consulting Serviceが提供するオープンソースの便利ツール群のことで、パッケージをインストールするだけで100個以上のツールを使用することができます。
機能がたくさんありすぎて、全て確認するのは難しいと思いますが、「こんな機能がある」というのを知っているのと知らないとでは大違いです!
この記事の機能一覧と紹介を参考にどんな機能があるのかを見てみて、気になった機能については公式サイトで詳細を確認していただくのが良いかなと思います。
ACS AEM Commonsの便利な機能をいくつか厳選して詳しくご紹介しているので、ぜひ以下の記事も覗いてみてください。
- ACS AEM Commons - Report Builder カスタムレポート編
- ACS AEM Commons - Report Builder デフォルトレポート編
- ACS AEM Commons - Packagers
- AEMサイトにおけるリダイレクト/リライト手法 <後編>
- AEMサイトにおけるリダイレクト/リライト手法 <前編>
インストール方法
前回の記事でも紹介していますが、念のためおさらいします。
※AEM as a Cloud Service(AACS)の場合は、Mavenプロジェクトに含めてインストールする方法で行ってください。
お手軽なインストール方法
ローカル開発環境向けのインストール方法です。
- インストールするAEMのバージョンと互換性があるバージョンのうち、最新のものをここで調べる
- リリースからそのバージョンのアセット(acs-aem-commons-content-[ver].zipもしくは、acs-aem-commons-ui.apps-[ver].zip とacs-aem-commons-ui.content-[ver].zip)をダウンロードする
- AEMのPackage Managerでインストールする
Mavenプロジェクトに含めてインストールする方法
上の手順とは別に、Mavenでビルドしたプロジェクトパッケージのサブパッケージとして含めるという方法があります。
詳しくは、Using with Mavenで詳しく説明されているので、こちらを参考にしてください。
機能紹介
2025年6月26日現在である機能を以下8つのカテゴリに分けて紹介します。
AEMのバージョンによっては利用できないものも含まれていますので、実際に利用する際はリンク先のドキュメントの確認・事前の動作確認をお願いします。
また前回の記事同様、便利だと思われる機能には「☆」、前回(2020年)から追加された機能には「New」、廃止された機能には「×」をつけています。
☆ | 機能名 | 概要 | AACS | AEM6.5.10+ |
---|---|---|---|---|
☆ | JCR Compare | 2つのAEMインスタンス間でJCRノードを比較する | ○ | ○ |
Layer Switcher | Edit / Preview / Annotate / Developer / Targeting / Toggle Side Panelのキーボードショートカットを提供する | ○ | ○ | |
Page Compare | 2つのページのプロパティを比較する | ○ | ○ | |
Page and Design Reference Providers | アクティベートを実行するときに、そのページが参照しているリソースもアクティベートするかどうかのダイアログを表示する | ○ | ○ | |
QR Code Page Editor Plug-in | 異なるコンポーネント間でプロパティ値を共有できる | ○ | ○ | |
☆ | Shared Component Properties | Edit / Preview / Annotate / Developer / Targeting / Toggle Side Panelのキーボードショートカットを提供する | ○ | ○ |
Version Comparison Tool | 複数バージョン間のページのプロパティを比較する | ○ | ○ | |
New | Contextual Content Variables (CCVAR) | テキストやコンテンツに書かれた変数を動的に置き換える | ○ | ○ |
コンテンツ管理関連
☆ | 機能名 | 概要 | AACS | AEM6.5.10+ |
---|---|---|---|---|
☆ | Bulk Workflow Manager v2 | クエリで取得したページ・アセットすべてに対してワークフローを一挙に実行する | ○ | |
Exporters / Tags Exporter | タグの一覧をCSV形式で出力する | ○ | ○ | |
File Fetcher | URLで指定したファイルを定期的にDAM Assetに配置し直すジョブ | ○ | ||
☆ | Manage Controlled Processes (MCP) | 複雑なタスクを実行するためツールが詰まったダッシュボード(ツールの追加開発が可能) | ○ | ○ |
MCP Tools / Asset Folder Creator | (Excelの表形式で表現された)フォルダ構造をインポートする | ○ | ○ | |
MCP Tools / Asset Reporting | 指定したフォルダ以下のアセット情報のレポートを出力する | ○ | ○ | |
MCP Tools / Data Importer | (Excelの表形式で表現された)コンテンツデータをインポートする | ○ | ○ | |
MCP Tools / Deep Prune | 指定したフォルダ以下のコンテンツを再帰的に削除する | ○ | ○ | |
MCP Tools / Refresh Asset Folder Thumbnails | 大量のアセットフォルダーのサムネイルを更新するための補助ツール | ○ | ○ | |
MCP Tools / Renovator | 大量のコンテンツを移動・リネームするための補助ツール | ○ | ○ | |
MCP Tools / Tag Creator | (Excelの表形式で表現された)タグ構造をインポートする | ○ | ○ | |
MCP Tools / URL Asset Import | URLで指定されたアセットをインポートする | ○ | ○ | |
MCP Tools / S3 Asset Ingestor | Amazon S3上にあるアセットをインポートする | ○ | ○ | |
MCP Tools / Asset Ingestor | ローカルにあるアセットをインポートする | ○ | ○ | |
New | MCP Tools / Content Fragment Importer | (Excelの表形式で表現された)コンテンツフラグメント構造をインポートする | ○ | ○ |
☆ | Package Replication Status Updater | パッケージでレプリケートされたリソースのReplication Statusを更新する | ○ | ○ |
☆ | Packagers / ACL Packager | 指定パス以下のACLのみを含んだパッケージを作成する | ○ | ○ |
☆ | Packagers / Asset Packager | 指定したパス以下のページに含まれるアセットのパッケージを作成する | ○ | ○ |
☆ | Packagers / Query Packager | クエリ結果からパッケージを作成する | ○ | ○ |
Property Merge POST Processor | 複数のプロパティをひとつのプロパティにマージする | ○ | ○ | |
☆ | Remote Assets | 2つのAEMインスタンス間でDAM Assetを同期させるジョブ | ○ | |
Review Task Asset Mover | レビュータスクで承認・却下されたアセットを指定のフォルダに自動で移動させる | ○ | ○ | |
Workflow Remover | 大量のワークフローインスタンスを削除する | ○ | ○ | |
☆ | Dispatcher Flush UI | 手動でDispatcher FlushができるUIを提供する | ○ | |
New | Content Sync | CRX Package ManagerやVLT RCPの制約をカバーしつつ、異なるAEM環境間でコンテンツをコピーできる | ○ | ○ |
New | Redirect Manager | AEM上でGUIからリダイレクトルールを管理・公開できるようにする | ○ | ○ |
New | Robots.txt Generator | robots.txtファイルを自動生成・管理する | ○ | ○ |
ユーザー管理関連
☆ | 機能名 | 概要 | AACS | AEM6.5.10+ |
---|---|---|---|---|
☆ | Ensure Authorizable (FKA Ensure Service User) | 指定の権限(ACE: Access Control Entry)をもつサービスユーザーをOSGi設定で管理し、自動で作成する | ○ | |
☆ | Exporters / User Exporter | ユーザーの一覧をCSV形式で出力する | ○ | ○ |
☆ | Packagers / Authorizable Packager | ユーザー名・グループ名を指定して、ユーザー・グループのパッケージを作成する | ○ | ○ |
AEM管理関連
☆ | 機能名 | 概要 | AACS | AEM6.5.10+ |
---|---|---|---|---|
☆ | Audit Log Search | 監査ログを検索する | ○ | ○ |
☆ | Report Builder | コンテンツのステータスをリスト化したレポートを生成する | ○ | ○ |
Configuring Report Builder | Report Builderで表示するレポートの詳細設定(書式設定、パラメータ追加、…など)をする | ○ | ○ | |
Extending Report Builder | Report Buiderをさらにカスタマイズ(report executors,列タイプ追加、…など)する | ○ | ○ | |
☆ | Health Checks / Health Check Status E-mailer | ヘルスチェックを定期的に実行し、結果をメールで送信する | ○ | |
Health Checks / SMTP Health Check | AEMからのメール送信ができるかチェックする | ○ | ||
☆ | System Notifications | AEMユーザーに通知(メンテナンスによる利用制限時間の通知など)をする | ○ | ○ |
New | Package Garbage Collector | 条件を設定して不要なパッケージを削除する | ○ | |
New | Sort JCR Nodes | 指定パス配下の子ノードを名前やタイトルなどの基準で並び替える | ○ |
コンポーネント開発関連
☆ | 機能名 | 概要 | AACS | AEM6.5.10+ |
---|---|---|---|---|
Assets Components / Asset Edit History | アセットのプロパティに編集履歴を表示する | ○ | ○ | |
Assets Components / Asset Fonts | アセットのプロパティに、そのアセットで利用されているフォントを表示する | ○ | ○ | |
Assets Components / Assets Color Swatches | アセットのプロパティに、そのアセットに利用されている色情報のリストを表示する | ○ | ○ | |
Assets Components / Assets Geolocation Map | アセットのプロパティの地理位置情報の表記を変換し、地図を表示する | ○ | ○ | |
Assets Components / Copy Publish URL | アセットのプロパティにPublish URLを表示する | ○ | ○ | |
Component Error Handler | コンポーネントで実行時エラーが発生したときの出力を制御する | ○ | ○ | |
Error Page Handler | 40X、50Xのエラーページを設定する | ○ | ○ | |
Generic Lists | 異なるコンポーネントで共有可能な、タイトルと値がペアのドロップダウンリストをダイアログに生成する | ○ | ○ | |
On-Deploy Scripts | デプロイ時に実行したいスクリプト(sling:resourceTypeを一斉に書き換えるなど)を設定する | ○ | ||
UI Widgets / Contextual Pathfield Browser | ルートパスを動的に取得できるようにした拡張版 pathbrowser | ○ | ○ | |
UI Widgets / Draggable Lists | ドラッグで順番変更が可能なリスト型のTouch UI Widget | ○ | ○ | |
UI Widgets / Icon Picker | コンポーネントのダイアログ上で、アイコンの見た目を確認しながら選べるリスト型のTouch UIウィジェット | ○ | ○ | |
UI Widgets / Path Render Condition | コンテンツのパスに応じて、Touch UI Widgetの表示/非表示を制御できる機能 | ○ | ○ | |
UI Widgets / Query Autocomplete Datasource | クエリで取得したリストをドロップダウンに表示し、さらに補完機能もついた拡張版select | ○ | ○ | |
UI Widgets / Show/Hide Widgets | チェックボックスやセレクトの切り替えに応じて、ダイアログのマルチフィールドの表示・非表示を制御するTouch UI Widget | ○ | ○ | |
Versioned ClientLibs | クライアントライブラリーをバージョンごとに異なるファイル名で出力する | ○ | ||
New | Parameterized Namespace Granite Include | 名前空間やパラメータを指定してダイアログスニペットをインクルード(再利用)する機能 | ○ | ○ |
× | ||||
× |
バックエンド開発関連
☆ | 機能名 | 概要 | AACS | AEM6.5.10+ |
---|---|---|---|---|
Workflow Processes / Sync Smart Tags to XMP Metadata Node | アセットのSmart TagをJCRノードに変換して保存するワークフロープロセス | ○ | ○ | |
Workflow Processes / Brand Portal Sync | AEM AssetsとAEM Assets Brand Portalを同期するワークフロープロセス | ○ | ○ | |
Workflow Processes / Set Replication Status | レプリケーションステータスを変更するワークフロープロセス | ○ | ○ | |
Workflow Processes / Workflow Delegation | ペイロードのパスを判定して、ワークフローの途中で別のワークフローを開始するワークフロープロセス | ○ | ○ | |
Workflow Processes / Send Template'd E-mail | テンプレート化されたメールを送信するワークフロープロセス | ○ | ○ | |
Workflow Processes / Replicated By Workflow Initiator | cq:lastReplicatedByをワークフロー開始者に変更するワークフロープロセス | ○ | ○ | |
Workflow Processes / Content Traversing - Synthetic Workflow Wrapper | 対象のペイロード配下のコンテンツすべてに対して新規にワークフローを開始するワークフロープロセス | ○ | ○ | |
Workflow Processes / Content Traversing - Replicate with Options | 対象のペイロード(と、設定すれば配下のコンテンツすべてに対して)レプリケーションエージェントを指定してレプリケートするワークフロープロセス | ○ | ○ | |
Workflow Processes / Rendition Watermarker | アセットに透かしを入れたレンディションを追加するワークフロープロセス | ○ | ○ | |
Workflow Processes / DAM Metadata Property Reset | アセットのプロパティの上書きを防ぐために、プロパティ値を別のプロパティに退避させるワークフロープロセス | ○ | ○ | |
Workflow Processes / Abstract Rendition Modifying Process | レンディションを操作するために使えるJavaのAbstract Class | ○ | ○ | |
New | Workflow Processes / Rendition Matter | 指定された画像を所定の寸法に一致するように背景色を追加し、画像のサイズを正確に調整する | ○ | ○ |
New | Workflow Processes / Set Image Orientation | 画像の横長・縦長・正方形のタグを自動付与して、検索しやすくするワークフローステップ | ○ | ○ |
Adobe I/O APIs | Adobe I/OのAPIをバンドルから呼びやすくする | ○ | ○ | |
Redirect Map Manager | Apache httpd Redirect Mapの作成・管理の補助ツール | ○ | ○ | |
Utils & APIs / Data APIs | Excelファイルを扱うためのSpreadsheet API、シンプルな値を色々な型に変換するためのVariantクラスを提供する | ○ | ○ | |
Utils & APIs / Permission Sensitive Cache Servlet | リクエストユーザーの権限ごとにレスポンスのDispatcherキャッシュをコントロールする | ○ | ||
Utils & APIs / Children as Property Resource Wrapper API | 高いパフォーマンスでJCR上で大量のツリー上データを扱えるようにするAPI | ○ | ||
Utils & APIs / Resource Resolver Mapping Rewriter | URLのResource Resolver Mappingをaタグhref属性以外にも適用させる | ○ | ||
Utils & APIs / Static Reference Rewriter | 画像・JS・CSSなどの静的コンテンツをクッキーレスドメインから取得するようにhtml内のURLをリライトする | ○ | ||
☆ | Utils & APIs / ACS AEM Commons Utils APIs | AEM開発に便利なJava Utilityパッケージ(com.adobe.acs.commons.util)を提供する | ○ | |
Utils & APIs / Delegating Servlet | sling:resourceTypeの参照先を別のsling:resourceTypeに偽装させるサーブレットを提供する | ○ | ||
Utils & APIs / NodeExists QueryBuilder Predicate | QueryBuilderで、Nodeの存在チェックができるPredicateが使えるようになる | ○ | ||
Vanity Path Rewrite Mapper | DispatcherからのVanity Pathのリクエストを賢く解決する | ○ | ○ | |
Named Transform Image Servlet | AEM上の画像に対して、特定の変換(リサイズ・回転・グレースケール化など)を行なった画像を返すサーブレットを提供する | ○ | ○ | |
Automatic Package Replication | 指定のパッケージをレプリケートをスケジュールによる実行、イベントトリガーによる実行、もしくはワークフロープロセスにより実行する | ○ | ○ | |
Fast Action Manager | 大量の処理(ワークフローの実行、レプリケーション、…など)をOSに負荷をかけないように賢く管理・処理する | ○ | ○ | |
HTTP Cache | OOTBのin-memory HTTP CacheやDispatcherではカバーできないような細かい条件でin-memoryキャッシュを設定する | ○ | ○ | |
☆ | Ensure Oak Index | /apps内に置いたOakインデックスの設定をデプロイ時に/oak:indexに配置する | ○ | |
Synthetic Workflow | ワークフローをJavaコード内で実行する | ○ | ○ | |
OSGi Component & Bundle Disablers | AEM(再)起動時に、指定したOSGiコンポーネント・バンドルを起動しないように設定する | ○ | ○ | |
JSON Event Logger | OSGiイベントをjson形式でログ出力する | ○ | ||
Sling Models Injectors / Child Resource From Request Injector | @ChildResourceが使えないケースでも使えるアノテーション@ChildResourceFromRequestを提供する | ○ | ○ | |
Sling Models Injectors / Hierarchical Page Property Sling Models Injector | 親にさかのぼってページプロパティを取得できるアノテーション@HierarchicalPagePropertyを提供する | ○ | ○ | |
Sling Models Injectors / I18n Sling Models Injector | i18nを簡単に適用できるアノテーション@I18Nを提供する | ○ | ○ | |
Sling Models Injectors / Shared Component Properties Injector | 「Shared Component Properties」を利用するときに便利なアノテーション@SharedValueMapValueを提供する | ○ | ○ | |
Sling Models Injectors / JsonValueMapValue Sling Models Injector | プロパティにJSON形式で保存されている値を扱いやすくするアノテーション@JsonValueMapValueを提供する | ○ | ○ | |
Sling Models Injectors / AEM Objects Sling Models Injector | <cq:defineObjects/>で呼び出していたようなオブジェクトをInjectできるアノテーション@AemObjectを提供する | ○ | ○ | |
New | Sling Models Injectors / Content Policy Sling Models Injector | コンテンツポリシーの値をインジェクトできるアノテーション @ContentPolicyValue を提供する | ○ | ○ |
New | Sling Models Injectors / Parent Resource ValueMap Value Injector | 親コンポーネントのプロパティ取得に使えるアノテーション @ParentResourceValueMapValue を提供する | ○ | ○ |
New | Sling Models Injectors / Tag Property Sling Models Injector | タグIDが格納された文字列プロパティから、TagをSling Modelに注入できるアノテーション@TagPropertyを提供する | ○ | ○ |
ETag Support | Entity Tagによるコンテンツの同一性チェックをする | ○ | ○ | |
E-mail / Stylesheet Inliner | ページで読み込まれているCSSをインライン化する | ○ | ○ | |
E-mail / Email API | メールを送ることができるJava APIを提供する | ○ | ○ | |
Sitemap Generator | サイトマップを生成する | ○ | ○ | |
☆ | Dispatcher Flush Rules | statレベルによる判定ではできないようなDispatcher Flush Ruleを設定する | ○ | ○ |
New | HTTP Caching Headers(Dispatcher TTL) | HTTPヘッダーでブラウザやCDNのキャッシュの制御をする | ○ | ○ |
New | Http Client Factory | OSGiで管理可能なHttpClientインスタンスを作成できる | ○ | ○ |
× |
全般便利ツール
☆ | 機能名 | 概要 | AACS | AEM6.5.10+ |
---|---|---|---|---|
AEM Environment Indicator | いま見ているAEM環境がどの環境(開発、本番、…、etc)であるかがわかるタブを表示する | ○ | ||
○ |
インテグレーション関連
☆ | 機能名 | 概要 | AACS | AEM6.5.10+ |
---|---|---|---|---|
Marketo Form | Marketoと連携する | ○ | ○ | |
Watson Speech to Text Integration | IBM Watsonとの連携 | ○ | ||
Syslog Integration | Syslogサーバーとの連携 | ○ | ||
Social Integrations / Twitter Adapter Factory | Twitterとの連携 | ○ | ||
Social Integrations / LinkedIn Scribe Integration | LinkedInとの連携 | ○ | ||
New | InDesign Dynamic Deck | AEM AssetsからInDesignドキュメントを生成できる | ○ | ○ |
New | MS Office Asset Selector | Microsoft OfficeアプリケーションからAEM Assetsを利用できる | ○ | ○ |
× | ||||
× |
最後に
ACS Commonsは、日々のAEM運用を支える強力なツールセットです。機能を知っているだけでも、トラブル対応や開発効率が大きく変わることがあります。ぜひ目的に応じて活用してみてください。
どれか一つでも「使ってみようかな」と思える機能が見つかれば嬉しいです!