環境変数の概要
多くの場合、アプリケーションをさまざまな環境に展開する場合は、さまざまな構成設定または入力パラメーターが必要になります。 環境変数は、パラメーター キーと値を格納し、他のさまざまなアプリケーション オブジェクトへの入力として機能します。 消費オブジェクトからパラメーターを分離すると、同じ環境内で、または他の環境にソリューションを移行するときに値を変更できます。 代替方法は、ハードコーディングされたパラメーター値を、それらを使用するコンポーネント内に残すことです。 これはしばしば、特にアプリケーション ライフサイクル管理 (ALM) 操作中に値を変更する必要がある場合、問題になります。 環境変数はソリューション コンポーネントであるため、ソリューションを他の環境に移行するときに、参照 (キー) を転送して値を変更できます。
注意
データ ソースの新しい機能は現在展開されており、お客様の地域ではまだ使用できない可能性があります。
環境変数を使用するメリット:
- 他の環境への ソリューションのインポート 中に、新しいパラメーター値を提供します。
- キャンバス アプリおよびフローで使用される データ ソース の構成を保存します。 たとえば、SharePoint オンライン サイトおよびリスト パラメーターは、環境変数として保存できます。そのため、アプリおよびフローの変更を必要とせずに、さまざまな環境のさまざまなサイトおよびリストに接続できます。
- カスタマイズおよび構成を一緒にパッケージ化して転送し、1 つの場所で管理します。
- さまざまなコンポーネントで使用される資格情報など、それらを使用するコンポーネントとは別に、パッケージおよびトランスポート シークレット。
- 1 つの環境変数は、同じ種類のコンポーネントであるかまたは別のコンポーネントであるかどうかを問わず、多くのさまざまなソリューション コンポーネントで使用できます。 たとえば、キャンバス アプリおよびフローは同じ環境変数を使用できます。 環境変数の値を変更する必要がある場合は、1 つの値を変更することだけが必要になります。
- また、運用環境でデータ ソースを廃止する必要がある場合は、環境変数値を新しいデータ ソースの情報で単純に更新できます。 アプリとフローは変更する必要がなく、新しいデータ ソースの使用を開始します。
- SolutionPackager と DevOps ツールでサポートされているため、継続的インテグレーションと継続的デリバリー (CI/CD) が可能です。
- 環境変数をパック解除して、ソース管理に保存できます。 さまざまな環境で必要な個別の構成用に、さまざまな環境変数値ファイルを保存することもできます。 ソリューション パッケージャーは、ソリューションがインポートされる環境に対応するファイルを受け入れることができます。
どのように機能しますか?
環境変数は、最新のソリューション インターフェイス内で作成および変更でき、キャンバス アプリで特定のデータ ソースに接続するときに、またはコードを使用する ことにより自動的に作成されます。 ソリューションを介して環境にインポートすることもできます。 環境変数が環境に存在すると、それらの変数はキャンバス アプリ、Power Automate フローを作成するとき、プラグイン、およびモデル駆動型アプリに Power BI ダッシュボードを追加するなど他の多くの場所を開発するときに入力として使用できます。 これらの種類のオブジェクトが環境変数を使用する場合、値は環境変数から派生され、ソリューションが他の環境にインポートされるときに変更できます。
環境変数をソリューションで作成する
- Power Apps (make.powerapps.com) にサインインしてから、左ペインで ソリューション を選択します。
- 必要なソリューションを開く、または新しいソリューションを作成します。
- コマンド バーで、新規 > その他 を選択してから、環境変数 を選択します。
- 右側のペインで、次の列を入力し、続いて 保存 を選択します。
表示名。 環境の変数の名称を入力してください。
名前. 一意の名前は 表示名称 から自動的に生成されますが、変更することもできます。
データ型。 10 進数、テキスト、JSON、2 つのオプション、データ ソース、また シークレット から選択します。
注意
データ ソース が選択された種類である場合は、コネクタ、選択したコネクタの有効な 接続、および パラメーターの種類 を選択する必要もあります。 SharePoint リストなどの特定のパラメーターについては、SharePoint サイトなどの親データ ソース環境変数を選択する必要もあります。 保存すると、これらはデータ ベースに関連付けられます。
シークレット が選択されたタイプである場合、Power Platform がシークレットにアクセスするには、Azure Key Vault をセットアップおよび構成するための追加情報が必要です。
Current Value。 値とも呼ばれます。 このプロパティはオプションであり、環境変数値テーブルの一部です。 既定値が存在する場合でも、値が存在する場合はその値が使用されます。 次の環境で使用したくない場合はソリューションから値を削除します。 値は、エクスポートされたソリューション .zip ファイル内で個別の JSON ファイルに分けられ、オフラインで編集することもできます。 詳細: 環境変数から値を削除するにはどうすればよいですか?
既定値。 この列は環境変数定義テーブルの一部であり、必須ではありません。 現在の値がない場合は、既定値が使用されます。
既定値と現在の値を分離すると、定義と既定値を、値とは別にサービスすることができます。 たとえば、アプリケーション公開元が AppSource に既定値と共にオファーを一覧表示するとします。 すると、オプションで、顧客は新しい値を提供することができます。 アプリケーション公開元がアプリケーションの更新を公開する場合、顧客が設定した値は上書きされません。

注意
値は定義なしに存在することはできません。 インターフェイスは定義ごとに一つの値のみを作成できます。
キャンバス アプリでデータ ソース環境変数を使用する
既存のデータ ソース環境変数を使用する
環境変数は、他のアプリおよびクラウド フローなどのさまざまな種類のリソースの間でも再利用できます。 最初にソリューション内でそれらを作成し、後でキャンバス アプリおよびクラウド フローを作成する間に使用することができます。
- 上記の手順に従ってリューションに環境変数を作成します。
- ソリューションからキャンバス アプリを編集または作成します。
- SharePoint オンラインの 新しい データ ソースを追加します。
- 詳細 タブを選択します。アクセスができ、設定されているパラメーターに一致する環境変数のフィルター処理されたリストが表示されます。 たとえば、SharePoint サイトを選択すると、コネクタ = SharePoint および パラメーターの種類 = サイト を持つすべてのデータ ソース環境変数の一覧が表示されます。 指定されたサイトの SharePoint 一覧を選択する場合も同様です。
- 必要な環境変数を選択して、接続 を選択します。
重要
別のソリューションの環境変数が選択される場合、環境変数を含むソリューションに依存関係が存在します。 そのため、必ず次のいずれかを行ってください。
- エクスポートする前に、環境変数を現在のソリューションに追加します。
- 現在のソリューションをインポートする前に、環境変数を含むソリューションが移行先の環境にインポートされていることを確認してください。
データの接続時にデータ ソース環境変数を自動で作成する
このオプションは単純さを提供し、環境変数が SharePoint オンラインなどのデータ ソースに常に使用されることを保証します。 ただし、一部の顧客は独自のスキーマ名を提供することを好むため、ソリューションからスキーマ名を作成する必要があります。
- ソリューションからキャンバス アプリを編集または作成します。
- 設定 > 全般的 を選択して、データ ソースの追加時に環境変数を自動で作成する の設定を有効にします。
- SharePoint オンラインの 新しい データ ソースを追加します。
- SharePoint サイト、1 つ以上の リスト、接続 の順に選択します。
注意
重複する環境変数の作成を防ぐために、重複が識別されたときに既存の環境変数を使用するように求められます。 複製の作成が必要な場合は、既存の環境変数を使用するオプションをクリアできます。
- 保存 を選択します。
注意
既存のキャンバス アプリは、データ ソース環境変数を自動的に使用しません。 アプリからデータ ソースを削除し、上記の手順を使用してアプリを追加し直して、環境変数を使用するようにこれらのアプリをアップグレードします。
Power Automate ソリューション クラウド フローで環境変数を使用する
環境変数は、動的コンテンツ セレクターで使用可能なので、ソリューション クラウド フローで使用できます。 すべての種類の環境変数をトリガーおよびアクションで使用できます。 ソリューション クラウド フローで環境変数を使用するには:
ソリューションにクラウド フローを編集または作成します。
アクションまたはトリガーで、環境変数に使用するパラメーターを決定します。
a. パラメーターが文字列または数値などの単純な値を取る場合は、パラメーターを入力します。
b. パラメーターがルックアップの場合は、ルックアップの一番下までスクロールして、カスタム値を入力する を選択します。 アクセスできる環境変数は、他の動的コンテンツと共に動的コンテンツ セレクターに一覧表示されます。
必要な環境変数を選択します。
ソリューションのインポート中に新しい値を入力する
最新のソリューション インポート インターフェイスには、環境変数の値を入力する機能が含まれています。 これにより、environmentvariablevalueテーブルの値プロパティが設定されます。
注意
ソリューションをエクスポートする前に、ソリューションから値を削除できます。 これにより、既存の値は開発環境に保持されますが、ソリューションにはエクスポートされません。 この方法により、ソリューションを他の環境にインポートする間に新しい値を提供できます。 環境変数に既に既定値または値が存在する場合、値がソリューションの一部であるか、または対象となる環境に既に存在しているとしても、ソリューションのインポート中に新しい値を求めるメッセージは表示 されません。 詳細: 環境変数から値を削除するにはどうすればよいですか?
通知
通知は、環境変数に値がないときに表示されます。 これは、環境変数に依存するコンポーネントが失敗しないように値を設定するためのリマインダーです。
セキュリティ
environmentvariabledefinition テーブルは、ユーザーまたはチームが所有しています。 環境変数を使用するアプリケーションを作成するときは、必ずこのテーブルに適切なレベルの特権をユーザーに割り当ててください。 environmentvariablevalue テーブルへのアクセス許可は、親 environmentvariabledefinition テーブルから継承済みであるため、個別の特権が必要ではありません。 environmentvariabledefinition テーブルの特権は、既定で環境作成者と Basic ユーザーのセキュリティ ロールに含まれています。 詳細: Dataverse のセキュリティ。
命名
環境変数の名前は、正確な参照ができるように一意なものにしてください。 環境変数の表示名が重複していると、環境変数を区別して使用することが難しくなります。 環境変数の名前は、正確な参照ができるように一意なものにしてください。 名前の $ authentication と $ connection はフロー用に特別に予約されたパラメータであり、避ける必要があります。 これらの名前の環境変数が使用されている場合、フロー保存がブロックされます。 環境変数がフローで使用されており、環境変数の表示名が変更された場合、デザイナーは識別に役立つように新旧両方の表示名トークンを表示します。 フローを更新する際には、環境変数の参照を一度削除して、再度追加することをお勧めします。
Azure Key Vault シークレットを使用する (プレビュー)
環境変数を使用すると、Azure Key Vault に格納されているシークレットを参照できます。 これらのシークレットは、Power Automate などの Power Platform コンポーネントで使用できるようになります。 実際のシークレットは Azure Key Vault にのみ保存され、環境変数は単にシークレットを参照します。 環境変数で Azure Key Vault シークレットを使用するには、Azure Key Vault を、Power Platform が参照したい特定のシークレットを読むことができるように構成する必要があります。
シークレットを参照する環境変数は、現在、フローで使用するために動的コンテンツ セレクターからは利用できません。
Azure Key Vault を構成する
Azure Key Vault シークレットを Power Platform で使用するには、Vault を持つ Azure サブスクリプションに PowerPlatform リソース プロバイダーが登録されており、環境変数を作成するユーザーは、Azure Key Vault リソースに対する適切なアクセス許可を持っている必要があります。
前提条件
Microsoft.PowerPlatformリソース プロバイダーを、Azure サブスクリプションで登録します。 次の手順に従って、確認および構成します: リソース プロバイダーとリソース タイプ
Azure Key Vault ボールトを作成します。 Power Platform 環境ごとに個別のボールトを使用して、侵害が発生した場合の脅威を最小限に抑えることを検討してください。 詳細については、Azure Key Vault を使用するためのベストプラクティスを参照してください。 Key Vault を作成する方法の詳細については、クイックスタート - Azure ポータルを使用して Azure Key Vault を作成するを参照してください。
環境変数を作成するユーザーは、特定のボールトに対する読み取り権限を持っている必要があります。 Azure ポータルの Azure Key Vault の アクセス制御 > アクセスを確認する の アクセスを表示 を使用して許可を確認できます。 ユーザーがボールトにアクセスできない場合は、キー ボールト閲覧者またはその他の適切なロールを介してこのリソースへのアクセスを許可します。
Azure Key Vaultには、Dataverse サービス プリンシパルに設定された 取得 シークレット アクセス ポリシーが必要です。 このボールトに存在しない場合は、新しいアクセス ポリシーを追加します。 アクセス ポリシーの追加 を選択してから、アクセス ポリシーとして 取得 を選択します。 プリンシパルの選択 の横で、何も選択されていません を選択してから、Dataverse を検索します。 ID が 00000007-0000-0000-c000-000000000000 の Dataverse サービス プリンシパルを選択してから 追加 を選択します。 追加すると、アクセス ポリシーは次のようになります。
まだ行っていない場合は、新しいボールトにシークレットを追加します。 詳細: Azure クイックスタート - Azure ポータルを使用して Azure Key Vault からシークレットを設定および取得する
Key Vault シークレットの新しい環境変数を作成します
Azure Key Vault が構成され、ボールトにシークレットが登録されると、環境変数を使用して Power Apps 内で参照できるようになります。
Power Appsにサインオンして、ソリューション エリアで、開発に使用しているアンマネージド ソリューションを開きます。
新規 > その他 > 環境変数 を選択します。
環境変数に、表示名 およびオプションで 説明 を入力します。
データ タイプ を シークレット として、シークレット ストア を Azure Key Vault として選択します。
次のオプションを選択します。
- 新しい Azure Key Vault 値参照 を選択します。 次のステップで情報を追加して保存した後、環境変数 value レコードが作成されます。
- 既定値を表示 を展開し、フィールドを表示して、既定の Azure Key Vault シークレット を作成します。 次のステップで情報を追加して保存した後、環境変数 definition レコードに既定値境界線が追加されます。
次の情報を入力してください。
- Azure サブスクリプション ID: キー ボールトに関連付けられている Azure サブスクリプション ID。
- リソース グループ名: シークレットを含むキー ボールトが配置されている Azure リソース グループ。
- Azure Key Valut 名: シークレットを含む Key Vault の名前です。
- シークレット名: Azure Key Vault フィールドにあるシークレットの名前。
ヒント
サブスクリプション ID、リソース グループ名、およびキー ボールト名は、キー ボールトの Azure ポータルの 概要 ページに表示されています。 シークレット名は、設定 の下で シークレット を選択することにより、Azure ポータルのキー ボールト ページに確認できます。
保存 を選びます。
注意
シークレットのユーザー アクセス検証はバックグラウンドで実行されます。 ユーザーに少なくとも読み取り権限がない場合、次の検証エラーが表示されます。この変数は正しく保存されませんでした。ユーザーは、「Azure Key Vault パス」からシークレットを読み取ることを許可されていません。
現在、Azure Key Vault は、環境変数でサポートされている唯一のシークレット ストアです。
Power Automate フローを作成して、環境変数シークレットをテストする
Azure Key Vault から取得したシークレットを使用する方法を示す簡単なシナリオは、シークレットを使用する Power Automate フローを作成して Web サービスに対して認証を行うことです。
注意
この例の Web サービス の URL は、機能している Web サービスではありません。
PowerApps にサインインして、ソリューション を選択し、必要なアンマネージド ソリューションを選択します。
新しい > オートメーション > クラウド フロー > インスタント を選択します。
フローの名前を入力して、手動でフローをトリガーします を選択してから、作成 を選択します。
新しいステップ を選択し、Microsoft Dataverse コネクタを選択してから、行動 タブで バインドされていないアクションを実行する を選択します。
ドロップダウン リストから RetrieveEnvironmentVariableSecretValue という名前の付いたアクションを選択します。
前のセクションで追加した環境変数の一意の名前 (表示名ではない) を指定します。この例では、new_TestSecret が使用されています。
..。 > 名前を変更 を選択して、次のアクションでより簡単に参照できるように、アクションの名前を変更します。 以下のスクリーンショットでは、名前が GetSecret に変更されています。
..。 > 設定 を選択して、GetSecret アクション設定を表示します。
設定で 安全な出力 オプションを有効にしてから、完了 を選択します。 これは、アクションの出力がフロー実行履歴に公開されるのを防ぐためです。
新しいステップ を選択してから、HTTP コネクタを検索して選択します。
方法 には GET を選択して、Web サービスの URI を入力します。 この例では、架空の Web サービス httpbin.org が使用されています。
高度なオプションを表示 を選択してから、認証 に 基本 を選択してから、ユーザー名 を入力します。
パスワード フィールドを選択してから、上記のフローステップ名の下の 動的コンテンツ タブ (この例では GetSecret) で、RetrieveEnvironmentVariableSecretValueResponse EnvironmentVariableSecretValue を選択します。これはよく、
outputs('GetSecretTest')?['body/EnvironmentVariableSecretValue']またはbody('GetSecretTest')['EnvironmentVariableSecretValue']式として追加されます。
保存 を選択してフローを作成します。
主導でフローを実行してそれをテストします。
フローの実行履歴を使用して、出力を検証できます。
現在の制限
- SharePoint オンラインは現在、キャンバス アプリ内の "データ ソース" の種類の環境変数でサポートされている唯一のデータ ソースです。 ただし、Dataverse コネクタは、現在の環境以外の Dataverse 環境で接続が必要な場合に備えて、まもなく更新されます。 他の種類の環境変数は、Dataverse 接続を使ってデータを記録する場合と同様に取得することによりキャンバス アプリ内で使用できます。
- キャンバスアプリの SharePoint データ ソース パラメータを保存するために環境変数を使用している場合、必ず 表示名 (論理名または ID の代わりに) "ルックアップ" または "個人またはグループ" の列タイプを使用してください。
- ソリューションのインポートなどの ALM 操作ではなく、環境変数値が環境内で直接変更された場合、フローは、フローが保存されるか、または無効になり再度有効になるまで、前の値を引き続き使用します。
- 環境変数値の検証は、ユーザー インターフェイス内およびそれらを使用するコンポーネント内で行われますが、Dataverse 内では行われません。 そのため、コードで変更する場合は、適切な値が設定されていることを確認してください。
- Power Platform Build Tools のタスク は、データ ソース環境変数の管理ではまだ使用できません。 ただし、これにより、Microsoft が提供するツール内およびソース管理システム内での使用がブロックされることはありません。
- カスタム コードを使用して環境変数を操作するには、値をフェッチするための API 呼び出しが必要です。サードパーティのコードが活用するために公開されているキャッシュはありません。
- クラウド フローを編集する場合、動的コンテンツ セレクターに表示される環境変数はフィルター処理されませんが、将来はデータ型によってフィルター処理されます。
- クラウド フローを編集する時に、環境変数が別のブラウザー タブに追加される場合、フロー デザイナーでフローを再オープンして、動的コンテンツ セレクターを最新の情報に更新する必要があります。
よく寄せられる質問
環境変数が使用されている場所を確認するにはどうすればよいですか?
コンポーネントの作成中、ソリューション インターフェイスで 依存関係を表示する を選択することにより、またはソース管理およびソリューション ファイルで、アプリまたはフローのメタデータを表示することにより実行できます。
データ ソース環境変数は接続と同じですか?
いいえ。 しかし関連しています。 接続は、コネクタと対話するために必要な資格情報または認証を表します。 データ ソース環境変数は、コネクタの 1 つ以上のアクションに必要なパラメーターを格納し、これらのパラメーターは、多くの場合アクションによって異なります。 たとえば、SharePoint オンライン接続では、サイト、リスト、またはドキュメント ライブラリに関する情報は保存されません。 そのため、コネクタを呼び出すには、有効な接続およびいくつかの追加パラメーターの両方が必要です。
データ ソース環境変数は、SQL 認証を使用する SQL Server などの共有される接続で使用できますか?
通常はできません。 SQL Server との共有接続には、接続内のデータに接続するために必要なパラメーターが格納されます。 たとえば、サーバー名およびデータベース名は接続の作成時に提供されるため、常に接続から派生します。
データ ソース環境変数は、パラメーターが接続から派生できないため、Azure Active Directory などのユーザー ベースの認証に依存するコネクタに使用されます。 これらの理由により、共有接続である SQL Server による認証は、データ ソース環境変数を使用していません。
自動化された ALM パイプラインでは、異なる環境に異なる値ファイルを使用できますか?
はい。 ソリューション パッケージャーはファイル名を入力パラメーターとして受け入れるため、実行される環境の種類に応じて、パイプラインはソリューションに異なる値のファイルをパックできます。
誰かが誤って値を削除した場合はどうなるでしょうか?
依存関係システムによってまだ防止されていない場合、ランタイムは最後の既知の値をフォールバックとして使用します。
値が変更された場合、新しい値はいつキャンバス アプリおよびクラウド フローで使用されますか?
キャンバス アプリの場合、新しい値は次のセッションで使用されます。 たとえば、アプリを閉じてからもう一度再生します。
クラウド フローについては、更新された値を使用するために、フローを現在非アクティブ化して再度アクティブ化する必要があります。
プレミアム ライセンスが必要ですか?
いいえ。 ALM は Dataverse (または Dynamics 365 for Customer Engagement) を必要としますが、プレミアム コネクタの使用は必要ありません。 1 つの注意事項は、Dataverse コネクタを使用して、アカウントまたは取引先担当者などの他のデータ レコードと同じように環境変数と対話する場合です。 以前は、これがキャンバス アプリおよびフローで環境変数を使用する唯一の方法でした。
使用できる環境変数の数に制限がありますか?
いいえ。 ただし、ソリューションの最大サイズは 32 MB です。 ソリューションの作成を参照してください
環境変数の表示名および説明をローカライズできますか?
はい。
カスタム テーブルに構成データを保存する代わりに環境変数を使用する必要がありますか?
構成データがリレーショナルでない場合は、必要があります。 環境変数は、キーと値のペアに使用する必要があり、値が他の環境で異なる必要があるときに使用する必要があります。 構成移行ユーティリティなどの他のツールは、カスタム テーブル内のリレーショナル構成格納データの移行に適しています。 他の構成データとは異なり、環境変数はソリューション内で移行されるため、管理がはるかに簡単で、インポートするパフォーマンスが向上します。
環境変数から値を削除するにはどうすればよいですか?
ソリューションをエクスポートする前に、ソリューションから環境変数の値を削除することをお勧めします。 その後、既存の値は開発環境に残りますが、ソリューションにはエクスポートされません。 このアプローチにより、ソリューションを別の環境にインポートしながら、新しい値を提供できます。
値を削除するには、次のステップを実行します。
- 環境変数が配置されているソリューションで、環境変数を選択してプロパティを表示します。
- 現在の値 で、... > このソリューションから削除 を選択します。
カスタム コネクタで環境変数を使用できますか ?
参照
Power Apps ブログ: プレビューで利用可能な環境変数! EnvironmentVariableDefinition テーブル/エンティティ参照 Web API サンプル Dataverse を使用してゼロからキャンバス アプリを作成する Dataverse でフローを作成する カスタム コネクタでサポートされている環境変数
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
フィードバックの送信と表示