無効な OSGi 設定プロパティが原因でAEM デプロイメントパイプラインが失敗する
ステージング環境と実稼動環境のデプロイメントパイプラインは、しばらく実行した後、 サービスを更新 サブステップ中に失敗します。 これを修正するには、設定ファイルの空のキーを更新または削除し、Cloud Managerを使用して再デプロイします。
説明 description
環境
- Adobe Experience Manager(AEM)as a Cloud Service
- Cloud Manager CI/CD パイプライン(ステージング/実稼動)
- Sling 機能ランチャー
問題/症状
- デプロイメントパイプラインが失敗し、システムの問題 メッセージが表示されます。
- 2 時間以上実行した後に、 サービスを更新 サブステップでエラーが発生する。
原因
-
Sling 機能ランチャーは、プロジェクトコードベースの OSGi 設定プロパティが無効なため、初期化に失敗します。
-
OSGi 設定ファイルに空のプロパティキーがある場合の例を次に示します。
code language-none { "scheduler.expression": "0 0 6 * * ?", "job.enabled": true, "": "notifications@example.com", "emailName": "System Reminder", "emailSubject": "Reminder", "emailMessage": "This is an automated reminder for your content." }
空のプロパティ(「」)があると、起動時の設定の解析中にAEMが失敗し、「サービスを更新 ステップでパイプラインエラーが発生 ます。
解決策 resolution
この問題を解決するには、影響を受ける設定ファイルの無効なプロパティを更新または削除します。
-
影響を受ける設定ファイル(通常は次の場所にあります)を開きます。
ui.config/src/main/content/jcr_root/apps/<project-name>/osgiconfig/config.<runmode>/
詳しくは、Adobe Experience Manager as a Cloud Serviceの OSGi の設定 を参照してください。 -
無効なプロパティを削除または修正します。
例(プロパティの修正)
code language-none { "scheduler.expression": "0 0 6 * * ?", "job.enabled": true, "recipientEmail": "notifications@example.com", "emailName": "System Reminder", "emailSubject": "Reminder", "emailMessage": "This is an automated reminder for your content." }重要 : シークレット、パスワード、API キー、その他の機密情報を OSGi 設定ファイルに直接含めないでください。 機密性の高い値を安全に管理するには、Cloud Managerの環境変数 を使用します。
-
Cloud Managerを使用して、修正された設定をコミットし、再デプロイします。 詳しくは、AEM as a Cloud Service ユーザーガイドの AEM as a Cloud Serviceへのデプロイ を参照してください。
設定を修正すると、パイプラインは正常に実行されます。
その他のメモ
jsonlintや IDE ベースの検証などのツールを使用して、コミット前に JSON 設定をローカルで検証します。- すべてのプロパティ名が空でなく、一意で、正しく入力されていることを確認します。
- Cloud ManagerのAEM as a Cloud Service ビルドログを確認して、設定の問題を早期に検出します。
config.<runmode>のフォルダー(config.author、config.publishなど)の下に配置することで、設定を環境に固有にします。