Blog

BLOG

2024.06.17

Ant 移行ツールから Salesforce CLI への移行

このエントリーをはてなブックマークに追加

こんにちは、CS部で Salesforce の開発に携わっている平石です。

Salesforce のバージョン Spring’24 をもって Ant 移行ツールのサポートが終了されました。
これまで、組織へのメタデータのデプロイは Ant 移行ツールを使用していた方がたくさんいらっしゃることと思います。
今後、 Ant 移行ツールと同様にメタデータ形式でデプロイしたい場合は、 Salesforce CLI を用いることになりますので、その手順について説明したいと思います。

Salesforce CLI を用いてデプロイ先の組織にログインする方法として、 JWT フローログインを使用します。

JWT フローでは、デジタル証明書と非公開鍵を用いて任意の組織で作成された接続アプリケーションをデプロイ対象となる組織にインストールすることにより、ログイン画面を開くことなく、コマンドプロンプト上で組織にログインすることが可能となります。

1.OpenSSLを使用して非公開鍵とデジタル証明書を作成

事前準備として、パソコンに OpenSSL がインストールされている必要があります。次のコマンドで OpenSSL がインストールされているか確認します。インストールされていない場合はインストールしてください。

>openssl version

非公開鍵を保存するフォルダを作成し、移動します。

>mkdir JWT_Test
>cd JWT_Test

次のコマンドで非公開鍵を作成し、 server.key というファイルに保存します。

>openssl genpkey -des3 -algorithm RSA -pass pass:SomePassword -out server.pass.key -pkeyopt rsa_keygen_bits:2048
>openssl rsa -passin pass:SomePassword -in server.pass.key -out server.key

作成した server.key ファイルを使用して、証明書署名要求を作成します。入力を求められた項目は適切な値を入力します。

>openssl req -new -key server.key -out server.csr

server.key および server.csr からデジタル証明書を作成します。デジタル証明書のファイル名は server.crt として保存します。

>openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt

2.接続アプリケーションの作成

接続アプリケーションを作成する組織にログインし、設定メニューからアプリケーションマネージャーを選択し、「新規接続アプリケーション」をクリックします。

必須項目と基本情報を入力します。
「サポートされる認証フローに Proof Key for Code Exchange (PKCE) 拡張を要求」のチェックは外します。
その他の入力値は下記のように設定して保存します。

保存後の画面は下のようになります。

コンシューマの詳細を管理のボタンをクリックします。ここで、本人確認を求められた場合は、 Email に送信された確認コードを入力します。

ここに表示されたコンシューマ鍵をJWTフローログインで使用するので、コピーしておきます。

「[接続アプリケーションを管理する] に戻る」をクリックして、接続アプリケーションを管理する画面に戻り、「 manage 」→「ポリシーを編集」とクリックします。( Lightning Experience 画面に戻って操作してOKです。)

更新トークンポリシーやタイムアウト値を推奨値に変更し、許可されているユーザーは「管理者が承認したユーザーは事前承認済み」を選択し、保存します。

JWTフローでログインするユーザーのプロファイルまたは権限セットを追加します。

これで、接続アプリケーションの作成が完了しました。

3.接続アプリケーションのインストール

メタデータをデプロイする対象の組織に接続アプリケーションをインストールします。
まず、対象組織に下記コマンドでログインします。
続けて、コンシューマの秘密を入力してEnterを入力します。(コンシューマの秘密はコマンドプロンプト上には表示されません。)

>sf org login web -i [コンシューマ鍵]

接続アプリケーションのアクセスの確認画面が出たら、許可をクリックします。

ログイン後、設定メニューの接続アプリケーションの OAuth の利用状況画面を開き、接続アプリケーションをインストールします。

確認画面が出たら、「インストール」を押下します。

インストール直後の画面はこのようになります。

「ポリシーを編集」ボタンを押し、更新トークンポリシーやタイムアウト値を推奨値に変更し、許可されているユーザーは「管理者が承認したユーザーは事前承認済み」を選択し、保存します。
プロファイルを管理するボタンを押下し、今回はデプロイを実行するユーザーのプロファイルを設定します。

これで、接続アプリケーションのインストールと設定が完了しました。
次のコマンドで、デプロイ対象の組織に JWT フローでログインできるか確認します。

>sf org login jwt --client-id [コンシューマの鍵] --jwt-key-file server.key --username [ユーザー名]

無事ログインできました。

4. Salesforce CLI を使用したメタデータのデプロイ

Salesforce CLI の project コマンドを実行するためには SFDX プロジェクトの作成が必要なため、下記のコマンドでプロジェクトを作成します。

>sf project generate --name [プロジェクト名]

作成したプロジェクト以下のソース(例: deploy-proj\force-app\main\default )を、デプロイするメタデータに差し替えます。
デプロイ対象のメタデータを記載した package.xml も格納します。

では、いよいよ下記コマンドを使用して、デプロイ対象の組織にメタデータ形式でメタデータをデプロイします。

>sf project deploy start --metadata-dir force-app/main/default -o [ユーザー名] --dry-run

--dry-run オプション指定すると、デプロイチェックのみを行います。

デプロイチェックが成功しました。--dry-runオプションを外して実行すればデプロイされます。

いかがでしたでしょうか。

接続アプリケーションを一度インストールしてしまえば、コマンドプロンプト上で Salesforce CLI コマンドを実行することで、ログイン画面を開くことなくメタデータのデプロイが実行できるため、Ant移行ツールと同じような手軽さでデプロイできるようになります。

今後もメタデータ形式で Salesforce のデータを管理する場合は、この手順を利用されてはいかがでしょうか。

カレンダー

«6月»
      1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30       

最近のエントリー

会社を続けるということ ~企業寿命30年説と創立80周年~

2026.09.07

会社が長く存続することは、決して当たり前ではありません。取引先の破産を知った時期に迎えた、親会社・橋口電機の創立80周年。企業寿命30年説や橋口電機が幾度もの経済危機を乗り越えてきた歴史を振り返りながら、堅実な財務基盤と変化への挑戦を両立し、SUNBITが長寿企業として歩み続けるための経営について綴ります。

世界に一つだけのマイカップヌードル

2026.08.31

世界に一つだけのカップヌードルを作ってみませんか?カップを自由にデザインし、4種類のスープと12種類の具材から好きな組み合わせを選んで、自分好みの一杯を作れる「マイカップヌードルファクトリー」。本格的な包装工程まで楽しめる、大人も思わず夢中になる体験の様子をご紹介します。

3歳から始めたピアノ。気づけば父親の手には負えなくなっていました。

2026.08.24

3歳からピアノを続けてきた娘が、コンクールで入賞できなかった悔しさをきっかけに、毎日30分の練習を決意。家族もグランドピアノを迎え入れ、その本気を支えます。努力を重ねた結果、昨年は優秀賞、今年は小学5年生ながら5・6年生の部で銅賞を受賞。楽しみながら成長し、いつしか父を追い越していった娘への誇らしい思いを綴ります。

魅力いっぱいの奄美大島・体験型観光

2026.08.10

マングローブを進むカヤック、島唄と三線に包まれる夕食、夜の森で出会うアマミノクロウサギ。そして、旅の締めくくりには世界にひとつだけのTシャツ作り。奄美大島の自然と文化を全身で味わった、2泊3日の旅の様子をお届けします。次の旅行先を探している方にもおすすめです。

アーカイブ

ブログ内検索

  1. TOP
  2. BLOG
  3. Ant 移行ツールから Salesforce CLI への移行