データのレプリケーションの構成
学習の目的
- レプリケーションで処理する 2 種類のデータについて説明する。
- データの部分的レプリケーションが役立つ 3 つの状況を挙げる。
- データのレプリケーション処理のタイプについて説明する。
- データのレプリケーション処理のアクティブ化の手法について説明する。
- データのレプリケーションの手動処理の 3 つの手順を挙げる。
はじめに
Cloud Kicks の新任管理者である Linda Rosenberg が、データのレプリケーションを実施しようとしています。この機能は、データ、メタデータ、ファイルを Salesforce B2C Commerce の Staging (ステージング) インスタンスから Development (開発) または Production (本番) インスタンスにコピーする場合に使用します。
Linda は、Business Manager で各インスタンス内に 1 つ以上のサイトを設定できることを知っています。特定のインスタンス上のサイトをまとめたものが組織になります。たとえば、Linda が設定を行う場合、サイト固有 (1 つのサイト) のインスタンスとして設定することも、全サイト共通 (組織) のインスタンスとして設定することもできます。
また、データのレプリケーションは次の 2 つのレベルで機能します。
- グローバルレプリケーション: 組織全体に適用される設定情報とデータが対象です。
- サイトレプリケーション: 指定した 1 つ以上のサイトに属するデータが対象です (商品やカタログデータ、XML ベースのコンテンツコンポーネント、画像ファイルなど)
Cloud Kicks で先日、新規のストアフロントが立ち上げられ、その実装に使用する新しいプライマリインスタンスグループ (PIG) が作成されました。同社では、各ターゲットインスタンスに完全なグローバルレプリケーションを実行したうえで、それぞれにサイトレプリケーションを実行しました。Cloud Kicks のストアフロントはすでにライブになっているため、Linda は新しいデータに専念できます。
ToDo
Linda はデータを構成するときに、特定のレプリケーションタスクを細かく選択できます。また、グローバルレベルとサイトレベルのデータを 1 つの処理にまとめることもできます。データとその用途に対する理解が深まるほど、そのデータを必要とされる場所に移動できるようになります。
Business Manager では、実行可能なレプリケーションタスクを確認し、階層やデータの細分化の重要性を理解できます。たとえば、1 つのカタログをレプリケートすることは可能ですが、特定の商品をレプリケートすることはできません。他方、キャンペーンデータについては、ストアフロントのプロモーションやクーポンなど、大まかな分類でレプリケートすることが可能です。これをデータの部分的レプリケーションといいます。
データの部分的レプリケーションは次のような場面で役立ちます。
- 新しいプロモーションの定義、テキスト、グラフィック、クーポンをストアフロント全体にロールアウトする場合
- ストアフロントのホームページのデザインを更新して、季節のメッセージを追加する場合
- 商品価格の変更を更新する場合
Linda がデータをレプリケートすると、ターゲットインスタンス上の対応するデータが選択したデータに置換されます。たとえば、PIG のインスタンス (Staging (ステージング)、Development (開発)、Production (本番)) にカタログ A、B、C があるとします。
Linda が Staging (ステージング) インスタンスで、カタログ B を更新し、カタログ C を削除して、カタログ D を追加しました。これらのカタログを Staging (ステージング) から Development (開発) にレプリケートすると、Development (開発) インスタンスでは、カタログ A はそのままですが、カタログ B が更新され、カタログ C が削除され、カタログ D が追加されます。
B2C Commerce は、ターゲットインスタンスでレプリケーションの対象として選択されたデータのみを上書きします。他のデータには (上記の例で、カタログ A がそのままであったように) 影響ありません。
対象のデータ
Linda はデータをレプリケートするときに、影響を受けるグローバルデータとサイトデータの両方のファイルを慎重に検討します。対象となるデータは、コンテンツアセット、商品、価格表や、設定 (環境設定、許可など) です。以下は、Linda がレプリケーションの対象として選択可能なグローバルとサイト固有のストアフロントデータです。
ストアフロント | 設定 | |
---|---|---|
グローバル (組織) |
|
|
サイト |
|
|
Linda は Business Manager で、レプリケートするデータ種別に対応するタスクを 1 つ以上選択します。タスクの全リストについては、B2C Commerce でのデータレプリケーションタスク を参照してください。
対象外のデータ
次のタイプのデータはレプリケートできません。そのため、これらのデータは Development (開発) インスタンスと Production (本番) インスタンスで作成するかインポートする必要があります。
- アクティブなデータ
- バッチ処理
- カタログやコンテンツのインポートフィード
- カスタムエラーページ
- 顧客や顧客グループの割り当て
- アップロードされているがインポートされていないファイル
- ギフト券
- 在庫データ
- ジョブのスケジュールと履歴
- 組織プロフィール
- 支払情報
- 注文情報 (税額や発送など)
- サイトマップ
- ソースコードの適用
- ユーザー、役割、許可
レプリケートできないもう 1 つのタイプのデータが動的推奨です。これは、Commerce Cloud Einstein によって Production (本番) インスタンスで動的に生成されるためです。
処理のタイプ
データのレプリケーションは、データを次のとおり処理する 2 段階の置換プロセスです。
- Staging (ステージング) からターゲットインスタンスに転送する。
- ターゲットインスタンスで公開する。
Linda は両方のステップを 1 つのレプリケーション処理として実行することも、別々に実行することもできます。別々に実行した場合は、失敗が生じたときにその原因を特定しやすくなります。レプリケーション処理は、公開や元に戻す処理を含め、すべて Staging (ステージング) インスタンス上で実行され、ターゲットインスタンスにのみ影響します。
データのレプリケーション処理には次のタイプがあります。
- 転送: B2C Commerce がソースインスタンスのデータをターゲットインスタンスに転送しますが、置換しません。さらに公開処理を実行して、ターゲットを更新する必要があります。
- 転送 & 公開: B2C Commerce がソースインスタンスのデータをターゲットインスタンスに転送し、ただちに既存のデータを置換します。
- 公開: この処理は、転送処理が成功した後にのみ使用できます。ターゲットインスタンスの既存のデータを、転送されてきたデータに置換します。レプリケーションのタスクが、転送プロセスのタスクと一致している必要があります。データを転送してから、その一部のみを公開することはできません。一致しない場合はレプリケーションに失敗します。
- 元に戻す: このプロセスは、転送 & 公開処理または公開処理が成功した後にのみ使用できます。ターゲットインスタンスを、最後のレプリケーション処理の前に存在していたデータに戻します。
アクティブ化の手法
Linda はレプリケーション処理の実行方法を指定できます。選択肢は次のとおりです。
- 手動: Linda が処理をトリガーしたときに実行されます。
- 自動: 処理を実行する日時を Linda がスケジュールします。
- 繰り返し: 処理を定期的に実行する時間を Linda がスケジュールします。
- ジョブステップ: 処理をジョブの一部として実行できます。ジョブについては、「Salesforce B2C Commerce のスケジュール済みジョブ」モジュールで説明します。
前述のとおり、B2C Commerce はデータを、処理を定義した時点ではなく、処理の実行時の状態でレプリケートします。
データのレプリケーション処理の作成
Linda は、データの種別やその変更頻度に基づいて、さまざまな方法のレプリケーション処理を作成しようと考えています。まずは、いくつかの新価格を更新する簡単な手動処理を実行することにします。
手動のレプリケーションタスクを作成する手順は、次のとおりです。
- Business Manager を開きます。
- [管理] > [レプリケーション] > [データのレプリケーション] を選択します。
-
[新規] をクリックします。(このボタンを表示するためには、Staging (ステージング) インスタンスを開いている必要があります)。
- B2C Commerce で自動的に処理 ID が生成されますが、任意のテキストを入力することもできます。
- [Development (開発)] ターゲットインスタンスを選択します。
- 説明を入力します (省略可能)。説明があると、後々インスタンスを見つけやすくなります。
- [無効にする] を選択して、レプリケーション処理の終了時にターゲットインスタンス上のページキャッシュが更新されるようにします。[無効にする] はデフォルトでオンになっています。キャッシュをクリアするとサイトのパフォーマンスが一時的に低下しますが、キャッシュを更新しなければ、ストアフロントの新しいデータが買い物客に表示されません。
- アクティブ化のタイプに、[手動] を選択します。([手動]、[自動]、[繰り返し]、[Job Step (ジョブステップ)] のいずれか)。
[繰り返し] の場合は [毎日]、[毎週]、[毎月] のいずれかと開始日時を指定します。 - 通知メールのトリガーに [When Process Ends (処理終了時)] を選択します。
([When Process Fails (処理失敗時)]、[Periodically (定期的)] のいずれか) - 複数の送信先メールアドレスをカンマで区切って入力します。メールには、処理の開始時刻と終了時刻、ターゲットシステム、レプリケーションタイプ、レプリケーションタスクが記載されます。処理に失敗すると、メールによる通知にエラーコードが示されます。定期的に実施する場合は、プロセスごとに通知がトリガーされます。
- 次のイベントの発生時の処理を指定します。
- 処理終了時: 処理が終了すると、成功か失敗かに関係なく、B2C Commerce がアドレスにメールを送信します。ハングした場合は、メールが送信されません。
- 処理失敗時: 処理に失敗すると、B2C Commerce がアドレスにメールを送信します。プロセスが成功またはハングした場合は、メールが送信されません。
- [次へ] をクリックします。
- レプリケーションタイプに、[転送 & 公開] を選択します。
- [価格表] タスクを選択します。タスクは、レプリケートするデータに基づきます。
-
[次へ] をクリックして、詳細を確認します。
- [開始] をクリックすると、処理がすぐに開始されます。
Linda が Development (開発) インスタンスのデータをテストします。特に問題がなさそうなため、この同じデータを Staging (ステージング) インスタンスから Production (本番) にレプリケートします。