1. Managed Cloudの設定

攻略

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore JavaScript SDK (JSS)は、最新のJavaScriptフレームワークを使ってSitecoreアプリを実装できるnpmパッケージのセットです。JSSモジュールを追加するには、特定のDockerイメージを作成し、Azureコンテナレジストリ(ACR)にプッシュし、その後アプリケーションリポジトリで変更してからMssqlコンテナを起動します。

このウォークスルーでは、以下の方法を説明します:

  • Dockerイメージを準備してください
  • 画像をACRにプッシュしてください
  • アプリケーションリポジトリ内のイメージを変更する
  • Mssql-init-jssコンテナを実行します:
    • 災害復旧なしで。
    • 災害復旧で。

Dockerイメージを準備してください

カスタムJSSモジュールの作成方法については、「 Add Sitecore modules 」トピックを参照してください。

JSSアプリを操作するには、以下の画像を作成する必要があります:

  • cm-jss
  • cd-jss
  • mssql_init_jss

イメージをAzureコンテナレジストリ(ACR)にプッシュしてください。

画像をACRにプッシュするには:

アプリケーションリポジトリ内のイメージを変更する

これでJSS固有のネーミングイメージをアプリケーションリポジトリに追加できます。

アプリケーションリポジトリ内のイメージを変更するには:

  • アプリケーションリポジトリconfig/docker-imagesにアクセスし、次のようにdocker-images.jsonを編集してください:

    • cm値をcm-jss画像参照URLに置き換えてください。
    • cd値をcd-jss画像参照URLに置き換えてください。
    • mssql_init_jssプロパティを加えます。

    例えば:

    { "sitecore":{ "cm": "", "cd": "", "id": "scr.sitecore.com/sxp/sitecore-xml-id

    .1.0-ltsc2019", "mssql_init_jss": "<newly built mssql_init_jss image reference>", }; ...

イングレスコントローラのヘッダーにアンダースコアを付けるオプションを有効にしてください

Nginxのイングレスコントローラは、デフォルトでアンダースコアを含むリクエストヘッダーを落とします。

JSSモジュールはアンダースコアを含むヘッダーの一部を使用しています。この機能をサポートするためには、ヘッダー内のアンダースコア オプションを有効にする必要があります。

ヘッダーにアンダースコアを表示するオプションを有効にするには:

  1. roles/に移動し、以下のフォルダ構造を作成してください

    /nginx-underscores/tasks。

  2. roles/nginx-underscores/tasksフォルダ内に、以下のコードを含むmain.yamlファイルを追加します。

    ---   

    • name: Customize nginx - enable underscores-in-headers   k8s:     definition:       apiVersion: v1       kind: ConfigMap       metadata:         name: ingress-nginx-controller         namespace: nginx       data:         enable-underscores-in-headers: 'true'     validate:       fail_on_error: yes
  3. リポジトリのルートディレクトリでmain.yamlファイルを開いてください。

  4. 新しいnginx-アンダースコアの役割を追加するには、以下のセクションの後に行います。

    include_role:         name: ingress-configuration

    以下のものを挿入してください:

    include_role:         name: nginx-underscores

  5. アプリケーションパイプラインを実行してください。

Mssql-init-jssコンテナを災害復旧なしで実行してください

Mssql-init-jssコンテナを実行するには:

  1. roles\sitecore-{topology}\templates\に移動し、mssql-init-spe-jssジョブファイルの名前で「mssql-init-jss.yaml」を追加してください。例えば:


    apiVersion: batch/v1 kind: Job metadata: name: jss-mssql-init spec: template: spec: nodeSelector: kubernetes.io/os: windows imagePullSecrets:

    • name: sitecore-docker-registry containers:
    • name: mssql-init image: "{{ docker_images.sitecore.mssql_init_jss }}" env:
    • name: sitecore_admin_password valueFrom: secretKeyRef: name: sitecore-admin key: sitecore-adminpassword.txt
    • name: SQL_ADMIN_PASSWORD valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databasepassword.txt
    • name: SQL_ADMIN_LOGIN valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databaseusername.txt
    • name: SQL_SERVER valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databaseservername.txt
    • name: SQL_ELASTIC_POOL_NAME valueFrom: secretKeyRef: name: sitecore-database key: sitecore-database-elastic-pool-name.txt
    • name: DATABASES_TO_DEPLOY value: jss restartPolicy: Never backoffLimit: 5
  2. mssql-init-jssジョブを実行するAnsibleタスクを追加するには、*roles\sitecore-xm\tasks\init.yaml*に移動し、ファイルの最後に以下のスクリプトを追加してください。

    • name: Execute jss mssql-init jobs k8s: apply: true namespace: "{{ solution_id }}" state: present definition: "{{ lookup('template', 'mssql-init-jss.yaml') }}"

    • name: 'Wait - JSS Mssql-init job' k8s_info: kind: Job name: jss-mssql-init namespace: "{{ solution_id }}" register: jss_mssql_init_result until: (jss_mssql_init_result.resources0.status.conditions0.type | default('')) == 'Complete' retries: 60 delay: 60

    • name: Get all JSS Mssql completed pods k8s_info: kind: Pod namespace: "{{ solution_id }}" label_selectors:

    • job-name = jss-mssql-init no_log: true register: jss_mssql_pod_list

    • name: Remove JSS Mssql job's pods k8s: kind: Pod name: "{{ item.metadata.name }}" namespace: "{{ solution_id }}" state: absent no_log: true with_items: "{{ jss_mssql_pod_list.resources }}"

  3. アプリケーションパイプラインを実行してください。

Mssql-init-jssコンテナを災害復旧で実行します

Mssql-init-jssコンテナを実行するには:

  1. roles\sitecore-{topology}\templates\に移動し、mssql-init-spe-jssジョブファイルの名前で「mssql-init-jss.yaml」を追加してください。例えば:


    apiVersion: batch/v1 kind: Job metadata: name: jss-mssql-init spec: template: spec: nodeSelector: kubernetes.io/os: windows imagePullSecrets:

    • name: sitecore-docker-registry containers:
    • name: mssql-init image: "{{ docker_images.sitecore.mssql_init_jss }}" env:
    • name: sitecore_admin_password valueFrom: secretKeyRef: name: sitecore-admin key: sitecore-adminpassword.txt
    • name: SQL_ADMIN_PASSWORD valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databasepassword.txt
    • name: SQL_ADMIN_LOGIN valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databaseusername.txt
    • name: SQL_SERVER valueFrom: secretKeyRef: name: sitecore-database key: sitecore-databaseservername.txt
    • name: SQL_ELASTIC_POOL_NAME valueFrom: secretKeyRef: name: sitecore-database key: sitecore-database-elastic-pool-name.txt
    • name: DATABASES_TO_DEPLOY value: jss restartPolicy: Never backoffLimit: 5
  2. 例えば、custom-init.yaml、のカスタムinit.yamlファイルを作成し、それを /roles/sitecore-{topology}/tasksフォルダに入れます。

  3. mssql-init-jssジョブをファイルに追加するには、以下のコードを追加してください:

    • name: Execute jss mssql-init jobs k8s: apply: true namespace: "{{ solution_id }}" state: present definition: "{{ lookup('template', 'mssql-init-jss.yaml') }}"

    • name: 'Wait - JSS Mssql-init job' k8s_info: kind: Job name: jss-mssql-init namespace: "{{ solution_id }}" register: jss_mssql_init_result until: (jss_mssql_init_result.resources0.status.conditions0.type | default('')) == 'Complete' retries: 60 delay: 60

    • name: Get all JSS Mssql completed pods k8s_info: kind: Pod namespace: "{{ solution_id }}" label_selectors:

    • job-name = jss-mssql-init no_log: true register: jss_mssql_pod_list

    • name: Remove JSS Mssql job's pods k8s: kind: Pod name: "{{ item.metadata.name }}" namespace: "{{ solution_id }}" state: absent no_log: true with_items: "{{ jss_mssql_pod_list.resources }}"

  4. カスタムinit.yamlファイルを呼び出すには、/roles/sitecore-{topology}/tasks/main.yamlにアクセスし、ファイルの最後に以下のロールを追加してください:

    • name: Execute custom init jobs include_tasks: custom-init.yaml
    In the mail.yaml file, call the init.yaml file.
  5. アプリケーションパイプラインを実行してください。

  6. カスタムジョブが正常に作成された場合は、Execute custom init jobs役にコメントを書き留めてください。

この記事を改善するための提案がある場合は、 お知らせください!