見出し画像

[Spring '24] スクラッチ組織スナップショットがベータ公開!

こんにちは遠藤です。

Spring '24のリリースノートから気になるリリースをピックアップするシリーズ記事となります。

昨年のSalesforceのイベントなどでちらほら目にしていたスクラッチショットスナップショットがSpring '24でベータ公開されるそうです。

リリースノートの該当するページは、以下の「スクラッチ組織スナップショット (ベータ) を使用したスクラッチ組織の設定の取得」になります。

現時点ではまだプレビューでアカウントセールスにコンタクトする必要があり、我々としてはすぐ必要なわけでもないのでSpring '23のリリースを待っています。なので、以下はヘルプベースの解説となります。


スクラッチショットスナップショットとは?

以前から本番組織をもとにしてスクラッチ組織を作成する組織シェイプという機能がありました。ゆるっとSalesforceでも過去に取り上げています。

今回紹介するスクラッチ組織スナップショットは、本番組織ではなくスクラッチ組織をスナップショットとして保存し、それをもとに新しくスクラッチ組織を作成できる機能です。

日本語はまだですが Salesforce DX 開発ガイドにはすでに解説が追加されています。

ヘルプには「A snapshot is a point-in-time copy of a scratch org that includes installed packages, features, limits, licenses, metadata, and data.」と書いてあり、スクラッチ組織スナップショットの場合は以下も再利用可能となるようです。

  • インストールしたパッケージ

  • レコード

これはかなり便利です。(組織シェイプは、上記はコピーされませんでした)

制限は以下があります。

  • Snapshots have the same 200-MB data storage limit as scratch orgs. スナップショットのデータストレージサイズは200MBまで

  • You can create up to 5 snapshots per Dev Hub org daily, with a maximum of 5 active snapshots. Dev Hub組織ごとに1日に作成できるのは5スナップショットまで、さらに有効なスナップショットは5個まで

  • Snapshots expire after 30 days. スナップショットの有効期限は30日

Dev Hub組織ごとに5スナップショットまで、通常のスクラッチ組織と同様に有効期限30日は結構厳しい制限です。。

スクラッチ組織スナップショット機能の有効化

スクラッチ組織スナップショットの利用を開始するにはDevHub組織にて以下の設定が必要となります。

DevHub組織でスクラッチ組織スナップショット機能を有効化

「設定」の「スクラッチ組織」を開き有効化します

参照: Enable Scratch Org Snapshots in the Dev Hub Org | Salesforce DX Developer Guide | Salesforce Developers

システム権限「Org Snapshots」を付与した権限セットを作成し利用者に割り当て

  1. スナップショットを利用するユーザーには、「Salesforce」,「Salesforce Platform」, または「Salesforce Limited Access」いずれかのライセンスを割り当てる必要があります。

  2. オブジェクト「組織スナップショット」への「参照」、「作成」、「削除」権限を付与した権限セットを作成、または既存の権限セットに付与してユーザーに割り当てます。

参照: Assign a License and Permissions to Snapshot Users | Salesforce DX Developer Guide | Salesforce Developers

スクラッチ組織スナップショットの使い方

スクラッチ組織スナップショットの作成

sfコマンドの「org create snapshot」でスナップショットを作成します。

コマンドを実行するとスナップショットの作成が開始されます。

 $ sf org create snapshot --name dhsnapshot --source-org dreamhouse-scratch
 Name               Value              
 ────────────────── ────────────────── 
 Id                 0OoF9000000CaRCKA0 
 Snapshot Name      dhsnapshot     
 Description                           
 Status             InProgress         
 Source Org         00DF3000000HdYhMAK 
 Created Date       2024/05/14 23:02   
 Last Modified Date 2024/05/14 23:02   
 Expiration Date                     

スナップショットの作成が完了したかどうかは「org get snapshot」または「org list snapshot」で確認できます。今回作成には6分かかっていました。

$ sf org get snapshot --snapshot 0OoF9000000CaRCKA0
 Name               Value              
 ────────────────── ────────────────── 
 Id                 0OoF9000000CaRCKA0 
 Snapshot Name      dhsnapshot     
 Description                           
 Status             Active             
 Source Org         00DF3000000HdYhMAK 
 Created Date       2024/05/14 23:02   
 Last Modified Date 2024/05/14 23:08   
 Expiration Date    2024-06-13         

スナップショットからスクラッチ組織を作成

スクラッチ組織定義ファイルの「snapshot」に--nameで指定したスナップショット名を指定します。

{
 "orgName": "Salesforce",
 "snapshot": "dhsnapshot"
}

あとは、いつも通りスクラッチ組織定義ファイルを指定して、org createコマンドを実行すればOKです。

まだ、試せていませんが、組織シェイプの場合は、組織シェイプベースのスクラッチ組織を作成するにはかなりの時間がかかりました。
スクラッチ組織スナップショットの作成時間は短いことを期待したいところです。