Power Platform 的環境變數概觀
環境變數會啟用在 Power Platform 環境中移動應用程式的基本應用程式生命週期管理 (ALM) 案例。 在此案例中,應用程式除了在來源環境與目標環境之間的一些重要外部應用程式參照 (例如,表格、連接和鍵) 不同外,其他保持完全相同。 應用程式需要表格或連接的結構在來源與目標環境之間完全相同,可以有一些區別。 環境變數可讓您指定在應用程式跨環境移動時,應更新哪些不同的外部參照。
環境變數儲存參數索引鍵和值,然後將其作為各種其他應用程式物件的輸入。 將參數與取用物件分開可在同一環境中或將解決方案移轉到其他環境時變更值。 另一種選擇是將硬式編碼的參數值保留在使用它們的元件中。 這通常發發生問題;特別是在 ALM 作業期間需要變更值時。 因為環境變數是解決方案元件,所以當解決方案移轉到其他環境時,您可以傳輸參照 (索引鍵) 並變更值。
注意
資料來源的新功能正在部署中,您所在的地區可能尚無法使用。
使用環境變數的好處:
- 在將解決方案匯入其他環境的同時提供新的參數值。
- 儲存畫布應用程式和流成中使用的資料來源設定。 例如,SharePoint Online 網站和清單參數可儲存為環境變數。因此,您無需修改應用程式和流程,即可連接到不同環境中的不同網站和清單。
- 將您的自訂和設定封裝並傳輸,並在相同的位置進行管理。
- 將密碼 (例如不同元件所使用的認證) 與使用它們的元件分開封裝和傳輸。
- 一個環境變數可以在許多不同的解決方案元件中使用 - 無論它們是相同或不同類型的元件。 例如,畫布應用程式和流程可以使用相同的環境變數。 當環境變數的值需要變更時,只需要變更一個值即可。
- 此外,如果您需要在生產環境中淘汰資料來源,則可使用新資料來源的資訊來更新環境變數值。 應用程式和流程無需修改,並開始使用新資料來源。
- 受 SolutionPackager 支援,而且可以使用 DevOps 工具進行持續整合和連續交付 (CI/CD)。
- 可以解壓縮環境變數並將其儲存在來源控制項中。 您還可以為不同環境中所需的個別設定儲存不同的環境變數值檔案。 然後,解決方案封裝程式就可以接受與要匯入解決方案之環境相應的檔案。
環境變數如何運作?
可以在最新解決方案介面中建立和修改環境變數,在連接到畫布應用程式中的某些資料來源時可以自動建立環境變數,也可以透過使用程式碼進行。 其也可透過解決方案匯入環境中。 一旦環境變數出現在環境中,就可以在製作畫布應用程式和 Power Automate 流程時、在開發外掛程式和其他許多情況 (例如將 Power BI 儀表板新增到模型導向應用程式) 時,使用環境變數作為輸入。 當這些類型的物件使用環境變數時,值將衍生自環境變數,且在將解決方案匯入其他環境時可變更這些值。
在解決方案中建立環境變數
- 登入 Power Apps (make.powerapps.com),然後在左窗格中選取解決方案。 如果此項目不在側邊面板窗格中,請選取 ...其他 ,然後選取您想要的項目。
- 開啟所需的解決方案或建立一個新的解決方案。
- 在命令列上選取新增>其他,然後選取環境變數。
- 在右窗格上完成以下資料行,然後選取儲存:
顯示名稱。 輸入環境變數的名稱。
名稱. 唯一名稱會從顯示名稱自動產生,但是您可加以變更。
資料類型。 從十進位數、文字、JSON、兩個選項、資料來源或密碼中選取。
注意
- 如果選取資料來源類型,則還需選取連接器、所選連接器的有效連線和參數類型 。 但是,此連接並不會作為環境變數的一部分儲存。 此連接只是用來擷取可用的參數值,例如您有權存取的 SharePoint 網站,或是與某一網站相關聯的清單。 對於某些參數,例如 SharePoint 清單,您還需要選擇一個上層資料來源環境變數,例如 SharePoint 網站。 儲存後,其將在資料庫中關聯。
- 如果將類型選取為密碼,則需要配置並設定 Azure Key Vault 的其他資訊,才能讓 Power Platform 存取該密碼。
Current Value。 也稱為值。 此屬性為選擇性,且為環境變數值資料表的一部分。 存在值時,即使預設值也存在,仍會使用值。 如果不希望在下一個環境中使用此值,請從解決方案中移除該值。 這些值還會在匯出的 solution.zip 檔案中分成個別的 JSON 檔案,且可離線編輯。 其他資訊:如何從環境變數移除值?
預設值。 此資料行是環境變數定義表格的一部分,並非必要。 如果沒有目前值,則使用預設值。
預設值和目前值的分別可讓您進行定義,並將預設值與值分開。 例如,應用程式發行者可使用預設值在 AppSource 上列出其供應項目。 然後,客戶可以選擇提供新的值。 當應用程式發行者發佈應用程式的更新時,不會覆寫客戶設定的值。
注意
值沒有定義就無法存在。 此介面只允許每個定義各建立一個值。
匯入解決方案時輸入新的值
最先進的解決方案匯入介面包含為環境變數輸入值的能力。 這會在 environmentvariablevalue
資料表上設定值屬性。
從 2023 年 12 月 7 日的更新開始,匯入解決方案時 (或使用管道來部署時),所有環境變數值都會是可見。 沒有預設值或值的環境變數會被提示要輸入值,但除此之外會在文字區域下方預先填入一個標籤,表示值的來源:解決方案值、目標環境值或預設值。
注意
- 在某些情況下,對於特定的資料來源環境變數值,如果匯入製作者無權存取用於環境變數的連接或來源,則可能會出現存取被拒絕警示。 這是一個非阻塞警示,但是需要注意的事項,具體取決於您計劃在目標環境中使用環境變數的方式。
- 您可以在匯出解決方案之前,從您的解決方案中移除該值。 這樣可以確保現有的值將保留在您的開發環境中,而不會在解決方案中匯出。 這種方法可以在將解決方案匯入其他環境時提供新的值。 其他資訊:如何從環境變數移除值?
通知
當環境變數沒有任何值時,就會顯示通知。 這提醒您設定值,好讓相依於環境變數的元件不會失敗。
安全性
environmentvariabledefinition
資料表是使用者或團隊所擁有的。 建立使用環境變數的應用程式時,請務必為使用者指派此資料表適當等級的權限。 對 environmentvariablevalue
資料表的權限是從其上層 environmentvariabledefinition
資料表繼承的,因此不需要單獨的權限。 environmentvariabledefinition
資料表的權限預設包含在「環境製作者」和「基本使用者資訊安全角色」。 其他資訊:Dataverse 中的安全性。
命名
請確定環境變數名稱是唯一的,如此才能準確地參考它們。 重複的環境變數顯示名稱會讓環境變數難以區分和使用。 請確定環境變數名稱是唯一的,如此才能準確地參考它們。 名稱 $authentication 和 $connection 是專為流程保留的參數,應避免使用。 如果使用具有這些名稱的環境變數,就會封鎖流程儲存。 如果在流程中使用環境變數,且環境變數的顯示名稱已變更,則設計工具將同時顯示舊的和新的顯示名稱權杖,以協助識別。 更新流程時,我們建議您先移除環境變數參考,然後再次新增該參考。
目前的限制
- 環境變數在使用者介面和使用變數的元件內進行驗證,但不在 Dataverse 中驗證。 因此,如果透過程式碼修改值,請確定值設定正確。
- Power Platform Build Tools 工作尚無法用於管理資料源環境變數。 但是,這不會阻礙其在 Microsoft 提供的工具和來源控制項系統中的使用。
- 透過自訂程式碼與環境變數進行互動需要 API 呼叫來擷取值;沒有公開給非 Microsoft 程式碼使用的快取。
- 若要成功將環境變數與 SharePoint 清單搭配使用,來源環境和目標環境中每個對應行的顯示名稱以及邏輯名稱必須相符。
- 環境變數限制為最多 2,000 個字元。
常見問題
為什麼無法看到我的環境變數值?
如果環境變數位於受管理的解決方案中,則除非您查看預設解決方案內部,否則將無法看到該值。 此行為是設計使然,因為環境變數值是非管理的自訂。
如何查看環境變數的使用位置?
在製作元件時於解決方案介面中選取顯示相依性,或透過檢視應用程式或流程中繼資料,在來源控制項和解決方案檔案中選取。
資料來源環境變數是否與連線相同?
否。 雖然它們與一個代表與連接器進行互動所需之認證或驗證的連線有關。 資料來源環境變數儲存連接器中一個或多個動作所需的參數,且這些參數通常會根據動作而有所不同。 例如,SharePoint Online 連線不儲存關於網站、清單或文件庫的任何資訊。 因此,呼叫連接器需要有效的連線和其他參數。
資料來源環境變數可以與共用連線 (例如具有 SQL 驗證的 SQL Server) 一起使用嗎?
一般來說不行。 與 SQL Server 共用的連接會儲存連至連接中資料所需的參數。 例如,在建立連線時會提供伺服器名稱和資料庫名稱,因此總會從該連線衍生。
資料來源環境變數用於依賴使用者型驗證的連接器 (例如 Microsoft Entra ID),因為無法從連線衍生參數。 出於這些原因,使用 SQL Server (共用的連接) 進行的驗證將不會使用資料來源環境變數。
我的自動 ALM 準銷售案源可以在不同的環境中使用不同的值檔案嗎?
可以。 解決方案封裝程式接受檔案名稱作為輸入參數,因此您的準銷售案源可以根據要執行解決方案的環境類型,將不同的值檔案封裝到解決方案中。
我是否應該在我的解決方案中包含該值?
否。 環境變數旨在供在部署解決方案的不同環境中需要具有不同值的應用程式使用。 解決方案中應包含環境變數定義,但應在部署期間為目標環境提供值。 此行為會導致環境變數定義在目標環境中是受管理的解決方案物件,而環境變數是非託管記錄。
為什麼我無法刪除環境中的值?
如果該值包含在受管理的解決方案中,則刪除該值的唯一方法是在源環境更新解決方案以排除該值,然後匯出新版本的解決方案。 然後,可以使用升級操作 (而不是更新) 將此新版本導入到環境中,從而導致值記錄被刪除。
如果有人無意中刪除了值怎麼辦?
如果相依性系統尚未禁止,則執行階段會使用最後一個已知值作為遞補。
如果值已變更,那麼新的值何時會用於畫布應用程式和雲端流程?
完全發佈更新的環境變數可能需要長達一個小時的時間,因為該值會非同步被推播到應用程式和流程。
是否需要進階授權?
否。 雖然 ALM 需要 Dataverse (或 Dynamics 365 應用程式),但不需要使用進階連接器。 但有一點需要注意,您是否使用 Dataverse 連接器來與環境變數進行互動,就像與其他資料記錄 (如客戶或連絡人) 進行互動一樣。 先前只能用這種方法在畫布應用程式和流程中使用環境變數。
我可以擁有的環境變數數量是否有限制?
否。 但解決方案的檔案大小上限為 95 MB。 其他資訊:建立解決方案
環境變數的顯示名稱和描述是否可以當地語系化?
可以。
我該使用環境變數,而不是將設定資料儲存在自訂資料表中嗎?
如果您的設定資料不相關,則使用環境變數。 環境變數應用於索引鍵/值組,和其他環境中可能需要改變值的時候。 其他工具 (如設定移轉公用程式) 更適合移轉自訂資料表中儲存的關聯設定資料。 與其他設定資料不同,環境變數在解決方案中移轉,因此更易於管理,且匯入效率更高。
為什麼我的連線沒有儲存為資料來源環境變數?
連接僅用於生成使用者介面。 例如,擷取與網站關聯的 SharePoint 清單的自訂名稱。 編輯資料來源環境變數時,請務必選擇有權訪問資料來源的連接。 如果您不再有權訪問該連接,則可以手動輸入一個值。 例如,輸入 SharePoint 網站 URL 或清單的唯一識別碼 (GUID)。
當單一 (資料來源類型) 環境變數有多個連線可用時,有一個設計實作可以選擇連線清單中的第一個連線。 因為通常只有一個連線與環境變數有關,因此通常不需要對此進行驗證。 此外,由於最近對環境變數值可見性進行了更改,因此在匯入時更容易驗證這一點。
如何從環境變數移除值?
匯出解決方案之前,您可能會想要從您的解決方案移除環境變數的值。 然後,現有的值將保留在您的開發環境中,但不會匯出到解決方案中。 這種方法可讓您在將解決方案匯入另一個環境時提供新的值。
若要移除此數值,請依照下列步驟操作:
在環境變數所在的解決方案中,選取要顯示內容的環境變數。
在目前數值底下,選取 ...>從此解決方案中移除。
我可以在自訂連接器中使用環境變數嗎?
可以。 自訂連接器支援環境變數
另請參閱
在畫布應用程式中使用資料來源環境變數
在 Power Automate 解決方案雲端流程中使用環境變數
EnvironmentVariableDefinition 表/實體參考
Web API 範例
在畫布應用程式中使用資料來源環境變數
在 Power Automate 解決方案雲端流程中使用環境變數
使用 Azure Key Vault 祕密
自訂連接器中的環境變數支援
Power Apps 部落格:預覽版可使用環境變數!