JSSデプロイメントのベスト・プラクティスおよびセキュリティー
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
JSSアプリケーションのデプロイメント手順は、開発ワークフローによって異なります。
本番環境では、ほとんどのアプリがSitecoreファーストのワークフローを使用します。
Sitecoreファーストのワークフローでは、次のような通常のSitecore DevOpsのベスト プラクティスが適用されます。
-
反復可能で完全に自動化されたデプロイ プロセスを用意します。
-
UnicornやTDSなどのアイテム シリアル化ツールを使用して、JSSサイトのアイテムを含む、開発者所有のSitecoreアイテム (テンプレート、レンダリングなど) をソース管理およびデプロイします。
特にJSSの場合、以下のものもお勧めします。
-
Sitecoreバックエンド コードとJSSサイト コードを同じソース管理リポジトリに保存して、フロントエンドとバックエンド間での変更の同期の問題を回避し、開発者が変更を簡単にコミット、テスト、元に戻すことができるようにすることを検討してください。これにより、CIビルド中にJSSサイト アーティファクトをビルドしてSitecoreにデプロイすることも容易になります。
-
Sitecoreの更新とヘッドレス モードでのJSSサイトの更新のデプロイを1つのビルド プロセスに自動化して、フロントエンドとバックエンドの異なるバージョンのデプロイによる欠陥を回避します。
-
JSS接続情報とデプロイメント情報をデプロイメント変数に格納できるようにするには、jss setupコマンドでいくつかのオプションを使用できます。
グローバルnpmパッケージをインストールできない環境でjss CLIコマンドを実行する場合は、代わりにnpm run jss commandを使用してCLIコマンドのエイリアスをnpmにすることができます。
npmで実行するコマンドの引数の前に -- を使用します。例えばnpm run jss deploy app -- --skipBuild
インポートサービス
インポート サービスは、コードファーストのSitecoreアイテム アーティファクトをSitecoreにデプロイするため、およびSitecoreファーストの開発者スキャフォールディングに使用されます。このサービスは、Sitecoreヘッドレス サービスのインストール時に自動的にインストールされます。
-
デプロイ サービスでは、認証に共有シークレットを使用します。これらは、環境ごとに一意で、randomly generated (パスフレーズなし)、32文字以上である必要があります。共有シークレットは、デプロイされるパッケージを要素としてHMACを使用するため、パッケージが改ざんされておらず、共有シークレットがネットワーク経由で送信されないという署名検証が行われます。
-
インポート サービスを含むすべてのSitecore HTTPサービスは、署名の検証が行われている場合でも、TLSで保護されたチャネルで実行することを強くお勧めします。
-
Sitecoreサーバー ロールがローカル開発にStandaloneされていない場合、または本番環境にContentManagementされていない場合、インポート サービスは自動的に無効になります。JSSアプリケーションのインポートは、一般向けサーバーでは自動的に許可されません。
-
インポートサービスにIPホワイトリストをデプロイする場合は、ネットワークレベルでこれを行うことができます。
ファイルのデプロイ
JSSデプロイメント・サービスは、攻撃対象領域を可能な限り最小限に抑えるために、デプロイメントするファイルを意図的に受け入れません。JSSビルド アーティファクトのファイルは、更新パッケージ、直接ファイル コピー、Microsoft Web Deployなど、他のSitecoreデプロイに適した手法を使用してデプロイする必要があります。ファイルのデプロイメントに関するJSS固有の考慮事項はありません。