パッケージを使用すると、リポジトリコンテンツのインポートとエクスポートが可能になります。パッケージを使用すると、新しいコンテンツのインストール、インスタンス間でのコンテンツの転送、リポジトリコンテンツのバックアップを行うことができます。
パッケージマネージャーを使用すると、開発目的で、AEM インスタンスとローカルファイルシステムの間でパッケージを転送できます。
パッケージとは、リポジトリコンテンツをファイルシステムのシリアル化形式で保持する zip ファイルであり、コンテナのシリアル化と呼ばれ、使いやすく編集しやすい形式でファイルやフォルダーを表します。パッケージに含まれるコンテンツは、フィルターを使用して定義します。
パッケージには、フィルター定義や読み込み設定情報など、コンテナのメタ情報も含まれています。説明、視覚的な画像、アイコンなど、パッケージの抽出には使用されない追加のコンテンツプロパティをパッケージに含めることができます。これらの追加のコンテンツプロパティは、コンテンツパッケージのコンシューマー向けのもので、情報提供だけを目的としています。
パッケージは、パッケージの構築時のコンテンツの現在のバージョンを表します。 リポジトリに保持するAEMコンテンツの以前のバージョンは含まれません。
AEM as a Cloud Service のアプリケーション用に作成されたコンテンツパッケージでは、不変コンテンツと可変コンテンツを明確に分離する必要があります。そのため、パッケージマネージャーは、コンテンツを含むパッケージの管理にのみ使用できます。すべてのコードは、Cloud Manager を使用してデプロイする必要があります。
パッケージには、コンテンツのみを含めることができます。すべての機能(/apps
で保存されたコンテンツなど)は、Cloud Manager の CI/CD パイプラインを使用してデプロイする必要があります。
パッケージのインストールに 10 分以上かかる場合は、パッケージマネージャー UI で 未定義 のエラーメッセージが返される場合があります。
これは、インストールのエラーによるものではなく、すべての要求に対して Cloud Service が持つタイムアウトのためです。
このようなエラーが表示された場合は、インストールを再試行しないでください。インストールはバックグラウンドで正しく進行しています。インストールを再開すると、複数の同時読み込みプロセスによって競合が発生する可能性があります。
AEMaaCS 用のパッケージを管理する方法について詳しくは、デプロイユーザーガイドの AEM as a Cloud Service へのデプロイ のドキュメントを参照してください。
パッケージマネージャーは、AEM インストール上のパッケージを管理します。必要な権限の割り当てを行うと、パッケージマネージャーを使用してパッケージの設定、ビルド、ダウンロード、インストールなど様々なアクションを実行できます。
パッケージを作成、変更、アップロード、インストールするには、次のノードで適切な権限が必要です。
/etc/packages
での削除を除く完全な権限パッケージに対する権限を付与すると、機密情報の開示やデータの損失が発生する場合があります。
これらのリスクを低減するため、専用のサブツリーに対してのみ特定のグループ権限を付与することを強くお勧めします。
パッケージマネージャーには次の 3 つの方法でアクセスできます。
http://<host>:<port>/crx/packmgr/
に直接アクセスパッケージマネージャーは、次の 4 つの主な機能領域に分かれています。
左側のナビゲーションパネルでオプションをクリックすると、パッケージリストが直ちにフィルタリングされます。
パッケージ名をクリックすると、「パッケージリスト」のエントリが展開され、パッケージの詳細が表示されます。
パッケージの詳細を展開すると、ツールバーのボタンを使用して、パッケージに対して様々なアクションを実行できます。
「その他」ボタンの下にあるその他のアクションを利用できます。
パッケージリスト内の各エントリには、パッケージのステータスを一目で把握できるステータスインジケーターが表示されます。ステータスの上にマウスポインターを置くと、ステータスの詳細を示すツールヒントが表示されます。
パッケージが変更された、または構築されなかった場合、ステータスは、パッケージを再構築またはインストールするためのクイックアクションを実行するリンクとして表示されます。
パッケージとは基本的に、一連のフィルターと、これらのフィルターに基づくリポジトリデータです。パッケージマネージャーの UI を使用して、パッケージをクリックし、「編集」ボタンをクリックすると、次の設定を含むパッケージの詳細が表示されます。
様々なパッケージ設定を編集して、パッケージの説明、依存関係、プロバイダー詳細などの情報を定義できます。
パッケージ設定ダイアログは、パッケージの作成中または編集中に「編集」ボタンから使用できます。変更が完了したら、「 保存」をクリックします。
フィールド | 説明 |
---|---|
名前 | パッケージの名前 |
グループ | パッケージを整理するために、新しいグループの名前を入力するか、既存のグループを選択できます |
バージョン | このバージョンに使用するテキスト |
説明 | 書式設定用の HTML マークアップを許可するパッケージの簡単な説明 |
サムネール | パッケージリストと共に表示されるアイコン |
フィルターは、パッケージに含めるリポジトリノードを識別します。フィルター定義によって、以下の情報が指定されます。
「+ 」ボタンを使用して、ルールを追加します。「- 」ボタンを使用してルールを削除します。
ルールは順序に従って適用されるため、必要に応じて上向きおよび下向きの矢印ボタンを使用してルールを配置します。
フィルターにはルールを含めないことも、いくつか含めることもできます。ルールを何も定義しない場合、パッケージにはルートパスの下のすべてのコンテンツが含まれます。
1 つのパッケージに対して 1 つまたは複数のフィルター定義を指定できます。複数のルートパスのコンテンツを含めるには、複数のフィルターを使用します。
フィルターを作成する場合、パスを定義するか、正規表現を使用することにより、含めたり除外したりするすべてのノードを指定できます。
ルールタイプ | 説明 |
---|---|
include | ディレクトリを含めると、そのディレクトリと、そのディレクトリ内のすべてのファイルとフォルダー(つまりサブツリー全体)が含まれますが、指定したルートパスの下にある他のファイルやフォルダーは含まれません。 |
exclude | ディレクトリを除外すると、そのディレクトリと、そのディレクトリ内のすべてのファイルとフォルダー(つまりサブツリー全体)が除外されます。 |
パッケージフィルターが定義されるのは、ほとんどの場合、最初にパッケージを作成するときです。 ただし、後で編集することもできますが、後でパッケージを再作成して、新しいフィルター定義に基づいてその内容を更新する必要があります。
1 つのパッケージに複数のフィルター定義を含めることができるので、別々の場所のノードを組み合わせて 1 つのパッケージにすることも簡単です。
フィールド | 説明 | 例/詳細 |
---|---|---|
テスト環境 | このパッケージのターゲットまたは互換性のある製品名およびバージョン。 | AEMaaCS |
修正された問題 | このパッケージで修正されたバグの詳細をリストするテキストフィールド。1 行に 1 つのバグが表示されます。 | - |
依存 | 現在のパッケージがインストール時に期待どおりに実行されるように、必要なその他のパッケージをリストします。 | groupId:name:version |
置き換え | このパッケージで置き換えられる、廃止されたパッケージのリスト | groupId:name:version |
フィールド | 説明 | 例/詳細 |
---|---|---|
名前 | パッケージのプロバイダーの名前 | WKND Media Group |
URL | プロバイダーの URL | https://wknd.site |
リンク | プロバイダーページへのパッケージ専用のリンク | https://wknd.site/package/ |
次を必要とする | パッケージのインストール時に制限があるかどうかを定義します | 管理者 - パッケージは管理者権限でのみインストールする必要があります。 再起動 - AEM はパッケージのインストール後に再起動する必要があります。 |
AC の処理 | パッケージ読み込み時にパッケージで定義されているアクセス制御情報の処理方法を指定します | 無視 - リポジトリ内の ACL を保持します。 上書き - リポジトリ内の ACL を上書きします。 結合 - 両方の ACL セットを結合します。 MergePreserve - コンテンツ内に存在しないプリンシパルのアクセス制御エントリを追加して、コンテンツ内のアクセス制御をパッケージに付属するエントリと結合します。 クリア - ACL をクリアします。 |
パッケージに複数のスクリーンショットを添付して、コンテンツがどのように表示されるかを視覚的に示すことができます。
1 つのパッケージで実行できるアクションは多数あります。
「パッケージを作成」をクリックします。
インスタンスに多数のパッケージがある場合は、フォルダー構造が存在する可能性があります。そのような場合は、新しいパッケージを作成する前に必要なターゲットフォルダーに移動する方が簡単です。
新規パッケージダイアログで、次のフィールドを入力します。
パッケージ名 - パッケージのコンテンツを(その他のユーザーが)簡単に識別できるように、わかりやすい名前を選択します。
バージョン - バージョンを示すためのテキストフィールドです。これはパッケージ名に追加され、zip ファイルの名前を形成します。
グループ - ターゲットグループ(またはフォルダー)の名前です。グループは、パッケージの整理に役立ちます。グループのフォルダーがまだ存在しない場合は作成されます。グループ名を空白のままにすると、メインのパッケージリストにパッケージが作成されます。
「OK」をクリックしてパッケージを作成します。
AEM では、新しいパッケージがパッケージのリストの最上部に表示されます。
「編集」をクリックして、パッケージの内容を定義します。設定の編集が完了したら、「保存」をクリックします。
これで、パッケージをビルドできます。
パッケージを作成した後すぐにビルドする必要はありません。未ビルドパッケージにはコンテンツが含まれず、フィルターデータとパッケージの他のメタデータのみで構成されます。
多くの場合、パッケージはパッケージを作成と同時にビルドされますが、後の時点で戻ってビルドまたはリビルドのいずれかを行うことができます。これは、リポジトリ内のコンテンツが変更された場合や、パッケージフィルターが変更された場合に役立ちます。
パッケージ名をクリックして、パッケージリストからパッケージの詳細を開きます。
「ビルド」をクリックします。パッケージをビルドすると既存のパッケージの内容が上書きされるので、実行するかどうかを確認するダイアログが表示されます。
「OK」をクリックします。AEM はパッケージをビルドし、パッケージに追加されたすべてのコンテンツをアクティビティリストに表示します。パッケージの構築が完了すると、パッケージが構築されたことを示すダイアログが表示されます。また、(このダイアログを閉じると)パッケージリストの内容が更新されます。
パッケージを AEM にアップロードした後は、その設定を変更できます。
パッケージ名をクリックして、パッケージリストからパッケージの詳細を開きます。
「編集」をクリックして、必要に応じてパッケージ設定を更新します。
「保存」をクリックして、保存します。
変更した内容を反映するには、パッケージを再構築する必要がある場合があります。
パッケージは、ビルド後に再度含めることができます。再度含めると、パッケージのコンテンツを変更せずに、サムネール、説明などを含まないパッケージ情報を変更します。
パッケージ名をクリックして、パッケージリストからパッケージの詳細を開きます。
「編集」をクリックして、必要に応じてパッケージ設定を更新します。
「保存」をクリックして、保存します。
その他-/再度含めるをクリックすると、確認のダイアログが表示されます。
パッケージのすべてのバージョンは他のパッケージとしてリストに表示されるので、パッケージマネージャーは選択したパッケージの他のバージョンを検索できます。
パッケージ名をクリックして、パッケージリストからパッケージの詳細を開きます。
その他/その他のバージョンをクリックすると、同じパッケージの他のバージョンとステータス情報が表示されたダイアログが開きます。
パッケージがビルドされたら、コンテンツを表示できます。
パッケージ名をクリックして、パッケージリストからパッケージの詳細を開きます。
コンテンツを表示するには、その他/コンテンツをクリックします。パッケージマネージャーには、パッケージのコンテンツ全体がアクティビティログにリストされます。
インストールのドライランを実行するには、その他/インストールをテストをクリックします。パッケージマネージャーは、インストールが実行されたかのように結果をアクティビティログにレポートします。
パッケージ名をクリックして、パッケージリストからパッケージの詳細を開きます。
ダウンロードボタンか、パッケージのリンクされたファイル名(パッケージの詳細領域内)をクリックします。
AEM がお使いのコンピューターにパッケージをダウンロードします。
パッケージのアップロード先となるグループフォルダーを選択します。
「パッケージをアップロード」ボタンをクリックします。
アップロードしたパッケージに関する必要な情報を入力します。
「OK」をクリックすると、選択したパッケージがアップロードされ、それに応じてパッケージリストが更新されます。
パッケージコンテンツが AEM に存在しますが、コンテンツを使用できるようにするには、パッケージのインストールを行ってください。
パッケージは既存のコンテンツを変更する可能性があるので、多くの場合、インストール前にこれらの変更を検証すると便利です。
パッケージマネージャーは次の検証を実行できます。
AEMaaCS でのコードのデプロイにパッケージを使用できないので、 OSGi パッケージの読み込み 検証は不要です。
チェック内容
この検証では、パッケージ内のすべての JAR ファイル(OSGi バンドル)を調べ、それらの manifest.xml
(OSGi バンドルが依存しているバージョン付きの依存関係が含まれているファイル)を抽出し、AEM インスタンスが正しいバージョンで依存関係を書き出すかを確認します。
レポート方法
AEM インスタンスで解決できないバージョン付きの依存関係は、パッケージマネージャーのアクティビティログに記載されます。
エラー状態
依存関係が満たされていない場合、これらの依存関係を含むパッケージ内の OSGi バンドルは起動しません。 この結果、起動されていない OSGi バンドルに依存しているものが正しく機能しなくなるため、アプリケーションのデプロイが破損します。
エラーの解決
OSGi バンドルが満たされていないことによるエラーを解決するには、満たされていない読み込みがあるバンドル内の依存関係のバージョンを調整する必要があります。
AEMaaCS でのコードのデプロイにパッケージを使用できないので、 オーバーレイ 検証は不要です。
チェック内容
この検証では、インストールされるパッケージに、宛先のAEMインスタンスで既にオーバーレイされているファイルが含まれているかどうかを判断します。
例えば、既存のオーバーレイが /apps/sling/servlet/errorhandler/404.jsp
にある場合、/libs/sling/servlet/errorhandler/404.jsp
を含むパッケージは、/libs/sling/servlet/errorhandler/404.jsp
の既存のファイルを変更します。
レポート方法
そのようなオーバーレイは、パッケージマネージャーのアクティビティログに記載されます。
エラー状態
エラー状態とは、パッケージが既にオーバーレイされているファイルのデプロイを試みているため、パッケージ内の変更はオーバーレイによって上書きされ(したがって「非表示」になる)、有効にならないことを意味します。
エラーの解決
この問題を解決するために、/apps
のオーバーレイファイルのメンテナンス者は、/libs
のオーバーレイファイルへの変更を確認する必要があります。必要に応じて変更をオーバーレイ(/apps
)に組み込み、オーバーレイしたファイルを再デプロイします。
検証メカニズムには、オーバーレイコンテンツがオーバーレイファイルに正しく組み込まれているかどうかを照合する方法はありません。したがって、この検証では、必要な変更が加えられた後も競合についてレポートし続けます。
チェック内容
この検証では、追加されている権限、それらの処理方法(結合/置換)、現在の権限に影響があるかどうかを確認します。
レポート方法
権限については、パッケージマネージャーのアクティビティログに記載されます。
エラー状態
明示的なエラーは提供できません。 検証は、新しい ACL 権限がパッケージのインストールによって追加されるか、影響を受けるかを示すだけです。
エラーの解決
検証で提供された情報を使用して、影響を受けたノードを CRXDE で確認し、必要に応じて ACL をパッケージ内で調整できます。
ベストプラクティスとして、予期しない動作を引き起こす可能性があるため、パッケージは AEM 提供の ACL に影響を与えないようにすることをお勧めします。
パッケージの検証は、次の 2 つの方法で実行できます。
検証は、パッケージをアップロードした後で、インストールする前に必ず行う必要があります。
パッケージ名をクリックして、パッケージリストからパッケージの詳細を開きます。
パッケージを検証するには、その他/検証をクリックします。
表示されるモーダルダイアログボックスで、チェックボックスを使用して検証の種類を選択し、「検証」をクリックして検証を開始します。
選択した検証が実行され、結果がパッケージマネージャーのアクティビティログに表示されます。
POST リクエストの形式は以下のとおりです。
https://<host>:<port>/crx/packmgr/service.jsp?cmd=validate&type=osgiPackageImports,overlays,acls
type
パラメーターは、カンマで区切った順不同リストで、次のように構成されます。
osgiPackageImports
overlays
acls
明示的に値が渡されなかった場合、type
のデフォルト値は osgiPackageImports
に設定されます。
cURL を使用している場合は、次のようなステートメントを実行してください。
curl -v -X POST --user admin:admin -F file=@/Users/SomeGuy/Desktop/core.wcm.components.all-1.1.0.zip 'http://localhost:4502/crx/packmgr/service.jsp?cmd=validate&type=osgiPackageImports,overlays,acls'
POST リクエストを介して検証する場合、応答は JSON オブジェクトとして返されます。
パッケージは、フィルターによって定義されます。パッケージマネージャーで既存のリポジトリコンテンツにパッケージのフィルターを適用して、パッケージのフィルター定義でカバーされるリポジトリのコンテンツを表示できます。
パッケージ名をクリックして、パッケージリストからパッケージの詳細を開きます。
その他/対象範囲をクリックします。
有効範囲の詳細は、アクティビティログにリストされます。
パッケージをアップロードすると、パッケージのコンテンツがリポジトリに追加するだけで、アクセスすることはできません。パッケージのコンテンツを使用するには、アップロードしたパッケージをインストールする必要があります。
パッケージをインストールすると、既存のコンテンツが上書きまたは削除される可能性があります。必要なコンテンツが削除または上書きされないと確認できる場合にのみ、パッケージをアップロードしてください。
パッケージをインストールする前に、上書きされるコンテンツを含むスナップショットパッケージがパッケージマネージャーによって自動的に作成されます。このスナップショットは、パッケージをアンインストールした場合に再インストールされます。
パッケージ名をクリックして、インストールするパッケージのパッケージ詳細をパッケージリストから開きます。
項目の詳細の「インストール」 ボタンまたは「インストール」リンクのいずれかをクリックします。
確認を求めるダイアログが表示され、追加のオプションを指定できます。
「インストール」をクリックします。
インストールの進行状況の詳細は、アクティビティログに記録されます。
インストールが正常に完了すると、パッケージリストが更新され、「インストール済み」がパッケージのステータスに表示されます。
パッケージの再インストールでは、すでにインストールされているパッケージに対して、最初にパッケージをインストールした時の処理と同じ手順を実行します。
パッケージをインストールする際に、完全にパッケージマネージャーなしで済ませることができます。AEM は、ホストマシンのローカルファイルシステム上の特定の場所に配置されたパッケージを検出し、それらを自動的にアップロードしてインストールできます。
AEM インストールフォルダーに、jar ファイルや license.properties
ファイルと並んで crx-quicksart
フォルダーがあります。パス <aem-home>/crx-quickstart/install
で生成された crx-quickstart
の下に install
という名前のフォルダーを作成します。
このフォルダーにパッケージを追加します。追加したパッケージは、インスタンスに自動的にアップロードおよびインストールされます。
アップロードとインストールが完了すると、パッケージマネージャー UI を使用してパッケージをインストールしたかのように、パッケージマネージャーにパッケージが表示されます。
インスタンスを実行している場合、install
フォルダーへのパッケージにインスタンスを追加すると、直ちにアップロードとインストールが始まります。
インスタンスを実行していない場合、install
フォルダーに配置されたパッケージは、起動時にアルファベット順にインストールされます。
パッケージをアンインストールすると、リポジトリの内容は、インストール前にパッケージマネージャーが自動的に作成したスナップショットに戻ります。
パッケージリストでパッケージ名をクリックして、アンインストールするパッケージの詳細を開きます。
その他/アンインストールをクリックして、リポジトリからこのパッケージのコンテンツを削除します。
確認を求めるダイアログが表示され、行われているすべての変更が一覧表示されます。
パッケージが削除され、スナップショットが適用されます。処理の進行状況がアクティビティログに表示されます。
パッケージを削除すると、パッケージマネージャーからその詳細のみが削除されます。このパッケージが既にインストールされている場合、インストール済みのコンテンツは削除されません。
パッケージリストからパッケージ名をクリックして、削除するパッケージのパッケージ詳細を開きます。
パッケージを削除してよいかどうか確認するダイアログが表示されます。「OK」をクリックして削除を確認します。
パッケージ情報が削除され、詳細がアクティビティログに報告されます。
パッケージのコンテンツをレプリケートして、パブリッシュインスタンスにインストールします。
パッケージ名をクリックして、パッケージリストからレプリケートするパッケージのパッケージ詳細を開きます。
その他/レプリケートをクリックします。
パッケージがレプリケートされ、詳細がアクティビティログに報告されます。
AEM パッケージを使用すると、コンテンツを作成して AEMaaCS 環境全体で共有できます。
ソフトウェア配布 は、ローカル開発の AEM SDK で使用するための AEM パッケージを提供します。ソフトウェア配布で提供される AEM パッケージは、アドビサポートが明示的に承認しない限り、AEMaaCS クラウド環境にインストールできません。
詳しくは、 ソフトウェア配布ドキュメント を参照してください。