共用方式為


多租用戶和 Azure 應用程式組態

Azure 應用程式組態可讓您儲存應用程式的組態。 透過使用 Azure 應用程式組態,您可以輕鬆實作外部組態儲存模式。 在本文中,我們介紹了在使用多租用戶系統時,一些實用的 Azure 應用程式組態功能,並提供如何在多租用戶解決方案中使用 Azure 應用程式組態的指南和範例連結。

隔離模型

存放區是指 Azure 應用程式組態服務的單一執行個體。

在多租用戶解決方案中,通常有兩種類型的設定:

  • 共用設定適用於多個租用戶,例如全域設定或適用於部署戳記中所有租用戶的設定。 全域設定通常最好儲存在共用應用程式組態存放區中。 透過此方法,您可以最大限度地減少設定值變更時,需要更新的位置數量。 這種方法還可以最大限度地降低設定不同步的風險。

  • 特定租用戶的設定,例如每個租用戶的資料庫名稱或內部識別碼。 或者,您可能希望為每個租用戶指定不同的記錄等級,例如當您診斷特定租用戶報告的問題,並且需要從該租用戶收集診斷記錄時。 您可以選擇將多個租用戶的特定租用戶的設定合併到一個存放區中,或為每個租用戶部署一個獨立的存放區。 應根據您的需求來做出此決定。 如果您的解決方案為多個租用戶使用單一共用應用程式層,那麼使用特定租用戶存放區可能幫助不大。 但如果您部署了特定租用戶的應用程式執行個體,您可能會選擇採用相同的方法,部署特定租用戶組態存放區。

以下表格總結了 Azure 應用程式組態主要租用戶隔離模型之間的差異:

考量 共用存放區 每個租用戶的存放區
資料隔離 低。 使用索引鍵前置詞或標籤來識別每個租用戶的資料
效能隔離
部署複雜度 中高
操作複雜度 中高
資源成本 中高
案例範例 具有共用應用程式層的大型多租用戶解決方案 具有完全隔離部署的進階層租用戶

共用存放區

您可以為整個解決方案部署一個共用的 Azure 應用程式組態存放區,也可以為每個戳記都部署一個存放區。 然後,您可以為所有租用戶的設定使用相同的存放區,並使用索引鍵前置詞標籤來區分它們。

如果您需要為每個租用戶儲存大量資料,或者需要擴展到大量租用戶,則可能會面臨超出單一存放區資源限制的風險。 在這種情況下,請考慮是否可以將租用戶分到一組共用存放區中,以將部署和管理成本降至最低。

如果您採用此方法,請確保您了解適用的資源配額和限制。 特別要注意您所用服務層級的總儲存限制,並確保不會超過每小時的最大要求數。

每個租用戶的存放區

您可以選擇為每個租用戶部署一個 Azure 應用程式組態存放區。 Azure 應用程式組態標準層可讓您在訂閱中部署無限數量的存放區。 但這種方法管理起來通常比較複雜,因為您必須部署和設定更多資源。 您部署的每個存放區資源也會產生相應的費用

如果您遇到以下情況,請考慮使用特定租用戶存放區:

  • 您需要使用客戶自控加密索引鍵,並且每個租用戶的索引鍵是獨立的。
  • 您的租用戶要求其組態資料需與其他租用戶的資料完全隔離。 Azure 應用程式組態的存取權在存放區層級進行控制,因此透過部署獨立的存放區,可以設定獨個別的存取權。

支援多租用戶的 Azure 應用程式組態功能

在多租用戶應用程式中使用 Azure 應用程式組態時,可以使用多種功能來儲存和擷取特定租用戶的設定。

索引鍵前置詞

在 Azure 應用程式組態中,您可以使用代表應用程式設定的索引鍵/值組。 索引鍵代表組態設定的名稱。 您可以對索引鍵使用階層式命名結構。 在多租用戶解決方案中,請考慮使用租用戶識別碼作為索引鍵的前置詞。

例如,假設您需要儲存一個設定來指示應用程式的記錄等級。 在單一租用戶解決方案中,您可以將此設定命名為 LogLevel。 在多租用戶解決方案中,您可以選擇使用階層式索引鍵名稱,例如租用戶 1 為 tenant1/LogLevel,租用戶 2 為 tenant2/LogLevel,依此類推。

Azure 應用程式組態可讓您指定長索引鍵名稱,以支援階層中的多個層級。 如果您選擇使用長索引鍵名稱,請確保您了解索引鍵和值的大小限制

當您將單一租用戶的組態載入到應用程式中時,您可以指定索引鍵前置詞篩選器,以僅載入該租用戶的索引鍵。 您也可以設定 Azure 應用程式組態的提供者庫,以在將索引鍵提供給您的應用程式之前修剪索引鍵前置詞。 當您修剪索引鍵前置詞時,您的應用程式會看到一致的索引鍵名稱,並將該租用戶的值載入到應用程式中。

標籤

Azure 應用程式組態還支援標籤,使您能夠使用相同的鍵擁有不同的值。

標籤通常用於版本控制、使用多個部署環境,或用於解決方案中的其他目的。 雖然您可以使用租用戶識別碼作為標籤,但您將無法將標籤用於其他用途。 因此,對於多租用戶解決方案,通常最好使用索引鍵前置詞來管理特定租用戶的設定,並將標籤用於其他目的。

如果您決定為每個租用戶使用標籤,您的應用程式可以使用標籤篩選器僅載入特定租用戶的設定。 如果您為每個租用戶部署單獨的應用程式,則此方法會很有幫助。

應用程式端快取

使用 Azure 應用程式組態時,在應用程式中快取設定非常重要,而不是在每次使用時載入它們。 Azure 應用程式組態提供者庫快取設定並自動重新整理。

您還需要決定您的應用程式是載入單一租用戶還是所有租用戶的設定。

隨著租用戶數量的增長,一次載入所有租用戶的設定所需的時間和記憶體量可能會增加。 因此,在大多數情況下,當應用程式需要時,分別載入每個租用戶的設定是一個很好的做法。

如果單獨載入每個租用戶的組態設定,您的應用程式需要將每組設定與其他任何設定分開快取。 在 .NET 應用程式中,考慮使用記憶體快取來快取租用戶的 IConfiguration 物件,然後使用租用戶識別碼作為快取索引鍵。 透過使用記憶體快取,您無需在每次要求時重新載入設定,但如果您的應用程式面臨記憶體壓力,快取可以移除未使用的執行個體。 您也可以為每個租用戶的組態設定過期時間。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

其他投稿人:

若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。

下一步

查看多租用戶的部署和設定方法