環境變數概觀

將應用程式部署到不同的環境時,它們通常需要不同的組態設定或輸入參數。 環境變數儲存參數索引鍵和值,然後將其作為各種其他應用程式物件的輸入。 將參數與取用物件分開可在同一環境中或將解決方案移轉到其他環境時變更值。 另一種選擇是將硬式編碼的參數值保留在使用它們的元件中。 這通常發發生問題;特別是在應用程式生命週期管理 (ALM) 作業期間需要變更值時。 因為環境變數是解決方案元件,所以當解決方案移轉到其他環境時,您可以傳輸參照 (索引鍵) 並變更值。

備註

資料來源的新功能正在部署中,您所在的地區可能尚無法使用。

使用環境變數的好處:

  • 在將 解決方案匯入 其他環境的同時提供新的參數值。
  • 儲存畫布應用程式和流成中使用的 資料來源 設定。 例如,SharePoint Online 網站和清單參數可儲存為環境變數。因此,您無需修改應用程式和流程,即可連接到不同環境中的不同網站和清單。
  • 將您的自訂和設定封裝並傳輸,並在相同的位置進行管理。
  • 將密碼 (例如不同元件所使用的認證) 與使用它們的元件分開封裝和傳輸。
  • 一個環境變數可以在許多不同的解決方案元件中使用 - 無論它們是相同或不同類型的元件。 例如,畫布應用程式和流程可以使用相同的環境變數。 當環境變數的值需要變更時,只需要變更一個值即可。
  • 此外,如果您需要在生產環境中淘汰資料來源,則可使用新資料來源的資訊更新環境變數值即可。 應用程式和流程無須修改,並將開始使用新的資料來源。
  • SolutionPackager 支援,而且可以使用 DevOps 工具進行持續整合和連續交付 (CI/CD)。
  • 可以解壓縮環境變數並將其儲存在來源控制項中。 您還可以為不同環境中所需的個別設定儲存不同的環境變數值檔案。 然後,解決方案封裝程式就可以接受與要匯入解決方案之環境相應的檔案。

這些功能如何運作?

可以在最新解決方案介面中建立和修改環境變數,在連接到畫布應用程式中的某些資料來源時可以自動建立環境變數,也可以透過使用程式碼進行。 其也可透過解決方案匯入環境中。 一旦環境變數出現在環境中,就可以在製作畫布應用程式和 Power Automate 流程時、在開發外掛程式時以及其他許多情況 (例如將 Power BI 儀表板新增到模型導向應用程式) 時,將環境變數作為輸入。 當這些類型的物件使用環境變數時,值將衍生自環境變數,且在將解決方案匯入其他環境時可變更這些值。

在解決方案中建立環境變數

  1. 登入 Power Apps (make.powerapps.com),然後在左窗格中選取 解決方案
  2. 開啟所需的解決方案或建立一個新的解決方案。
  3. 在命令列上選取 新增 > 其他,然後選取 環境變數
  4. 在右窗格上完成以下資料行,然後選取 儲存
    • 顯示名稱。 輸入環境變數的名稱。

    • 名稱. 唯一名稱會從 顯示名稱 自動產生,但是您可加以變更。

    • 資料類型。 從 十進位數文字JSON兩個選項資料來源密碼 中選取。

      備註

      • 如果選取 資料來源 類型,則還需選取 連接器、所選連接器的有效 連線參數類型 。 對於某些參數,例如 SharePoint 清單,您還需要選擇一個上層資料來源環境變數,例如 SharePoint 網站。 儲存後,其將在資料庫中關聯。

      • 如果將類型選取為 密碼,則需要配置並設定 Azure Key Vault 的其他資訊,才能讓 Power Platform 存取該密碼。

    • Current Value。 也稱為值。 此屬性為選擇性,且為環境變數值資料表的一部分。 存在值時,即使還存在預設值,也會使用值。 如果不希望在下一個環境中使用此值,請從解決方案中移除該值。 這些值還會在匯出的 solution.zip 檔案中分成個別的 JSON 檔案,且可離線編輯。 其他資訊:如何從環境變數移除值?

    • 預設值。 此資料行是環境變數定義資料表的一部分,並不是必要的。 如果沒有目前值,則使用預設值。

      預設值和目前值的分別可讓您進行定義,並將預設值與值分開。 例如,應用程式發佈者可使用預設值在 AppSource 上列出其供應項目。 然後,客戶可以選擇提供新的值。 當應用程式發佈者發佈應用程式的更新時,不會覆蓋客戶設定的值。

      新增環境變數。

      備註

      值沒有定義就無法存在。 此介面只允許每個定義各建立一個值。

在畫布應用程式中使用資料來源環境變數

使用既有的資料來源環境變數

環境變數可在其他應用程式甚至雲端流程等不同類型的資源之間重複使用。 您可能希望先在解決方案中建立環境變數,然後在製作畫布應用程式和雲端流程時使用它們。

  1. 請按照上述步驟在解決方案中建立環境變數進行。
  2. 從您的解決方案中編輯或建立畫布應用程式。
  3. 為 SharePoint Online 新增 新的 資料來源。
  4. 選取 進階 索引標籤。您將看到可存取且與所設定參數相符的環境變數篩選清單。 例如,當您選取 SharePoint 網站時,您將看到具有 連接器 = SharePoint參數類型 = 網站 的所有資料來源環境變數清單。 為指定網站選取 SharePoint 清單時,也是如此。
  5. 選取所需的環境變數,然後選取 連線

重要

如果選取其他解決方案中的環境變數,則包含該環境變數的解決方案將存在相依性。 因此,請確保執行以下任一作業:

  • 匯出之前,將環境變數新增至目前的解決方案中。
  • 在匯入目前的解決方案前,請確保將包含環境變數的解決方案匯入目標環境。

連接資料時自動建立資料來源環境變數

此選項可簡化作業,並確保環境變數將始終用於資料來源,例如 SharePoint Online。 但是,部分客戶喜歡提供自己的結構描述名稱,因此應從解決方案中建立。

  1. 從您的解決方案中編輯或建立畫布應用程式。
  2. 選取 設定 > 一般,並啟用 新增資料來源時自動建立環境變數 的設定。
  3. 為 SharePoint Online 新增 新的 資料來源。
  4. 選取 SharePoint 網站,一個或多個 清單,然後選取 連線

    備註

    為防止建立重複的環境變數,當發現重複項目時,系統會提示您使用現有的環境變數。 如需建立重複項目,則可以清除選項以使用現有的環境變數。

  5. 選取 儲存

備註

既有的畫布應用程式將不會自動使用資料來源環境變數。 從應用程式中移除資料來源,然後使用上述步驟將它們新增回去,以升級這些應用程式來使用環境變數。

在 Power Automate 解決方案雲端流程中使用環境變數

環境變數可在解決方案雲端流程中使用,因其可在動態內容選取器中使用。 所有類型的環境變數都可以在觸發程序和動作中使用。 若要在解決方案雲端流程中使用環境變數:

  1. 在解決方案中編輯或建立雲端流程。

  2. 在動作或觸發程序中,決定要用於環境變數的參數:

    a. 如果參數採用簡單實值,例如字串或數字,請輸入參數。

    b. 如果參數是查閱,請捲動至查閱的底部,然後選取 輸入自訂值。 您有權存取的環境變數會在動態內容選取器中與其他動態內容一起列出。 選取環境變數以新增至雲端流程觸發程序或動作中。

  3. 選取所需的環境變數。

匯入解決方案時輸入新的值

最先進的解決方案匯入介面包含為環境變數輸入值的能力。 這會在 environmentvariablevalue 資料表上設定值屬性。

備註

您可以在匯出解決方案之前,從您的解決方案中移除該值。 這樣可以確保現有的值將保留在您的開發環境中,而不會在解決方案中匯出。 這種方法可以在將解決方案匯入其他環境時提供新的值。 如果環境變數已經具有預設值或存在值,則系統將 不會 在匯入解決方案時提示您新的值;無論值是解決方案的一部分還是目標環境中已經存在的值。 其他資訊:如何從環境變數移除值?

通知

當環境變數沒有任何值時,就會顯示通知。 這提醒您設定值,好讓相依於環境變數的元件不會失敗。

安全性

environmentvariabledefinition 資料表是使用者或團隊所擁有的。 建立使用環境變數的應用程式時,請務必為使用者指派此資料表適當等級的權限。 對 environmentvariablevalue 資料表的權限是從其上層 environmentvariabledefinition 資料表繼承的,因此不需要單獨的權限。 environmentvariabledefinition 資料表的權限預設包含在「環境製作者」和「基本使用者資訊安全角色」。 其他資訊:Dataverse 中的安全性

命名

請確定環境變數名稱是唯一的,如此才能準確地參考它們。 重複的環境變數顯示名稱會讓環境變數難以區分和使用。 請確定環境變數名稱是唯一的,如此才能準確地參考它們。 名稱 $authentication$connection 是專為流程保留的參數,應避免使用。 如果使用具有這些名稱的環境變數,將會封鎖流程儲存。 如果已在流程中使用環境變數,且環境變數的顯示名稱已變更,則設計工具將同時顯示舊的和新的顯示名稱權杖,以協助識別。 當更新流程時,建議先移除環境變數參考,然後再新增該參考。

使用 Azure Key Vault 密碼 (預覽版)

環境變數可參考儲存在 Azure Key Vault 中的密碼。 這些密碼可用於 Power Platform 元件,例如 Power Automate。 真實密碼只儲存在 Azure Key Vault 中,而環境變數只是參考密碼。 使用 Azure Key Vault 包含環境變數的機密時,需要設定 Azure Key Vault,Power Platform 才能讀取您想要參照的特定機密。

參考密碼的環境變數目前無法從動態內容選擇器中用於流程。

設定 Azure Key Vault

若要將 Azure Key Vault 密碼與 Power Platform 搭配使用,則具有該保存庫的 Azure 訂閱必須註冊 PowerPlatform 資源提供者,且建立環境變數的使用者必須具有 Azure Key Vault 資源的適當權限。

先決條件

  1. 在您的 Azure 訂閱中註冊 Microsoft.PowerPlatform 資源提供者。 請遵循下列步驟來驗證和設定:資源提供者和資源類型

    在 Azure 中註冊 Power Platform 提供者

  2. 建立 Azure Key Vault 保存庫。 考慮針對每個 Power Platform 環境使用不同的保存庫,以最大程度地降低發生缺口時的威脅。 如需詳細資訊,請移至使用 Azure Key Vault 的最佳做法。 如需建立金鑰保存庫的詳細資訊,請移至快速入門 - 使用 Azure 入口網站建立 Azure Key Vault

  3. 建立環境變數的使用者必須具有特定保存庫的讀取權限。 您可以在 Azure 入口網站上,使用 Azure Key Vault 的 存取控制項 > 檢查存取權 索引標籤上的 檢視我們存取權 來確認權限。 如果使用者無法存取保存庫,請透過 Key Vault 讀取器或其他適當的角色,授與此資源的存取權。

    在 Azure 中查看我的存取權

  4. Azure Key Vault 必須為 Dataverse 服務主體設定 取得 密碼存取原則集。 如果此保存庫不存在此項目,請新增存取原則。 選取 新增存取原則,然後將 取得 選取為存取原則。 在 選取主體 旁邊,選取 未選擇,然後搜尋 Dataverse。 選取具有 00000007-0000-0000-c000-000000000000 身分識別的 Dataverse 服務主體,然後選取 新增。 新增之後,存取原則將如下所示。

    取得 Azure 中 Dataverse 安全主體的存取原則

  5. 如果尚未取得,請將密碼新增至新的保存庫。 其他資訊:Azure 快速入門 - 使用 Azure 入口網站設定並從 Key Vault 擷取密碼

為 Key Vault 密碼建立新的環境變數

設定 Azure Key Vault 並在您的保存庫中註冊了密碼後,就可以在 Power Apps 中使用環境變數來參考它。

  1. 登入 Power Apps,然後在 解決方案 區域中,打開要用來開發的未受管理解決方案。

  2. 選取 新增 > 其他 > 環境變數

  3. 為環境變數輸入 顯示名稱描述 (選擇性輸入)。

  4. 資料類型 選取為 密碼秘密存放區 選取為 Azure Key Vault

  5. 從下列選項中選擇:

    • 選取 新的 Azure Key Vault 值參考。 在下一個步驟新增資訊並儲存之後,就會建立環境變數 記錄。
    • 展開 顯示預設值 以顯示欄位,建立 預設 Azure Key Vault 密碼。 在下一個步驟新增資訊並儲存之後,將預設值分界新增至環境變數 定義 記錄中。
  6. 輸入下列資訊:

    • Azure 訂閱識別碼:與金鑰保存庫關聯的 Azure 訂閱識別碼。
    • 資源群組名稱:包含密碼的金鑰保存庫所在的 Azure 資源群組。
    • Azure Key Vault 名稱:包含密碼之金鑰保存庫的名稱。
    • 密碼名稱:位於 Azure Key Vault 中的密碼名稱。

    提示

    訂閱識別碼、資源群組名稱及金鑰保存庫名稱,可在金鑰保存庫的 Azure 入口網站 概觀 頁面中找到。 選取 設定 底下的 密碼,可在 Azure 入口網站的金鑰存放庫頁面上找到金鑰名稱。

  7. 選取 儲存

備註

  • 密碼的使用者存取驗證會在背景執行。 如果使用者不具備讀取權限,則會顯示此驗證錯誤:此變數無法正確儲存。使用者無權從「Azure Key Vault 路徑」讀取密碼。

  • 目前,Azure Key Vault 是環境變數唯一支援的密碼存放區。

建立 Power Automate 流程以測試環境變數密碼

示範如何使用從 Azure Key Vault 取得的密碼簡單案例,就是建立 Power Automate 流程,以使用該密碼來對照 Web 服務進行驗證。

備註

此範例中 Web 服務的 URI 並非可正常運作的 Web 服務。

  1. 登入 PowerApps,選取 解決方案,然後打開您要的未受管理解決方案。

  2. 選取 新增 > 自動化 > 雲端流程 > 即時

  3. 輸入流程的名稱,選取 手動觸發流程,然後選取 建立

  4. 選取 新增步驟,選取 Microsoft Dataverse 連接器,然後按一下 動作 索引標籤上的 執行未繫結動作

  5. 從下拉式清單中選取名為 RetrieveEnvironmentVariableSecretValue 的動作。

  6. 提供上一節中新增的環境變數唯一名稱 (不是顯示名稱),在此範例中是使用 new_TestSecret

  7. 選取 ... > 重新命名 以重新命名動作,以便在下一個動作中能更輕鬆地參考它。 在下方的螢幕擷取畫面中,已將其重新命名為 GetSecret

    測試環境變數密碼的即時流程設定

  8. 選取 ... > 設定,以顯示 GetSecret 動作設定。

  9. 在 [設定] 中啟用 安全輸出 選項,然後選取 完成。 這是為了防止動作輸出暴露在流程執行歷程記錄中。

    啟用動作的安全輸出設定

  10. 選取 新增步驟,搜尋並選取 HTTP 連接器。

  11. 方法 選取為 取得,並輸入 Web 服務的 URI。 在此範例中,使用虛構的 Web 服務 httpbin.org

  12. 選取 顯示進階選項,將 驗證 選取為 基本,然後輸入 使用者名稱

  13. 選取 密碼 欄位,然後在上述流程步驟名稱底下的 動態內容 索引標籤 (在此範例為 GetSecret) 選取 RetrieveEnvironmentVariableSecretValueResponse EnvironmentVariableSecretValue,然後將其新增為運算式 outputs('GetSecretTest')?['body/EnvironmentVariableSecretValue']body('GetSecretTest')['EnvironmentVariableSecretValue']

    使用 HTTP 連接器建立新的步驟

  14. 選取 儲存 以建立流程。

  15. 手動執行流程以測試它。

使用流程的執行歷程記錄,可以驗證輸出。

流程輸出

目前的限制

  • 目前,SharePoint Online 是畫布應用程式中唯一支援「資料來源」類型環境變數的資料來源。 但是,當需要連接至目前環境以外的 Dataverse 環境時,會立即更新 Dataverse 連接器。 可透過在畫布應用程式中擷取其他類型的環境變數來使用它們,就像透過 Dataverse 連接記錄資料一樣。
  • 如果您使用環境變數來儲存畫布應用程式中的 SharePoint 資料來源參數,請確認在使用「查詢」或「個人或群組」資料行類型時,您使用 顯示名稱 (而不是邏輯名稱或識別碼)。
  • 當直接在環境中變更環境變數值而不是透過 ALM 作業來變更 (如匯入解決方案) 時,流程將繼續使用先前的值,直到該流程儲存或關閉並再次開啟。
  • 環境變數在使用者介面和使用變數的元件內進行驗證,但不在 Dataverse 中驗證。 因此,如果透過程式碼修改值,請確定值設定正確。
  • Power Platform Build Tools 工作尚無法用於管理資料源環境變數。 但是,這不會阻礙其在 Microsoft 提供的工具和來源控制項系統中的使用。
  • 透過自訂程式碼與環境變數進行互動需要 API 呼叫來擷取值;沒有公開給第三方程式碼使用的快取。
  • 編輯雲端流程時,動態內容選取器中顯示的環境變數未經過篩選,但將來會依資料類型篩選。
  • 編輯雲端流程時,如果在其他瀏覽器索引標籤中新增了環境變數,則需要在流程設計工具中重新開啟該流程以重新整理動態內容選取器。

常見問題

如何查看環境變數的使用位置?

在製作元件時於解決方案介面中選取 顯示相依性,或透過檢視應用程式或流程中繼資料,在來源控制項和解決方案檔案中選取。

資料來源環境變數是否與連線相同?

否。 但它們是相關的。 連線表示與連接器進行互動所需的認證或驗證。 資料來源環境變數儲存連接器中一個或多個動作所需的參數,且這些參數通常會根據動作而有所不同。 例如,SharePoint Online 連線不儲存關於網站、清單或文件庫的任何資訊。 因此,呼叫連接器需要有效的連線以及其他參數。

資料來源環境變數可以與共用連線 (例如具有 SQL 驗證的 SQL Server) 一起使用嗎?

一般來說不行。 與 SQL Server 共用的連接會儲存連至連接中資料所需的參數。 例如,在建立連線時會提供伺服器名稱和資料庫名稱,因此總會從該連線衍生。

資料來源環境變數用於使用者驗證式連接器 (例如 Azure Active Directory),因為無法從連線衍生參數。 出於這些原因,使用 SQL Server (共用的連接) 進行的驗證將不會使用資料來源環境變數。

我的自動 ALM 準銷售案源可以在不同的環境中使用不同的值檔案嗎?

可以。 解決方案封裝程式接受檔案名稱作為輸入參數,因此您的準銷售案源可以根據要執行解決方案的環境類型,將不同的值檔案封裝到解決方案中。

如果有人無意中刪除了值怎麼辦?

如果相依性系統尚未禁止,則執行階段將使用最後一個已知值作為遞補。

如果值已變更,那麼新的值何時會用於畫布應用程式和雲端流程?

如果是畫布應用程式,新的值將在下一個工作階段期間使用。 例如,關閉應用程式,然後再次開啟。

如果是雲端流程,必須先停用再重新啟用流程,才能使用更新後的值。

是否需要進階授權?

否。 雖然 ALM 需要 Dataverse(或 Dynamics 365 for Customer Engagement),但不需要使用進階連接器。 但有一點需要注意,您是否使用 Dataverse 連接器來與環境變數進行互動,就像與其他資料記錄 (如客戶或連絡人) 進行互動一樣。 先前只能用這種方法在畫布應用程式和流程中使用環境變數。

我可以擁有的環境變數數量是否有限制?

沒有。 但解決方案的檔案大小上限為 32 MB。 請參閱建立解決方案

環境變數的顯示名稱和描述是否可以當地語系化?

可以。

我該使用環境變數,而不是將設定資料儲存在自訂資料表中嗎?

如果您的設定資料不相關,則使用環境變數。 環境變數應用於索引鍵/值組,和其他環境中可能需要改變值的時候。 其他工具 (如設定移轉公用程式) 更適合移轉自訂資料表中儲存的關聯設定資料。 與其他設定資料不同,環境變數在解決方案中移轉,因此更易於管理,且匯入效率更高。

如何從環境變數移除值?

匯出解決方案之前,您可能會想要從您的解決方案移除環境變數的值。 然後,現有的值將保留在您的開發環境中,但不會匯出到解決方案中。 這種方法可讓您在將解決方案匯入另一個環境時提供新的值。

若要移除此數值,請依照下列步驟操作:

  1. 在環境變數所在的解決方案中,選取要顯示內容的環境變數。
  2. 目前數值 底下,選取 ... > 從此解決方案中移除 從環境變數移除數值

我可以在自訂連接器中使用環境變數嗎?

可以。 自訂連接器支援環境變數

請參閱

Power Apps 部落格:預覽版中可用的環境變數!
EnvironmentVariableDefinition 資料表/實體參考
Web API 範例
使用 Dataverse 從頭開始建立畫布應用程式。
使用 Dataverse 建立流程
自訂連接器支援環境變數

備註

是否能請您告知您偏好的慣用文件語言? 請填寫問卷。 (請注意,本問卷為英文版)

完成問卷大約需要七分鐘。 本問卷將不會收集個人資料 (隱私權聲明)。