Edge Delivery Services用GitLabのセットアップと設定
GitLabを使用してExperience Manager GuidesからEdge Delivery Services(EDS)にコンテンツを公開するには、Cloud ManagerのBring Your Own Git (BYOG)機能を使用して、GitLab リポジトリをEDS サイトに接続します。 この記事では、手順を順を追って説明します。 各ステップの詳細については、リンクされたドキュメントを参照してください。
仕組み
- GitHub リポジトリは、AEM Code Sync アプリを使用してEDS サイトを作成します。
- GitLab リポジトリは、Experience Manager Guidesから公開されたコンテンツを保存します。
- Cloud Managerは、GitLab プッシュイベント (webhook)を受け取り、EDS サイトに同期することで、2つをリンクします。
前提条件
- リポジトリとトークンを作成するためのGitHubとGitLab (GitLab.comまたはセルフホスト)へのアクセス。
- Cloud Managerにアクセスし、リポジトリ(デプロイメントマネージャーまたはビジネスオーナー)を追加できるロールを持つ。
- Cloud Manager API統合を作成するには、Adobe組織のシステム管理者またはAPI開発者ロールを使用します。
- 構成サービスに
aem.live組織が登録されました。 詳しくは、設定サービスの設定を参照してください。
Edge Delivery Services用GitLabの設定
Edge Delivery Servicesで使用するようにGitLabを設定するには、指定した順序で次の手順を実行して、適切に設定および統合します。
1. GitHubを使用したEDS サイトの作成
AEM GuidesのボイラープレートからGitHub リポジトリを作成し、その上にAEM Code Sync アプリをインストールします。 生成されたライブ URL (https://<branch>--<github-repo>--<github-username>.aem.live)を後で使用するために保存します。
手順については、Create a GitHub repository for EDSおよびAEM Code Syncを使用してGitHubをAdobeに接続するを参照してください。
2. GitLab リポジトリの作成
同じAEM Guides ボイラープレートから別のGitLab リポジトリ(例:my-eds-gitlab)を作成します。 Experience Manager Guidesは、生成された出力をこのリポジトリに公開します。 EDSにはmain ブランチが必要です。
リポジトリを作成するには、空白のプロジェクトを作成し、aem-guides-boilerplateの内容をそれにプッシュするか、ボイラープレートを新しいプロジェクトに読み込みます。 手順については、GitLab ドキュメントの プロジェクトの作成およびGitHubからGitLabへのプロジェクトのインポートを参照してください。
3. マウントポイント URLの設定
GitHub リポジトリで、コンテンツソースがGitLab リポジトリを指すようにfstab.yamlを更新し、変更をmainにコミットします。
https://<worker URL>/gitlab/<git acc domain>/<git username>/<git repo>/main/docs
<worker URL><git acc domain>gitlab.comなどのGitLab ドメインまたはセルフホスト ドメイン。<git username><git repo>main / docs4. GitLab アクセストークンの作成
以下に必要なアクセストークンを作成します。
- Cloud Manager。リポジトリを検証してアクセスします。 詳しくは、Cloud Managerで外部リポジトリを追加するを参照してください。
- Experience Manager Guides パブリッシュプロファイルを使用して、パブリッシュされた出力を確定します。 Developerの役割と
apiのスコープを持つGitLab プロジェクト アクセス トークンを作成します。 詳しくは、GitLab ドキュメント を参照してください。
5. GitLab リポジトリをCloud Managerに追加する
Cloud Managerで、Repositories > Add Repositoryに移動し、Private Repositoryを選択し、アクセストークンを使用して所有権を検証します。 リポジトリのステータスが 準備完了 になるまで待ちます。 BYOG オプションは、少なくとも1つの外部リポジトリが準備完了した後にのみ使用できます。
手順については、Cloud Managerで外部リポジトリを追加するを参照してください。
6. Cloud Manager API キーの生成
Adobe Developer ConsoleでAPI統合を作成し(Cloud Manager API、OAuth サーバー間)、クライアント ID (API キー)をコピーします。
手順については、API統合プロジェクトの作成を参照してください。
7. GitLab Webhookの設定
Cloud Managerで、リポジトリの Config Webhook を選択し、Webhook URLと Secret をコピーします。 API キーをURL (<webhook URL>&api-key=<CLIENT_ID>)に追加します。 GitLabで、Settings > Webhookに移動し、URLとシークレットを追加してmain ブランチを選択し、プッシュイベントを有効にします。
詳しくは、Cloud Managerでの外部リポジトリの設定を参照してください。
8. EDS サイトをCloud Managerに追加
Cloud Managerで、Edge Delivery > Edge Delivery サイトを追加に移動し、手順1で保存したライブ URLを入力します。 所有権の検証を完了します。
手順については、Edge Delivery サイトの追加を参照してください。
9. Bring Your Own Gitを使用してリポジトリを接続する
Cloud ManagerのEDS サイトで、自分のGit (BYOG)を選択し、GitLab リポジトリを選択して確定します。 生成された秘密鍵をコピーして安全に保存します。 これは1回だけ表示され、サイトを再設定すると新しい秘密鍵が生成されます。
詳しくは、Cloud ManagerでのEdge Delivery サイトの設定を参照してください。
10. Cloud Managerを使用するようにEDS サイトを設定する
Webhook URLからプログラム ID (/program/<PROGRAM_ID>/)とリポジトリ ID (/repo/<REPO_ID>/)を使用して、EDS サイトのコードソースをCloud Manager リポジトリに設定します。 次に、手順9のシークレットを使用して、正確にcm-byogという名前のシークレットを作成します。
Admin API呼び出しの場合は、Cloud Managerを使用するようにAEM サイトを設定します。
11. 同期と検証
Cloud Managerで、サイトのメニューから「コードを同期」を選択し、main ブランチを選択します。 次に、https://main--<site>--<org>.aem.pageを開いてサイトを確認します。
詳しくは、最初のトリガーとAEM サイトの確認を参照してください。
12. Experience Manager Guidesから公開
手順4のプロジェクトアクセストークンを使用して、Git アカウントタイプが GitLab に設定されたEDS公開プロファイルを作成します。 次に、EDS出力プリセットでこのプロファイルを選択し、出力を生成します。 出力は、GitLab リポジトリのdocs フォルダーにコミットされます。
手順については、EDS公開プロファイルの作成およびEDS用の出力プリセットの作成と出力の生成を参照してください。
トラブルシューティング
- プッシュ後にサイトに古いコンテンツが表示される: WebhookがCloud Managerにイベントを配信していることを確認し、最新の同期ジョブのステータスを確認します。
- 同期エラー
Unable to fetch hlxignore: 401:cm-byog秘密鍵が正しくありません。 手順9の秘密鍵を使用して再作成します。 - 別のサイトにリンクされたリポジトリ: Cloud Manager リポジトリは、一度に1つのサイトにのみリンクできます。 サイト間でリポジトリを共有するには、Repolessを使用します。
詳細については、「独自のGitを取り込む」のトラブルシューティングを参照してください。