攻略
このページの翻訳は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にプッシュするには:
- PowerShellで docker pushコマンドを実行します。すべてのイメージを事前にプロビジョニングされたACRにプッシュしなければなりません: {infrastructure_id}acr。
アプリケーションリポジトリ内のイメージを変更する
これでJSS固有のネーミングイメージをアプリケーションリポジトリに追加できます。
アプリケーションリポジトリ内のイメージを変更するには:
-
アプリケーションリポジトリconfig/docker-imagesにアクセスし、次のようにdocker-images.jsonを編集してください:
- cm値をcm-jss画像参照URLに置き換えてください。
- cd値をcd-jss画像参照URLに置き換えてください。
- mssql_init_jssプロパティを加えます。
例えば:
{ "sitecore":{ "cm": "
.1.0-ltsc2019", "mssql_init_jss": "<newly built mssql_init_jss image reference>", }; ...", "cd": " ", "id": "scr.sitecore.com/sxp/sitecore-xml-id
イングレスコントローラのヘッダーにアンダースコアを付けるオプションを有効にしてください
Nginxのイングレスコントローラは、デフォルトでアンダースコアを含むリクエストヘッダーを落とします。
JSSモジュールはアンダースコアを含むヘッダーの一部を使用しています。この機能をサポートするためには、ヘッダー内のアンダースコア オプションを有効にする必要があります。
ヘッダーにアンダースコアを表示するオプションを有効にするには:
-
roles/に移動し、以下のフォルダ構造を作成してください
/nginx-underscores/tasks。 -
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
-
リポジトリのルートディレクトリでmain.yamlファイルを開いてください。
-
新しいnginx-アンダースコアの役割を追加するには、以下のセクションの後に行います。
include_role: name: ingress-configuration
以下のものを挿入してください:
include_role: name: nginx-underscores
-
アプリケーションパイプラインを実行してください。
Mssql-init-jssコンテナを災害復旧なしで実行してください
Mssql-init-jssコンテナを実行するには:
-
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
-
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 }}"
-
-
アプリケーションパイプラインを実行してください。
Mssql-init-jssコンテナを災害復旧で実行します
Mssql-init-jssコンテナを実行するには:
-
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
-
例えば、custom-init.yaml、のカスタムinit.yamlファイルを作成し、それを /roles/sitecore-{topology}/tasksフォルダに入れます。
-
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 }}"
-
-
カスタムinit.yamlファイルを呼び出すには、/roles/sitecore-{topology}/tasks/main.yamlにアクセスし、ファイルの最後に以下のロールを追加してください:
- name: Execute custom init jobs include_tasks: custom-init.yaml

-
アプリケーションパイプラインを実行してください。
-
カスタムジョブが正常に作成された場合は、Execute custom init jobs役にコメントを書き留めてください。