tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Salesforce CLI コマンドを試してみました - Part 4

Part 3 の続き。リファレンスサイトの「config Commands」から続けます。

Salesforce Developers

config Commands

Salesforce CLI を設定するためのコマンドです。

config list

target-orgといった設定情報を確認できます。

sf config list


グローバル構成変数とプロジェクトのローカル構成変数の両方をリストすると記載がありました。利用用途の一つ、target-orgはローカル変数のようです。プロジェクトの外のディレクトリで config lsit コマンドを実行しても存在しないと表示されました。


config get

構成変数の値を取得するコマンドです。

sf config get target-org


「--verbose」のフラグ設定で「複数の構成変数を取得し、それらがローカルに設定されているかグローバルに設定されているかを表示」ができるようです。

sf config get target-org api-version --verbose

※サンプルコマンドのapi-versionはフラグではなく変数名。なので除外して実行します。


実行結果は次のようになります。LOCALというカラムが追加されました。


config set

デフォルト組織などの 1 つ以上の設定変数を設定するコマンドです。

// ローカルの target-org 設定変数を組織のユーザー名に設定します。
sf config set target-org=me@my.org

// ローカルの target-org 構成変数をエイリアスに設定します。
sf config set target-org=my-scratch-org

// グローバル target-org 構成変数を設定します。
sf config set --global target-org=my-scratch-org

// 等号を使用せずに単一の構成変数を設定します。この構文は、複数の構成変数を設定する場合には機能しません。
sf config set target-org me@my.com

sf config コマンドはプロジェクトのディレクトでしか動作しないと思っていましたが、「グローバル変数」と「ローカル変数」の二種類で管理できるようになっていました。


先程のサンプルコマンドにあった「api-version」はCLI実行時のAPIバージョンを指定するための変数だと思います。これをお試しとして実行。

sf config set api-version=58.0


実行してみたところ、「Did you mean org-api-version?」と変数名はこっちじゃない?とエラーになりました。そのとおりに変更してみたところ、正しく設定できました。誤った変数名登録には気付けるようになっているようです。(サンプルコードの変数名は旧バージョンかな)

config unset

一度設定した変数を削除するコマンドです。

// ローカルの「target-org」構成変数の設定を解除します。
sf config unset target-org

// 複数の構成変数の設定をグローバルに解除します。
sf config unset target-org api-version --global

先程設定してみたorg-api-versionの変数を削除してみます。

sf config unset org-api-version


想定通りに動作しました。


Salesforce CLI 環境変数について

「target-org、org-api-version、 target-dev-hub」とconfig set コマンドで設定できる変数はいろいろ用意されていることも確認できました。他にもあるのかなと検索したところ、次の情報を確認できました。


詳細はこちらとのこと。

org-api-versionやtarget-orgは「sf 設定変数」でこれに設定すると「sf 環境変数」に格納されて処理に適用されるようです。ちょっとややこしい。

Part 4 のまとめ

今回は「sf config」コマンドを試してみました。コマンド自体はシンプルなのですぐわかった気になっていたのですが、リファレンスサイトをちゃんと読みながら試すと、グローバル変数とローカル変数の違いがあるのをちゃんと理解できたのは良かったです。