環境変数の概要

環境変数により、Power Platform 環境間でアプリケーションを移動という基本的なアプリケーション ライフサイクル管理 (ALM) シナリオが可能になります。 このシナリオでは、移行元環境と移行先環境で異なるいくつかの主要な外部アプリケーション参照 (テーブル、接続、キーなど) を除いて、アプリケーションはまったく同じままです。 アプリケーションでは、テーブルまたは接続の構造が移行元環境と移行先環境で、多少の違いはあるものの、まったく同じである必要があります。 環境変数を使用すると、アプリケーションが環境間で移動するときに、これらの異なる外部参照のどれを更新する必要があるかを指定できます。

環境変数は、パラメーター キーと値を格納し、他のさまざまなアプリケーション オブジェクトへの入力として機能します。 消費オブジェクトからパラメーターを分離すると、同じ環境内で、または他の環境にソリューションを移行するときに値を変更できます。 代替方法は、ハードコーディングされたパラメーター値を、それらを使用するコンポーネント内に残すことです。 これはしばしば、特に ALM 操作中に値を変更する必要がある場合、問題になります。 環境変数はソリューション コンポーネントであるため、ソリューションを他の環境に移行するときに、参照 (キー) を転送して値を変更できます。

注意

データ ソースの新しい機能は現在展開されており、お客様の地域ではまだ使用できない可能性があります。

環境変数を使用するメリット:

  • 他の環境へのソリューションのインポート中に、新しいパラメーター値を提供します。
  • キャンバス アプリおよびフローで使用されるデータ ソースの構成を保存します。 たとえば、SharePoint オンライン サイトおよびリスト パラメーターは、環境変数として保存できます。そのため、アプリおよびフローの変更を必要とせずに、さまざまな環境のさまざまなサイトおよびリストに接続できます。
  • カスタマイズおよび構成を一緒にパッケージ化して転送し、1 つの場所で管理します。
  • さまざまなコンポーネントで使用される資格情報など、それらを使用するコンポーネントとは別に、パッケージおよびトランスポート シークレット。
  • 1 つの環境変数は、同じ種類のコンポーネントであるかまたは別のコンポーネントであるかどうかを問わず、多くのさまざまなソリューション コンポーネントで使用できます。 たとえば、キャンバス アプリおよびフローは同じ環境変数を使用できます。 環境変数の値を変更する必要がある場合は、1 つの値を変更することだけが必要になります。
  • また、運用環境でデータ ソースを廃止する必要がある場合は、環境変数値を新しいデータ ソースの情報で更新できます。 アプリとフローは変更する必要がなく、新しいデータ ソースの使用を開始します。
  • SolutionPackagerDevOps ツールでサポートされているため、継続的インテグレーションと継続的デリバリー (CI/CD) が可能です。
  • 環境変数をパック解除して、ソース管理に保存できます。 さまざまな環境で必要な個別の構成用に、さまざまな環境変数値ファイルを保存することもできます。 ソリューション パッケージャーは、ソリューションがインポートされる環境に対応するファイルを受け入れることができます。

どのように機能しますか?

環境変数は、最新のソリューション インターフェイス内で作成および変更でき、キャンバス アプリで特定のデータ ソースに接続するときに、またはコードを使用する ことにより自動的に作成されます。 ソリューションを介して環境にインポートすることもできます。 環境変数が環境に存在すると、それらの変数はキャンバス アプリ、Power Automate フローを作成するとき、プラグインやモデル駆動型アプリに Power BI ダッシュボードを追加するなど他の多くの場所を開発するときに入力として使用できます。 これらの種類のオブジェクトが環境変数を使用する場合、値は環境変数から派生され、ソリューションが他の環境にインポートされるときに変更できます。

環境変数をソリューションで作成する

  1. Power Apps (make.powerapps.com) にサインインしてから、左ペインでソリューションを選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
  2. 必要なソリューションを開く、または新しいソリューションを作成します。
  3. コマンド バーで、新規 > その他を選択してから、環境変数を選択します。
  4. 右側のペインで、次の列を入力し、続いて保存を選択します。
    • 表示名。 環境の変数の名称を入力してください。

    • 名前. 一意の名前は 表示名称 から自動的に生成されますが、変更することもできます。

    • データ型10 進数テキストJSON2 つのオプションデータ ソース、またシークレットから選択します。

      注意

      • データ ソースが選択された種類である場合は、コネクタ、選択したコネクタの有効な接続、およびパラメーターの種類を選択する必要もあります。 ただし、接続は環境変数の一部として保存されません。 接続は、アクセスできる SharePoint サイトなどの使用可能なパラメータ値や、サイトに関連付けられたリストを取得する場合にのみ使用されます。 SharePoint リストなどの特定のパラメーターについては、SharePoint サイトなどの親データ ソース環境変数を選択する必要もあります。 保存すると、これらはデータ ベースに関連付けられます。
      • シークレットが選択されたタイプである場合、Power Platform がシークレットにアクセスするには、Azure Key Vault をセットアップおよび構成するための追加情報が必要です。
    • Current Value。 値とも呼ばれます。 このプロパティはオプションであり、環境変数値テーブルの一部です。 既定値が存在する場合でも、値が存在する場合はその値が使用されます。 次の環境で使用したくない場合はソリューションから値を削除します。 値は、エクスポートされたソリューション .zip ファイル内で個別の JSON ファイルに分けられ、オフラインで編集することもできます。 詳細: 環境変数から値を削除するにはどうすればよいですか?

    • 既定値。 この列は環境変数定義テーブルの一部であり、必須ではありません。 現在の値がない場合は、既定値が使用されます。

      既定値と現在の値を分離すると、定義と既定値を、値とは別にサービスすることができます。 たとえば、アプリケーション公開元が AppSource に既定値と共にオファーを一覧表示することがあります。 すると、オプションで、顧客は新しい値を提供することができます。 アプリケーション公開元がアプリケーションの更新を公開する場合、顧客が設定した値は上書きされません。

      新しい環境変数。

      注意

      値は定義なしに存在することはできません。 インターフェイスは定義ごとに一つの値のみを作成できます。

ソリューションのインポート中に新しい値を入力する

最新のソリューション インポート インターフェイスには、環境変数の値を入力する機能が含まれています。 これにより、environmentvariablevalueテーブルの値プロパティが設定されます。

2023 年 12 月 7 日の更新プログラム以降、ソリューションをインポートするとき (またはパイプラインを使用してデプロイするとき)、すべての環境変数値が表示されます。 既定値または値のない環境変数は値の入力を求められますが、それ以外の環境変数については、値のソース (ソリューション値、ターゲット環境値、またはデフォルト値) を示すラベルがテキスト領域の下に事前入力されます。

ソリューションのインポート中の環境変数の可視性。

注意

  • 場合によっては、インポート作成者が環境変数に使用される接続またはソースにアクセスできない場合、特定のデータ ソースの環境変数値について、アクセスが拒否されましたという警告が表示されることがあります。 これはブロッキング警告ではありませんが、ターゲット環境で環境変数を使用する方法よっては記録することが必要です。
  • ソリューションをエクスポートする前に、ソリューションから値を削除できます。 これにより、既存の値は開発環境に保持されますが、ソリューションにはエクスポートされません。 この方法により、ソリューションを他の環境にインポートする間に新しい値を提供できます。 詳細: 環境変数から値を削除するにはどうすればよいですか?

通知

通知は、環境変数に値がないときに表示されます。 これは、環境変数に依存するコンポーネントが失敗しないように値を設定するためのリマインダーです。

セキュリティ

environmentvariabledefinition テーブルは、ユーザーまたはチームが所有しています。 環境変数を使用するアプリケーションを作成するときは、必ずこのテーブルに適切なレベルの特権をユーザーに割り当ててください。 environmentvariablevalue テーブルへのアクセス許可は、親 environmentvariabledefinition テーブルから継承済みであるため、個別の特権が必要ではありません。 environmentvariabledefinition テーブルの特権は、既定で環境作成者と Basic ユーザーのセキュリティ ロールに含まれています。 詳細: Dataverse のセキュリティ

命名

環境変数の名前は、正確な参照ができるように一意なものにしてください。 環境変数の表示名が重複していると、環境変数を区別して使用することが難しくなります。 環境変数の名前は、正確な参照ができるように一意なものにしてください。 名前の $ authentication$ connection はフロー用に特別に予約されたパラメータであり、避ける必要があります。 これらの名前の環境変数が使用されている場合、フロー保存がブロックされます。 環境変数がフローで使用されており、環境変数の表示名が変更された場合、デザイナーは識別に役立つように新旧両方の表示名トークンを表示します。 フローを更新する際には、環境変数の参照を一度削除して、再度追加することをお勧めします。

現在の制限

  • 環境変数値の検証は、ユーザー インターフェイス内およびそれらを使用するコンポーネント内で行われますが、Dataverse 内では行われません。 そのため、コードで変更する場合は、適切な値が設定されていることを確認してください。
  • Power Platform Build Tools のタスク は、データ ソース環境変数の管理ではまだ使用できません。 ただし、これにより、Microsoft が提供するツール内およびソース管理システム内での使用がブロックされることはありません。
  • カスタム コードを使用して環境変数を操作するには、値をフェッチするための API 呼び出しが必要です。Microsoft 以外のコードで使用するために公開されているキャッシュはありません。
  • 環境変数を正常に使用するには SharePoint リストでは、表示名 と、ソース環境とターゲット環境の対応する各列の論理名が一致する必要があります。

よく寄せられる質問

使用している環境変数の値が表示されないのはなぜですか?

環境変数がマネージド ソリューションにある場合、既定のソリューション内を調べない限り、値を確認することはできません。 環境変数値はアンマネージド カスタマイズであるため、この動作は仕様によるものです。

環境変数が使用されている場所を確認するにはどうすればよいですか?

コンポーネントの作成中、ソリューション インターフェイスで依存関係を表示するを選択することにより、またはソース管理およびソリューション ファイルで、アプリまたはフローのメタデータを表示することにより実行できます。

データ ソース環境変数は接続と同じですか?

いいえ。 しかし関連しています。 接続は、コネクタと対話するために必要な資格情報または認証を表します。 データ ソース環境変数は、コネクタの 1 つ以上のアクションに必要なパラメーターを格納し、これらのパラメーターは、多くの場合アクションによって異なります。 たとえば、SharePoint オンライン接続では、サイト、リスト、またはドキュメント ライブラリに関する情報は保存されません。 そのため、コネクタを呼び出すには、有効な接続といくつかの追加パラメーターの両方が必要です。

データ ソース環境変数は、SQL 認証を使用する SQL Server などの共有される接続で使用できますか?

通常はできません。 SQL Server との共有接続には、接続内のデータに接続するために必要なパラメーターが格納されます。 たとえば、サーバー名およびデータベース名は接続の作成時に提供されるため、常に接続から派生します。

データ ソース環境変数は、パラメーターが接続から派生できないため、Microsoft Entra ID などのユーザー ベースの認証に依存するコネクタに使用されます。 これらの理由により、共有接続である SQL Server による認証は、データ ソース環境変数を使用していません。

自動化された ALM パイプラインでは、異なる環境に異なる値ファイルを使用できますか?

はい。 ソリューション パッケージャーはファイル名を入力パラメーターとして受け入れるため、実行される環境の種類に応じて、パイプラインはソリューションに異なる値のファイルをパックできます。

誰かが誤って値を削除した場合はどうなるでしょうか?

依存関係システムによってまだ防止されていない場合、ランタイムは最後の既知の値をフォールバックとして使用します。

値が変更された場合、新しい値はいつキャンバス アプリおよびクラウド フローで使用されますか?

値はアプリにプッシュされ、非同期的に流れるため、更新された環境変数を完全に公開するには最大 1 時間かかる場合があります。

プレミアム ライセンスが必要ですか?

いいえ。 ALM は Dataverse (または Dynamics 365 for Customer Engagement) を必要としますが、プレミアム コネクタの使用は必要ありません。 1 つの注意事項は、Dataverse コネクタを使用して、アカウントまたは取引先担当者などの他のデータ レコードと同じように環境変数と対話する場合です。 以前は、これがキャンバス アプリおよびフローで環境変数を使用する唯一の方法でした。

使用できる環境変数の数に制限がありますか?

いいえ。 ただし、ソリューションの最大サイズは 120 MB です。 ソリューションの作成を参照してください

環境変数の表示名および説明をローカライズできますか?

はい。

カスタム テーブルに構成データを保存する代わりに環境変数を使用する必要がありますか?

構成データがリレーショナルでない場合は、必要があります。 環境変数は、キーと値のペアに使用する必要があり、値が他の環境で異なる必要があるときに使用する必要があります。 構成移行ユーティリティなどの他のツールは、カスタム テーブル内のリレーショナル構成格納データの移行に適しています。 他の構成データとは異なり、環境変数はソリューション内で移行されるため、管理がはるかに簡単で、インポートするパフォーマンスが向上します。

インポート時に、目的の接続値とは異なる接続値が自動的に割り当てられるのはなぜですか?

単一 (データ ソース タイプ) の環境変数に複数の接続が使用できる場合、環境変数に使用できる接続のリストで最初の接続を選択する仕様上の実装があります。 通常、環境変数に関連付けられている接続は 1 つだけであるため、これは通常、検証する必要はありません。 また、環境変数値の表示方法の最近の変更により、インポート時の検証が容易になりました。

環境変数から値を削除するにはどうすればよいですか?

ソリューションをエクスポートする前に、ソリューションから環境変数の値を削除することをお勧めします。 その後、既存の値は開発環境に残りますが、ソリューションにはエクスポートされません。 このアプローチにより、ソリューションを別の環境にインポートしながら、新しい値を提供できます。

値を削除するには、次のステップを実行します。

  1. 環境変数が配置されているソリューションで、環境変数を選択してプロパティを表示します。

  2. 現在の値 で、... > このソリューションから削除 を選択します。

    環境変数から値を削除する

カスタム コネクタで環境変数を使用できますか ?

はい。 カスタム コネクタでサポートされている環境変数

参照

キャンバス アプリでデータ ソース環境変数を使用する
Power Automate ソリューション クラウド フローで環境変数を使用する
EnvironmentVariableDefinition テーブル/エンティティ参照
Web API サンプル
キャンバス アプリでデータ ソース環境変数を使用する
Power Automate ソリューション クラウド フローで環境変数を使用する
Azure Key Vault シークレットを使用する
カスタム コネクタでサポートされている環境変数
Power Apps ブログ: プレビューで利用可能な環境変数!

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。