オンデマンド Sandbox を作成して監視する
学習の目的
この単元を完了すると、次のことができるようになります。
- オンデマンド Sandbox の作成、開始、停止に使用するツールについて説明する。
- デベロッパーが自動化プロセスに含める可能性があるステップを 3 つ挙げる。
- 3 種類の REST API アクションを挙げる。
- API クライアントがインスタンスにアクセスするために必要な BusinessManager の構成設定について説明する。
概要
Cloud Kicks のシステム管理者である Linda Rosenberg は、デベロッパーがすぐ作業に取りかかれるようにすべて設定しておきたいと考えています。ユーザーとクライアント ID を構成したところで、次は Sandbox を作成することにします。Vijay Lahiri というリードデベロッパーは、機能を迅速にロールアウトする新しいプロセスを作成しようと意気込んでいます。Vijay と開発チームの作業が始まったら、Linda はクレジットの消費を監視し、問題が発生したらサポートするつもりです。
Linda や Vijay などオンデマンド Sandbox の管理者やデベロッパーは、レルムにある Sandbox の作成、開始、停止、削除、管理に次のツールを使用します。
- REST API: Swagger ユーザーインターフェース (UI) に公開されています。
- コミュニティベースのコマンドラインツール (CLI): GitHub の Commerce Cloud Community Suite に付属します。(GitHub のログイン情報が必要です。)
Linda はまず REST API で準備を整え、Vijay が CLI を使用できるようにします。Vijay は CLI を使用して、次のような手順で自動化開発プロセスを作成したいと考えています。
- Sandbox を取得する。
- Sandbox にコードを導入する。
- Sandbox にテストデータを導入する。
- 自動化テストを実行する。
- Sandbox を削除する。
REST API
Linda は REST API を使用してオンデマンド Sandbox を作成します。作業を開始する前に、次の点を確認します。
- オンデマンド Sandbox が有効になっているレルムにアクセスできる。
- Sandbox API ユーザーと Business Manager 管理者の役割が割り当てられている。
- クライアント ID がある。
Linda が REST API にアクセスする手順は次のとおりです。
- ブラウザーを開きます。
- 「https://admin.dx.commercecloud.salesforce.com/」という URL を入力します。
- [Authorize (認証)] をクリックし、Account Manager で構成した API クライアント ID を使用してログインします。
- [Authorize (認証)] をクリックします。
- クライアント ID を入力します。
- もう一度 [Authorize (認証)] をクリックします。
- [閉じる] をクリックします。[Authorize (認証)] ロックアイコンがロック済みに変わります。
アクション
クレジットの消費は REST API で管理されます。Linda は Sandbox の作成、開始、停止、削除にクレジットを使用します。メインページの上部にコマンド、下部にモデルの 2 つのセクションがあります。
Linda は次のアクションを実行できます。
- 汎用目的の API エンドポイントのアクション
- レルムレベルのアクション
- Sandbox レベルのアクション
Linda はレルムアクションを使用して、自身のレルムに関する情報を取得したり、レルムにパッチを適用したりします。
Sandbox の作成、Sandbox 操作の実行、Sandbox の削除、Sandbox の使用量の表示など、さまざまな Sandbox アクションを実施できます。
Linda はまず、Sandbox をリストして、新しい Sandbox を作成します。Sandbox ID を取得したら、個々の Sandbox を管理できます。
モデル
Linda はモデルの詳細を確認して、結果を理解したうえで適切な要求を指定できるようにします。以下は、StatusResponse モデルの一例です。
オンデマンド Sandbox を作成する
REST API の使い方がわかったところで、オンデマンド Sandbox を作成します。この手順は次のとおりです。
- ブラウザーを開きます。
- 「https://admin.us01.dx.commercecloud.salesforce.com/」という URL を入力します。
- クライアント ID を使用して認証します。
- /sandboxes Create sandbox の横にある [POST] をクリックします。
- <あなたのレルム ID> フィールドと <あなたのクライアント ID> フィールドに詳細を入力します。
- [実行] をクリックします。
- [Responses (応答)] セクションに結果が表示されます。
この例では、Time to Live (TTL) が 24 に設定されています。この値は、Sandbox が存続する時間を定義します。TTL が 0 以下に設定されている場合は、Sandbox が永久に存続します。
Sandbox を監視する
業務が円滑に進むように、Linda は専用のログセンターで収集されたオンデマンド Sandbox のログメッセージを確認します。https://logcenter.us01.dx.commercecloud.salesforce.com/ のようなリンクをクリックして、自身のレルムのログを表示します。
クレジットの使用量
Cloud Kicks の消費量が 85% に達すると、オンデマンド Sandbox システムから Salesforce アカウントマネージャーに通知されます。管理職に知らせるかどうかはアカウントマネージャーが判断します。消費量が会社の購入量を超えても Sandbox は引き続き機能し、クレジットを消費しますが、超過料金が適用されます。
Linda はクレジットの使用量を簡単に追跡できます。レルム (1) と Sandbox (2) の使用量データについては、REST API で GET usage requests API を使用します。
モデルで詳細を確認できます。以下は、レルムの使用量モデルです。追跡すべき重要な情報として、管理職が購入した内容に対する sandboxSeconds、minutesUp、minutesDown などが挙げられます。
以下は、Sandbox の使用量モデルです。Sandbox が実行された時間 (秒) や、そのうちのアップタイム (稼働) (分) とダウンタイム (非稼働) (分) がわかります。インスタンスの稼働時のほうが非稼働時よりもコストが高くなります。
Sandbox を削除する
オンデマンド Sandbox は削除されるまでクレジットを消費します。そのため、Linda は自身やデベロッパーにとって Sandbox が不要になった時点ですぐ削除します。
場合によっては、Linda や Vijay が POST/sandboxes を使用してオンデマンド Sandbox を作成し、Time to Live (TTL) 設定 (省略可能) で Sandbox の存続期間を構成することがあります。Sandbox が短期間のみ必要な場合は、必要な期間に対応する TTL を指定します。
終了見込みが不明なプロジェクトに Sandbox が必要な場合、Linda は TTL を構成しないままにするか、2,100 時間など極めて長い TTL を指定して、プロジェクトの終了とともに Sandbox を削除します。TTL の最大値は 2,160 時間です。Sandbox を作成後は、PATCH/sandboxes コマンドを使用して TTL 値を変更できます。
コマンドラインインターフェース (CLI) の準備を整える
これで、Vijay が CLI を使用して CI/CD 開発プロセスを作成できます。CLI は正式な Salesforce 製品ではありませんが、自動化プロセスを開発する場合の一般的なツールです。時間が節約され、エラーが生じやすい手動プロセスによって起こる問題が排除されます。この種のプロセスの場合、オンデマンド Sandbox で Salesforce B2C Commerce のコード検証や配信を自動化できます。
Vijay はローカルで、あるいはビルドツール (Jenkins、Travis CI、Bitbucket Pipelines、Heroku CI など) から、任意のマシンの CLI を使用できます。CLI には基本的な JavaScript API が付属し、Node.js の上位のアプリケーションとのインテグレーションに使用できます。
Vijay は次をはじめとする機能を実行できます。
- OAuth2 のインタラクティブなヘッドレス認証 (Business Manager ユーザーが不要)
- オンデマンド Sandbox の作成、開始、停止、削除
- エイリアス指定など、複数のインスタンスを伴う構成
- コードバージョン管理を使用したコードやデータの導入
- システムジョブの実行や監視
- カスタムジョブの実行や監視
- WebDAV 経由の接続
Vijay が使用する API クライアント ID は Linda がすでに構成しています。また、リダイレクト URI やデフォルトの範囲が構成され、CLI に対する管理者レベルのアクセス権も付与されています。ここで Vijay は、API クライアント ID にインスタンスへのアクセスを許可する必要があります。
API クライアントにアクセスを許可する
一部の CLI コマンドについては、Vijay が他の B2C Commerce インスタンスに対して API コールを実行する必要があります。つまり、Linda が Business Manager でグローバルアクセス権を付与しなければなりません。その手順は次のとおりです。
- Business Manager を開きます。
- [管理] > [サイトの開発] > [Open Commerce API 設定] の順にクリックします。
- [Data API (データ API)] と [グローバル] を選択します。
- クライアント ID の許可セットを設定に追加します。
- 次のスニペットをコピーして、設定フィールドに貼り付けることができます。my_client_id を各自のクライアント ID に置き換えます。すでに (他の API クライアント ID の) OCAPI 設定がある場合は、この許可セットを既存のリストにマージします。
{ "_v": "19.5", "clients": [ { "client_id": "my_client_id", "resources": [ { "resource_id": "/code_versions", "methods": ["get"], "read_attributes": "(**)", "write_attributes": "(**)" }, { "resource_id": "/code_versions/*", "methods": ["patch"], "read_attributes": "(**)", "write_attributes": "(**)" }, { "resource_id": "/jobs/*/executions", "methods": ["post"], "read_attributes": "(**)", "write_attributes": "(**)" }, { "resource_id": "/jobs/*/executions/*", "methods": ["get"], "read_attributes": "(**)", "write_attributes": "(**)" }, { "resource_id":"/role_search", "methods":["post"], "read_attributes":"(**)", "write_attributes":"(**)" }, { "resource_id":"/roles/*", "methods":["get"], "read_attributes":"(**)", "write_attributes":"(**)" }, { "resource_id":"/roles/*/user_search", "methods":["post"], "read_attributes":"(**)", "write_attributes":"(**)" }, { "resource_id":"/roles/*/users/*", "methods":["put","delete"], "read_attributes":"(**)", "write_attributes":"(**)" }, { "resource_id":"/user_search", "methods":["post"], "read_attributes":"(**)", "write_attributes":"(**)" }, { "resource_id":"/users", "methods":["get"], "read_attributes":"(**)", "write_attributes":"(**)" }, { "resource_id":"/users/*", "methods":["put","get","patch","delete"], "read_attributes":"(**)", "write_attributes":"(**)" } ] } ] }
- [管理] > [組織] > [WebDAV Client Permissions (WebDAV クライアント許可)] の順にクリックします。
- 各自のクライアント ID の許可セットを許可設定に追加します。次のスニペットをコピーして、設定フィールドに貼り付けることができます。my_client_id を各自のクライアント ID に置き換えます。すでに (他の API クライアント ID の) WebDAV クライアント許可が構成されている場合は、この許可セットを既存のリストにマージします。
{ "clients": [ { "client_id": "my_client_id", "permissions": [ { "path": "/impex", "operations": [ "read_write" ] }, { "path": "/cartridges", "operations": [ "read_write" ] } ] } ] }
Vijay がオンデマンド Sandbox で自動化プロセスを作成する準備ができました。SFCC-CLI を使用して設定する手順は、B2C Commerce の「B2C Commerce GitHub リポジトリ」を参照してください。Vijay は Trailhead の「Salesforce B2C Commerce (デベロッパー向け) のツールやリソース」モジュールに従って、このリポジトリにアクセスする方法を確認します。