PnP プロビジョニング フレームワーク
PnP プロビジョニング フレームワークは、サイト コレクションのプロビジョニングのためにコード中心のテンプレートに基づくプラットフォームを提供します。 この新しいプロビジョニング エンジンでは、Office 365 と SharePoint Online およびオンプレミスのサイト コレクションのプロビジョニング モデルを保持および再利用できます。
注:
PnP プロビジョニング フレームワーク & PnP プロビジョニング エンジンは、アクティブなコミュニティがサポートを提供するオープン ソース ソリューションです。 Microsoft からのオープン ソース ツールのサポート SLA はありません。
新しい方法が必要な理由
SharePoint アドインとアドイン モデル (旧称「アプリ モデル」) の導入に伴い、Microsoft は、サンドボックス型の完全信頼ソリューションから、プロバイダー ホスト型アドインとオンプレミス ソリューションに移行しました。 これらの革新によってプロビジョニング モデルの改善や新しいプロビジョニング エンジンの導入が促進されました。
新しいプロビジョニング モデルの利点
サンドボックス型の完全信頼ソリューションの代わりにこのアプローチを使用する利点はたくさんあります。 新しいプロビジョニング モデルを使用すると、次のことが可能になります。
テンプレートのカスタマイズ。 サイト コレクションは常にすぐに使えるテンプレートで開始するため、新しいリモート プロビジョニング モデルを使用して導入されるカスタマイズによって、ユーザーによる追加のメンテナンスを必要とせずに、自動更新を行うことができます。 さらに、このアプローチを使用すると、サイト コレクションごとに異なるテンプレートを使用することによって生じる問題を避けることができます。
テンプレート ベースのモデルの使用。 単純なテンプレート ベースのプロビジョニング モデルを提供します。このモデルを使用すると、既存のサイト デザインをプロビジョニング テンプレートとして保存できます。
さまざまなアプローチを使用したテンプレートの定義。 PnP プロビジョニング スキーマに対する検証を行う XML 形式のテンプレートを手動で定義することも、管理対象コードを使用してテンプレートを定義し、オブジェクト階層を構築することもできます。 これらのアプローチを組み合わせることも可能です。
テンプレートのシリアル化と再利用。 プロビジョニング テンプレートをシリアル化してから、再利用できます。
シリアル化形式でのテンプレートの永続化。 プロビジョニング テンプレートを自分に最適なシリアル化形式 (XML や JSON など) で永続化できます。
新しいサイト コレクションのプロビジョニング。 プロビジョニング テンプレートを、選択した任意のシリアル化形式で対象サイトに適用することによって、新しいサイト コレクションを簡単にプロビジョニングできます。
クライアント側オブジェクト モデルとの統合。 クライアント側オブジェクト モデル (CSOM) と統合することによって、自動化されたコード ベースのプロビジョニングが行えるため高い柔軟性が得られます。 CSOM/REST コードと Windows PowerShell スクリプトのどちらかを使用して、プロビジョニング テンプレートから新しいサイト コレクションをプロビジョニングできます。
差分プロビジョニングの使用。 既存のサイトの最上部にプロビジョニング テンプレートを適用できます。 プロビジョニング エンジンは差分プロビジョニングをサポートし、テンプレート定義で指定されているスコープに基づいてサイトの追加/更新を行います。
プロビジョニング エンジンの拡張。 カスタム拡張プロバイダーを使用して簡単にプロビジョニング エンジンを拡張できます。このプロバイダーによって、CSOM/REST 管理対象コードで作成されたカスタム ロジックを実行できます。
オンプレミスおよび Office 365 展開にまたがる作業。 プロビジョニング エンジンを使用することにより、オンプレミスと Office 365 展開の両方にまたがる作業をシームレスに処理できるようになりました。 この点は旧来のプロビジョニング手法が改善された部分で、これまでカスタム サイト定義は Office 365 ではサポートされていませんでした。ファームを対象とする展開が必要だったためです。
Nutshell におけるリモート プロビジョニング
このセクションでは、リモート プロビジョニングの構成要素ごとに詳しく説明します。 ただし、最初は、全体を視野に入れて、最も単純な形態のリモート プロビジョニングを理解することから始めます。 こうした観点からリモート プロビジョニングを見ると、次の 3 つの要素のみが関係します。
サイト カスタマイズのデザインと作成。
選択したシリアル化形式でのプロビジョニング テンプレートの作成および必要な場合の永続化。
すぐに使えるサイト テンプレートを使用して作成した既存のサイト コレクションまたは新しいサイト コレクションへのプロビジョニング テンプレートの適用。
1. サイト カスタマイズのデザインと作成
手順 1 では、保存してサイト コレクションに適用するサイト カスタマイズを作成します。 いくつかの作成方法があります。
最も簡単な方法は、既存のサイト ページに必要な変更を加え、その後、そのページをプロビジョニング テンプレートとして保存することです。 詳細については、PnP プロビジョニング テンプレートに関するページを参照してください。
また、プロビジョニング テンプレートを XML ファイルとして手動で作成したり、管理対象コード (CSOM/REST) を使用してサイト アーティファクトと構造を表すオブジェクト階層を作成したりできます。 スキーマ ファイルを作成する場合、そのファイルをプロビジョニング XSD スキーマに対して検証しなければなりません (「 PnP プロビジョニング スキーマ」をご覧ください)。
「PnP プロビジョニング エンジンとコア ライブラリ」という記事に、サイトのモデル化についての詳細が記載されています。
2. シリアル化形式でのプロビジョニング テンプレートの作成と永続化
カスタマイズしたサイト モデルを希望のシリアル化形式でエクスポートします。プロビジョニング エンジンは永続化形式にとらわれません。 このカスタマイズの保存済みインスタンスはプロビジョニング テンプレートで、最低限の労力で新しいサイト コレクションに適用できます。
テンプレートのシリアル化と永続化は、テンプレートを永続化する場合にのみ必要となるオプション手順であることに注意してください。 テンプレートをシリアル化せずに、新しいサイト コレクションに適用することもできます。
3. プロビジョニング テンプレートのサイト コレクションへの適用
プロビジョニング テンプレートを新しいサイト コレクションまたは既存のサイト コレクションに適用するには、Windows PowerShell スクリプトと CSOM/REST コードのどちらかを使用できます。 また、サイト コレクション全体をプロビジョニングすることも、その一部のみをプロビジョニングすることもできます。
プロビジョニング テンプレートのシリアル化を含め、アクションにおけるリモート プロビジョニングのサンプルを確認するには、「コンソール アプリケーションのプロビジョニング サンプル」をご覧ください。