Salesforce CLI 統合の使用開始
日常業務で sf コマンドを使い始め、いろいろ試してみながらその動作を確認することをお勧めします。新しい CI/CD スクリプトを作成する場合は、利用可能な sf コマンドを追加します。sf でのみ利用可能な Salesforce Functions のような新機能の使用を開始したら、必要に応じて、このようなコマンドを既存のスクリプトに直接追加してください。sf と sfdx はバンドルされているため、既存のスクリプトに新しい sf コマンドを追加しても、スクリプトが壊れることはありません。
この 2 つの実行ファイルは相互に認識されており、一部のコマンドは相互利用が可能です。たとえば、sfdx コマンドでスクラッチ組織を作成すると、sf コマンドでメタデータをその組織にリリースできます。詳細は、「sf と sfdx が連携するしくみ」を参照してください。
ただし、sf は sfdx プラグインではなく、一部のコマンドは 2 つの実行ファイルの間で相互利用されますが、2 つの実行ファイルは個別のエンティティであることに注意してください。たとえば、プラグインを sfdx にインストールし、その一部のコマンドを使用する場合、sf ではそのコマンドは表示されません。sf のコマンドを使用するには、明示的にプラグインを sf にインストールする必要があります。
sf によって sfdx がどのように改善されるか?
sf は、Salesforce の開発およびビルド自動化を簡略化するコマンドラインインターフェースであるという点で sfdx と似ています。ただし、sf にはいくつかの重要な新機能と設計変更も含まれています。
-
sf コマンド階層には、Salesforce のブランド、製品、機能ではなく、一般的な開発者のワークフローが反映されています。
たとえば、最上位のトピックには、CLI (sf config) の設定、環境へのログイン (sf login)、リリースと取得 (sf deploy と sf retrieve)、環境の管理 (sf env) が含まれています。
sf の機能が増え、他の Salesforce クラウドに対応するようになると、各製品が独自のコマンド階層を持つのではなく、このワークフローに焦点を当てた階層に各製品のコマンドが含まれるようになります。sf では、こういったコマンドの一貫性を確保できるため、新しいクラウド上で開発する場合でも、より簡単かつ直感的に使用することができます。
-
sf には、フラグ値を受動的に受け入れるのではなく、必要な情報の提供を促すプロンプトが積極的に表示されるインタラクティブなコマンドが用意されています。そのため、すべてのフラグ名やどれが必須かを覚えておく必要がなくなり、結果的にエラーを減らすことができます。たとえば、sf deploy では、リリース環境と項目、テストのレベルなどを求めるプロンプトが表示されます。
それぞれのインタラクティブなコマンドには、自動スクリプトで使用するための環境固有のコマンドがあります。たとえば、sf deploy metadata には、リリース先の組織やメタデータの場所などを指定するためのフラグがあります。
- 改善された --help 出力:
- コマンドラインヘルプが強化され、追加情報や例が含まれるようになりました。その結果、ヘルプが長くなることがあるため、フラグの動作も次のように変更されています。
- -h: 完全なヘルプのサブセット (短いコマンドとフラグの説明、およびコマンドの使用方法) を表示します。クイックリファレンス情報用に最適です。
- --help: -h コンテンツに加えて、より長いコマンドとフラグの説明、例、およびコマンドに影響を与える設定と環境変数を表示します。
- 長い --help 出力には、コマンドに影響を与える設定と環境変数をリストする新しい CONFIGURATION VARIABLES セクションと ENVIRONMENT VARIABLES セクションが含まれています。
- 短いフラグの説明は読みやすいように論理グループに分類されているため、コマンドに多くのフラグがある場合に特に便利です。すべての例には簡単な説明が含まれています。
- 長いフラグの説明は --help 出力の末尾に表示されます。sfdx では、長いフラグの説明は --help 出力には一切表示されず、「Salesforce CLI コマンドリファレンス」にのみ記載されています。
- コマンドラインヘルプが強化され、追加情報や例が含まれるようになりました。その結果、ヘルプが長くなることがあるため、フラグの動作も次のように変更されています。
- 構文を正確に思い出せない場合でも、必要なコマンドを簡単に見つけることができます。覚えているコマンドの断片を任意の順序で入力するだけで、sf は、考えられるコマンドのリストを表示します。コマンドの選択肢が 1 つしかない場合は、そのコマンドが自動的に実行されます。たとえば、sf list と入力すると、次のような簡単なダイアログが表示され、必要なコマンドを選択できます。
1sf list 2? Which of these commands do you mean (Use arrow keys) 3> config list 4> env list 5> env logdrain list 6> env var list - コマンド出力が標準化され、読みやすさが向上しました。
注意事項: sf と sfdx の相違点
- 組織のメタデータをリリースおよび取得するコマンド (sf deploy|retrieve metadata) は、ソース追跡をサポートしています。ただし、この 2 つのコマンドは 6 つの sfdx コマンド (force:source:push|pull、force:source:deploy|retrieve、および force:mdapi:deploy|retrieve) の機能をカプセル化しているため、sf のソース追跡は若干異なります。「sf のソース追跡について」を参照してください。
- sf では、トピック、コマンド、サブコマンドの間にコロンではなくスペースが使用されます。たとえば、設定変数を取得する sf コマンドは sf config get ですが、sfdx では sfdx config:get となります。
- 必要に応じて、sf では sfdx フラグの名前にダッシュを含めるように変更し、読みやすくしました。たとえば、sfdx の --apiversion は、sf では --api-version になりました。
-
sf では、複数の値を取るフラグについては、フラグを複数回指定して、各フラグに異なる単一値を設定します。次に例を示します。
1sf deploy metadata --metadata ApexClass \ 2 --metadata CustomObject \ 3 --metadata AnotherCustomObject 4 --metadata "My Apex Class"sfdx では、フラグを 1 回指定し、次のように値をカンマで区切ります。
1sfdx force:source:deploy --metadata ApexClass,CustomObject,AnotherCustomObject - sf config set や sfdx config:set など、同等の sf コマンドと sfdx コマンドは相互に利用することができ、互いに認識されてもいますが、生成される JSON 出力は異なります。
新しい用語と変更された用語
以下の sf 用語について、簡単に説明します。
-
環境: メタデータのリリース先の組織など、CLI を使用して操作するものの総称。現在、Salesforce 組織および Salesforce Functions のリリース先となる計算環境がサポートされています。
環境を管理するコマンドは sf env トピックの下にグループ化されています。たとえば、sf env list では作成またはログインしたすべての環境がリストされます。
- ログイン: sf では、環境にログインすることで、その環境を操作する他のコマンドを CLI で実行することが承認されます。sfdx では、「authorize (承認)」という用語を使用します。
- フラグ: sf では、コマンドの --json フラグのように、ドキュメント内で一貫して「フラグ」という用語を使用します。sfdx では、ドキュメント内で「パラメータ」、「フラグ」、「オプション」という用語を同義語として使用する場合があります。
- 設定変数: sf では、CLI の側面を設定するために設定変数を使用します。sfdx では、これを設定値と呼びます。
- Target (対象): sf では、target-org 設定変数、target-dev-hub 設定変数、--target-env フラグなど、環境を指すときに「target (対象)」という用語を使用します。sfdx で使用している defaultusername や defaultdevhubusername という用語は使用されなくなります。