Power Platform の概要のための環境変数
環境変数により、Power Platform 環境間でアプリケーションを移動という基本的なアプリケーション ライフサイクル管理 (ALM) シナリオが可能になります。 このシナリオでは、移行元環境と移行先環境で異なるいくつかの主要な外部アプリケーション参照 (テーブル、接続、キーなど) を除いて、アプリケーションはまったく同じままです。 アプリケーションでは、テーブルまたは接続の構造が移行元環境と移行先環境で、多少の違いはあるものの、まったく同じである必要があります。 環境変数を使用すると、アプリケーションが環境間で移動するときに、これらの異なる外部参照のどれを更新する必要があるかを指定できます。
環境変数は、パラメーター キーと値を格納し、他のさまざまなアプリケーション オブジェクトへの入力として機能します。 消費オブジェクトからパラメーターを分離すると、同じ環境内で、または他の環境にソリューションを移行するときに値を変更できます。 代替方法は、ハードコーディングされたパラメーター値を、それらを使用するコンポーネント内に残すことです。 これはしばしば、特に ALM 操作中に値を変更する必要がある場合、問題になります。 環境変数はソリューション コンポーネントであるため、ソリューションを他の環境に移行するときに、参照 (キー) を転送して値を変更できます。
注意
データ ソースの新しい機能は現在展開されており、お客様の地域ではまだ使用できない可能性があります。
環境変数を使用するメリット:
- 他の環境へのソリューションのインポート中に、新しいパラメーター値を提供します。
- キャンバス アプリおよびフローで使用されるデータ ソースの構成を保存します。 たとえば、SharePoint オンライン サイトおよびリスト パラメーターは、環境変数として保存できます。そのため、アプリおよびフローの変更を必要とせずに、さまざまな環境のさまざまなサイトおよびリストに接続できます。
- カスタマイズおよび構成を一緒にパッケージ化して転送し、1 つの場所で管理します。
- さまざまなコンポーネントで使用される資格情報など、それらを使用するコンポーネントとは別に、パッケージおよびトランスポート シークレット。
- 1 つの環境変数は、同じ種類のコンポーネントであるかまたは別のコンポーネントであるかどうかを問わず、多くのさまざまなソリューション コンポーネントで使用できます。 たとえば、キャンバス アプリおよびフローは同じ環境変数を使用できます。 環境変数の値を変更する必要がある場合は、1 つの値を変更することだけが必要になります。
- また、運用環境でデータ ソースを廃止する必要がある場合は、環境変数値を新しいデータ ソースの情報で更新できます。 アプリとフローは変更する必要がなく、新しいデータ ソースの使用を開始します。
- SolutionPackager と DevOps ツールでサポートされているため、継続的インテグレーションと継続的デリバリー (CI/CD) が可能です。
- 環境変数をパック解除して、ソース管理に保存できます。 さまざまな環境で必要な個別の構成用に、さまざまな環境変数値ファイルを保存することもできます。 ソリューション パッケージャーは、ソリューションがインポートされる環境に対応するファイルを受け入れることができます。
環境変数はどのように機能しますか?
環境変数は、最新のソリューション インターフェイス内で作成および変更でき、キャンバス アプリで特定のデータ ソースに接続するときに、またはコードを使用する ことにより自動的に作成されます。 ソリューションを介して環境にインポートすることもできます。 環境変数が環境に存在すると、それらの変数はキャンバス アプリ、Power Automate フローを作成するとき、プラグインやモデル駆動型アプリに Power BI ダッシュボードを追加するなど他の多くの場所を開発するときに入力として使用できます。 これらの種類のオブジェクトが環境変数を使用する場合、値は環境変数から派生され、ソリューションが他の環境にインポートされるときに変更できます。
環境変数をソリューションで作成する
- Power Apps (make.powerapps.com) にサインインしてから、左ペインでソリューションを選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
- 必要なソリューションを開く、または新しいソリューションを作成します。
- コマンド バーで、新規>その他を選択してから、環境変数を選択します。
- 右側のペインで、次の列を入力し、続いて保存を選択します。
表示名。 環境の変数の名称を入力してください。
名前. 一意の名前は 表示名称 から自動的に生成されますが、変更することもできます。
データ型。 10 進数、テキスト、JSON、2 つのオプション、データ ソース、またシークレットから選択します。
注意
- データ ソースが選択された種類である場合は、コネクタ、選択したコネクタの有効な接続、およびパラメーターの種類を選択する必要もあります。 ただし、接続は環境変数の一部として保存されません。 接続は、アクセスできる 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 リストでは、表示名 と、ソース環境とターゲット環境の対応する各列の論理名が一致する必要があります。
- 環境変数は最大 2,000 文字に制限されます。
よく寄せられる質問
使用している環境変数の値が表示されないのはなぜですか?
環境変数がマネージド ソリューションにある場合、既定のソリューション内を調べない限り、値を確認することはできません。 環境変数値はアンマネージド カスタマイズであるため、この動作は仕様によるものです。
環境変数が使用されている場所を確認するにはどうすればよいですか?
コンポーネントの作成中、ソリューション インターフェイスで依存関係を表示するを選択することにより、またはソース管理およびソリューション ファイルで、アプリまたはフローのメタデータを表示することにより実行できます。
データ ソース環境変数は接続と同じですか?
いいえ 両者は関連していますが、コネクターはコネクターとやり取りするために必要な認証または資格情報を表します。 データ ソース環境変数は、コネクタの 1 つ以上のアクションに必要なパラメーターを格納し、これらのパラメーターは、多くの場合アクションによって異なります。 たとえば、SharePoint オンライン接続では、サイト、リスト、またはドキュメント ライブラリに関する情報は保存されません。 そのため、コネクタを呼び出すには、有効な接続といくつかの追加パラメーターの両方が必要です。
データ ソース環境変数は、SQL 認証を使用する SQL Server などの共有される接続で使用できますか?
通常はできません。 SQL Server との共有接続には、接続内のデータに接続するために必要なパラメーターが格納されます。 たとえば、サーバー名およびデータベース名は接続の作成時に提供されるため、常に接続から派生します。
データ ソース環境変数は、パラメーターが接続から派生できないため、Microsoft Entra ID などのユーザー ベースの認証に依存するコネクタに使用されます。 これらの理由により、共有接続である SQL Server による認証は、データ ソース環境変数を使用していません。
自動化された ALM パイプラインでは、異なる環境に異なる値ファイルを使用できますか?
はい。 ソリューション パッケージャーはファイル名を入力パラメーターとして受け入れるため、実行される環境の種類に応じて、パイプラインはソリューションに異なる値のファイルをパックできます。
ソリューションにその値を含める必要がありますか?
いいえ 環境変数は、ソリューションがデプロイされる異なる環境で異なる値を必要とするアプリケーションが使用することを目的としています。 環境 変数定義はソリューションに含める必要がありますが、値はデプロイメント中にターゲット 環境 に提供される必要があります。 この動作により、環境 変数定義はターゲット 環境 内の 管理ソリューション オブジェクトになりますが、環境 変数は管理されていないレコードになります。
使用している環境で値を削除できないのはなぜですか?
値が 管理ソリューション に含まれていた場合、値を削除する唯一の方法は、ソース 環境 内のソリューションを更新して値を除外し、ソリューションの新しいバージョンをエクスポートすることです。 この新しいバージョンは、アップグレード操作 (更新ではない) を使用して環境にインポートすることができ、その結果、値のレコードが削除されます。
誰かが誤って値を削除した場合はどうなるでしょうか?
依存関係システムによってまだ防止されていない場合、ランタイムは最後の既知の値をフォールバックとして使用します。
値が変更された場合、新しい値はいつキャンバス アプリおよびクラウド フローで使用されますか?
値はアプリにプッシュされ、非同期的に流れるため、更新された環境変数を完全に公開するには最大 1 時間かかる場合があります。
プレミアム ライセンスが必要ですか?
いいえ ALM は Dataverse (または Dynamics 365) を必要としますが、プレミアム コネクタの使用は必要ありません。 1 つの注意事項は、Dataverse コネクタを使用して、アカウントまたは取引先担当者などの他のデータ レコードと同じように環境変数と対話する場合です。 以前は、これがキャンバス アプリおよびフローで環境変数を使用する唯一の方法でした。
使用できる環境変数の数に制限がありますか?
いいえ ただし、ソリューションの最大サイズは 95 MB です。 詳細: ソリューションの作成
環境変数の表示名および説明をローカライズできますか?
はい。
カスタム テーブルに構成データを保存する代わりに環境変数を使用する必要がありますか?
構成データがリレーショナルでない場合は、必要があります。 環境変数は、キーと値のペアに使用する必要があり、値が他の環境で異なる必要があるときに使用する必要があります。 構成移行ユーティリティなどの他のツールは、カスタム テーブル内のリレーショナル構成格納データの移行に適しています。 他の構成データとは異なり、環境変数はソリューション内で移行されるため、管理がはるかに簡単で、インポートするパフォーマンスが向上します。
データ ソース 環境 変数の接続が保存されないのはなぜですか?
接続はユーザー インターフェイスを生成するためにのみ使用されます。 たとえば、サイトに関連付けられた SharePoint リストのフレンドリ名を取得します。 データ ソース 環境 変数を編集するときは、必ず データ ソース へのアクセス権を持つ接続を 選択 してください。 接続にアクセスできなくなった場合は、手動で値を入力できます。 たとえば、リストの SharePoint サイト URL または一意の識別子 (GUID) を入力してください。
単一の (データ ソース タイプ) 環境変数に対して複数の接続が使用可能な場合、接続リストの最初の接続を選択する設計になっています。 通常、環境変数に関連付けられている接続は 1 つだけであるため、これは通常、検証する必要はありません。 また、環境変数値の表示方法の最近の変更により、インポート時の検証が容易になりました。
環境変数から値を削除するにはどうすればよいですか?
ソリューションをエクスポートする前に、ソリューションから環境変数の値を削除することをお勧めします。 その後、既存の値は開発環境に残りますが、ソリューションにはエクスポートされません。 このアプローチにより、ソリューションを別の環境にインポートしながら、新しい値を提供できます。
値を削除するには、次のステップを実行します。
環境変数が配置されているソリューションで、環境変数を選択してプロパティを表示します。
現在の値 で、...>このソリューションから削除 を選択します。
カスタム コネクタで環境変数を使用できますか ?
参照
キャンバス アプリでデータ ソース環境変数を使用する
Power Automate ソリューション クラウド フローで環境変数を使用する
EnvironmentVariableDefinition テーブル/エンティティ リファレンス
Web API サンプル
キャンバス アプリでデータ ソース環境変数を使用する
環境変数を使用する Power Automate ソリューションのクラウドフロー
Azure Key Vaultのシークレットを使用する
カスタムコネクタにおける環境変数のサポート
Power Apps ブログ: 環境変数がプレビューで利用可能になりました。