共用方式為


Power Platform 的環境變數概觀

環境變數會啟用在 Power Platform 環境中移動應用程式的基本應用程式生命週期管理 (ALM) 案例。 在此案例中,應用程式除了在來源環境與目標環境之間的一些重要外部應用程式參照 (例如,表格、連接和鍵) 不同外,其他保持完全相同。 應用程式需要表格或連接的結構在來源與目標環境之間完全相同,可以有一些區別。 環境變數可讓您指定在應用程式跨環境移動時,應更新哪些不同的外部參照。

環境變數儲存參數索引鍵和值,然後將其作為各種其他應用程式物件的輸入。 將參數與取用物件分開可在同一環境中或將解決方案移轉到其他環境時變更值。 另一種選擇是將硬式編碼的參數值保留在使用它們的元件中。 這種方法常常會出現問題;尤其是在 ALM 操作期間需要改變值時。 因為環境變數是解決方案元件,所以當解決方案移轉到其他環境時,您可以傳輸參照 (索引鍵) 並變更值。

使用環境變數的好處:

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

環境變數如何運作?

可以在現代解決方案介面內建立和修改環境變數。 當連接到畫布應用程式中的某些資料來源或使用程式碼時,它們也可以自動建立。 其也可透過解決方案匯入環境中。 在製作畫布應用程式、Power Automate 流程、外掛程式以及在模型導向應用程式上新增 Power BI 儀表板時,環境變數可用作輸入。 當您使用環境變數時,這些值將從環境變數中派生而來,並且可以在將解決方案匯入到其他環境時進行變更。

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

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

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

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

      注意

      • 如果選定的類型為資料來源,則需要選擇連接器、選定連接器的有效連接,以及參數類型。 此連線不會儲存為環境變數的一部分。 環境變數儲存了連接 Power Apps 到正確伺服器和資料表所需的資訊,而不是儲存在連接中。 此連接只是用來擷取可用的參數值,例如您有權存取的 SharePoint 網站,或是與某一網站相關聯的清單。
      • 如果將類型選取為密碼,則需要配置並設定 Azure Key Vault 的其他資訊,才能讓 Power Platform 存取該密碼。
    • Current Value。 也稱為值。 此屬性為選擇性,且為環境變數值資料表的一部分。 即使存在預設值,也會使用定義的值。 如果不希望在下一個環境中使用此值,請從解決方案中移除該值。 這些值還會在匯出的 solution.zip 檔案中分成個別的 JSON 檔案,且可離線編輯。 其他資訊:如何從環境變數移除值?

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

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

      新增環境變數。

      注意

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

Power Apps 可以自動建立環境變數

在 Power Apps 設定的一般索引標籤上:

  • 啟用新增資料來源時自動建立環境變數選項。 現在,當您為應用程式新增新的資料來源時,它會為您新增一個環境變數。

    自動建立環境變數。

不同的資料來源

不同的資料來源啟用不同類型的環境變數。

Microsoft Dataverse

Power Apps 原生連接至 Dataverse。 您目前環境中的資料表不需要環境變數。 當您連接到 Dataverse 時,您的應用程式會在您移植它的任何環境中自動尋找完全相同的資料表名稱。 只要您的資料表名稱結構在目標環境中與在原始環境中相同,它就可以起作用。

如果您使用來自不同環境的外部資料表 (透過變更環境),那麼 Power Apps 假定您希望始終參考完全相同的資料表。 如果您需要從開發環境轉移到測試環境或實際執行環境時該外部資料表成為不同的外部資料表,那麼您需要一個環境變數。最簡單的方法是讓 Power Apps 自動為您建立環境變數。 (如果您之前已將資料表新增到應用程式,請打開設定開關,刪除外部資料表,再將其新增回來。)

將外部資料表新增至應用程式時,選擇進階索引標籤,然後選擇環境變數。

外部環境 Dataverse 環境變數。

SharePoint

SharePoint 僅支援 Microsoft Entra 連線。 因此,對於 SharePoint,除了有效的連線之外,還需要為網站和清單提供單獨的環境變數。

若要成功地將環境變數與 SharePoint 清單一起使用,請執行下列操作:

  • 來源環境和目標環境中每個對應資料行的顯示名稱和邏輯名稱必須相符。
  • SharePoint 的環境變數必須具有匹配的中繼資料。 SharePoint 具有內部識別符,可能與目標環境不符。 例如,如果您在目標環境中建立具有相同名稱和資料行的清單,則內部名稱將不符。 如果您複製 SharePoint 網站並將其複製到目標環境,則中繼資料始終相符。

SQL 伺服器

SQL Server 支援多種不同類型的驗證和連線。 使用環境變數進行 Microsoft Entra 連線。 伺服器和資料庫需要單獨的環境變數。 該應用程式繫結到特定的資料表名稱,因此假定它們在環境之間是相同的。

不要對共用連線 (例如 SQL Server 的基本 SQL 驗證) 使用環境變數。 使用連線參考來獲取傳統上作為連接字串的一部分傳遞的資訊。 基本 SQL 驗證參數都是連接字串的一部分。 例如,在建立連線時會提供伺服器名稱和資料庫名稱,因此總會從該連線衍生。

資料來源環境變數用於具有驗證的連接器,如 Microsoft Entra。 在這些類型的連線中,Power Apps 僅有一個已識別的使用者。 Power Apps 無法從連線中得出您想要使用的服務或資料表。

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

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

匯入解決方案或使用管線部署時,環境變數值是可見的。 沒有預設值或值提示的環境變數,但在其他情況下,會在文字區域下方預先填入一個標籤,表示值的來源:解決方案值、目標環境值或預設值。

在匯入解決方案期間,環境變數的可見性。

注意

  • 在某些情況下,對於特定資料來源環境變數值,如果匯入製作者無權存取用於環境變數的連線或來源,則可能會出現存取遭拒警告。 這是一個非封鎖警告,但需要注意的是,這取決於您計劃如何在目標環境中使用環境變數。
  • 您可以在匯出解決方案之前從解決方案中刪除該值。 這可確保現有值保留在您的開發環境中,但不會在解決方案中匯出。 這種方法可以在將解決方案匯入其他環境時提供新的值。 其他資訊:如何從環境變數移除值?

通知

當環境變數沒有任何值時,就會顯示通知。 設定這些值,以便相依性環境變數的元件不會失敗。

安全性

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

命名

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

目前的限制

  • 環境變數在使用者介面和使用變數的元件內進行驗證,但不在 Dataverse 中驗證。 因此,如果透過程式碼修改值,請確定值設定正確。
  • Power Platform Build Tools 工作尚無法用於管理資料源環境變數。 但是,這不會阻礙其在 Microsoft 提供的工具和來源控制項系統中的使用。
  • 透過自訂程式碼與環境變數進行互動需要 API 呼叫來擷取值;沒有公開給非 Microsoft 程式碼使用的快取。
  • 環境變數限制為最多 2,000 個字元。

常見問題

為什麼無法看到我的環境變數值?

如果環境變數位於受管理的解決方案中,則除非您查看預設解決方案內部,否則將無法看到該值。 此行為是設計使然,因為環境變數值是非管理的自訂。

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

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

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

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

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

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

我應該將這個值包含在我的解決方案中嗎?

否。 環境變數旨在供需要在部署解決方案的不同環境中具有不同值的應用程式使用。 環境變數定義應包含在您的解決方案中,但應在部署期間為目標環境提供值。 此行為導致環境變數定義成為目標環境中的受控解決方案對象,而環境變數是非受控記錄。

為什麼我無法刪除環境中的值?

如果該值包含在受控解決方案中,則刪除該值的唯一方法是更新來源環境中的解決方案以排除該值,然後匯出該解決方案的新版本。 然後可以使用升級操作 (而不是更新) 將該新版本匯入到環境中,從而導致值記錄被刪除。

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

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

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

完全發佈更新的環境變數可能需要長達一個小時的時間,因為該值會非同步被推播到應用程式和流程。

是否需要進階授權?

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

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

否。 但解決方案的檔案大小上限為 95 MB。 其他資訊:建立解決方案

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

可以。

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

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

為什麼我的連線沒有儲存為資料來源環境變數?

連接僅用於生成使用者介面。 例如,擷取與網站關聯的 SharePoint 清單的自訂名稱。 編輯資料來源環境變數時,請務必選擇有權存取資料來源的連線。 如果您無法再存取該連接,您可以手動輸入一個值。 例如,輸入 SharePoint 網站 URL 或清單的唯一識別碼 (GUID)。

當單一 (資料來源類型) 環境變數有多個連線可用時,有一個設計實作可以選擇連線清單中的第一個連線。 因為通常只有一個連線與環境變數有關,因此通常不需要對此進行驗證。 此外,由於最近對環境變數值可見性進行了更改,因此在匯入時更容易驗證這一點。

如何從環境變數移除值?

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

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

  1. 在環境變數所在的解決方案中,選取要顯示內容的環境變數。

  2. 目前數值底下,選取 ...>從此解決方案中移除

    從環境變數移除數值

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

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

另請參閱

在畫布應用程式中使用資料來源環境變數
在 Power Automate 解決方案雲端流程中使用環境變數
EnvironmentVariableDefinition 表/實體參考
Web API 範例
在畫布應用程式中使用資料來源環境變數
在 Power Automate 解決方案雲端流程中使用環境變數
使用 Azure Key Vault 祕密
自訂連接器中的環境變數支援
Power Apps 部落格:預覽版可使用環境變數!