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に接続するを参照してください。

IMPORTANT
Cloud Managerのワンクリックオプションを使用してEDS サイトを作成しないでください。 この方法で作成されたサイトでは、後の手順で必要となる管理者権限が付与されません。 詳しくは、Edge Delivery Services サイトの準備を参照してください。

​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>
Adobeが提供するワーカーノード URL。
<git acc domain>
gitlab.comなどのGitLab ドメインまたはセルフホスト ドメイン。
<git username>
GitLab ユーザー名。
<git repo>
GitLab リポジトリの名前。
main / docs
ブランチおよびルートフォルダー。 Experience Manager Guidesのデフォルト。

​4. GitLab アクセストークンの作成

以下に必要なアクセストークンを作成します。

  • Cloud Manager。リポジトリを検証してアクセスします。 詳しくは、Cloud Managerで外部リポジトリを追加するを参照してください。
  • Experience Manager Guides パブリッシュプロファイル​を使用して、パブリッシュされた出力を確定します。 Developer​の役割とapiのスコープを持つGitLab プロジェクト アクセス トークンを作成します。 詳しくは、GitLab ドキュメント ​を参照してください。
NOTE
トークンが期限切れになる前に更新します。 公開プロファイルのトークンが期限切れになっている場合、公開は失敗します。 Cloud Managerで使用するトークンを更新するには、外部リポジトリのアクセストークンの管理を参照してください。

​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を取り込む」のトラブルシューティングを参照してください。

recommendation-more-help
experience-manager-guides-help-product-guide