LoginSignup
5
10

More than 1 year has passed since last update.

コマンド一発で Sandbox 環境にマスキングした本番データを連携する

Last updated at Posted at 2022-08-12

はじめに

顧客の個人情報含む本番のデータを Sandbox 上に構築することはシステムの評価上望ましいですが、コンプライアンスやセキュリティの観点からは好ましくありません。そのため氏名や住所などの個人情報はマスキング処理した上で Sandbox にデータ移行する必要があります。今回それを実施するために SFDX で手軽にできそうなプラグインツールがあったため試して記事にまとめました。

事前環境準備

SFDX のインストール

SFDX が必要なので公式が提供しているインストーラなどを使って環境を構築します。

プラグインのインストール

SFDMU (SFDX Data Move Utility) というプラグインツールを使います。インストールは sfdx コマンドを叩くだけです。

sfdx plugins:install sfdmu

SFDX の認証

SFDX でアプリケーションの認証を通していない場合下記コマンドを叩いてログインしましょう。aオプションの値はエイリアスなので任意の値に変えても問題ないです。(記事中は以下のエイリアス前提で進めます)

sfdx auth:web:login -a production   # 本番環境へのログイン
sfdx auth:web:login -a sandbox      # Sandbox 環境へのログイン

データ移行のやり方

設定ファイル作成

最初にデータ移行したいオブジェクトの設定ファイルを下記のように作成します。以下の例だと Name のみを取得し連携するので、他に必須項目がある場合は querySELECT する項目を増やす必要があります。

export.json
{
  "objects": [
    {
      "query": "SELECT Id, Name FROM Account",
      "operation": "Insert",
      "externalId": "Name",
      "mockFields": [
        {
          "name": "Name",
          "pattern": "c_seq_number('***', 0, 1)"
        }
      ],
      "updateWithMockData": true
    }
  ]
}

各キーの意味は以下の通りです。

  • query: 連携元で抽出するためのSOQL
  • operation: 連携先で実行する操作。Insert, Update, Upsertなど
  • mockFields: モック値を入れるフィールドを定義
  • mockFields.name: モック値を入れるフィールド名(=フィールドのAPI参照名)
  • mockFields.pattern: 代わりに入れるモック値
    • c_seq_number関数: SFMDUで定義されている連番を入れる関数。c_seq_number(値のprefix, start, step)

データ移行

export.json を作成したディレクトリ下で下記コマンドを実行すると、 Sandbox 環境へデータ連携されます。

sfdx sfdmu:run --sourceusername production --targetusername sandbox

データ移行例

連携元

連携先

参考

部分的なマスキングなどもできるようなので、もっと細かくやりたい方は本家のヘルプを参照されたし

5
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
10