Share via


使用應用程式群組控管用戶端應用程式的資源

Azure 事件中樞可讓您使用應用程式群組,針對連線到事件中樞的用戶端應用程式,控管事件串流工作負載。 如需詳細資訊,請參閱使用應用程式群組的資源控管

本文章將說明如何執行下列工作:

  • 建立應用程式群組。
  • 啟用或停用應用程式群組
  • 定義閾值限制,並將節流原則套用至應用程式群組
  • 使用診斷記錄驗證節流

注意

應用程式群組僅適用於進階專用層。

建立應用程式群組

本節說明如何使用 Azure 入口網站、CLI、PowerShell 和 Azure Resource Manager (ARM) 範本來建立應用程式群組。

您可以遵循下列步驟,使用 Azure 入口網站來建立應用程式群組。

  1. 瀏覽至事件中樞命名空間。

  2. 在左側功能表上,選取 [設定] 底下的 [應用程式群組]

  3. 在 [應用程式群組] 頁面上,選取命令列上的 [+應用程式群組]

    Screenshot of the Application Groups page in the Azure portal.

  4. 在 [新增應用程式群組] 頁面上,按照下列步驟:

    1. 指定應用程式群組的 [名稱]

    2. 確認已選取 [啟用]。 若要先讓應用程式群組處於停用狀態,請清除 [已啟用] 選項。 該旗標可決定應用程式群組的用戶端是否可以存取事件中樞。

    3. 針對 [安全性內容類型],選取 [命名空間共用存取原則]、[事件中樞共用存取原則] 或 [Microsoft Entra 應用程式]。應用程式群組支援在命名空間或實體 (事件中樞) 層級選取 SAS 金鑰。 建立應用程式群組時,應該為群組與用戶端應用程式所使用的共用存取簽章 (SAS) 或 Microsoft Entra 應用程式識別碼建立關聯。

    4. 如果您選取 [命名空間共用存取原則]

      1. 針對 [SAS 金鑰名稱],選取可作為此應用程式群組安全性內容的 SAS 原則。您可以選取 [新增 SAS 原則] 來新增原則,然後與應用程式群組建立關聯。

        Screenshot of the Add application group page with Namespace Shared access policy option selected.

    5. 如果您選取 [事件中樞共用存取原則]

      1. 針對 [SAS 金鑰名稱],從事件中樞的 [共用存取原則] 頁面複製 SAS 原則名稱,然後貼到文字方塊中

        Screenshot of the Add application group page with event hub Shared access policy option selected.

    6. 如果您選取 [Microsoft Entra 應用程式]

      1. 針對 [Microsoft Entra 應用程式 (用戶端) 識別碼],指定 Microsoft Entra 應用程式或用戶端識別碼。

      Screenshot of the Add application group page with Microsoft Entra option.

支援的安全性內容類型

檢閱自動產生的用戶端群組識別碼,這是與應用程式群組相關聯的唯一識別碼。 應用程式控管的範圍 (命名空間或實體層級) 取決於所使用 Microsoft Entra 應用程式識別碼的存取層級。 下表顯示針對不同安全性內容類型自動產生的用戶端群組識別碼:

安全性內容類型 自動產生的用戶端群組識別碼
命名空間共用存取金鑰 NamespaceSASKeyName=<NamespaceLevelKeyName>
Microsoft Entra 應用程式 AADAppID=<AppID>
事件中樞共用存取金鑰 EntitySASKeyName=<EntityLevelKeyName>

注意

所有以命名空間共用存取金鑰建立的現有應用程式群組,皆會繼續使用開頭為 SASKeyName 的用戶端群組識別碼。 不過,所有新的應用程式群組都會更新用戶端群組識別碼 (如上所示)。

  1. 若要新增原則,請遵循下列步驟:

    1. 輸入原則的名稱

    2. 選取 [類型] 的 [節流原則]

    3. 針對 [計量識別碼],選取下列其中一個選項:[傳入訊息]、[傳出訊息]、[傳入位元組]、[傳出位元組]。 在下列範例中,已經選取 [傳入訊息]

    4. 輸入 [速率限制閾值] 的閾值。 在下列範例中,10000 將受指定為傳入訊息數目的閾值。

      Screenshot of the Add application group page with a policy for incoming messages.

      以下頁面的螢幕擷取畫面中,已經新增了另一項原則。

      Screenshot of the Add application group page with two policies.

  2. 現在,在 [新增應用程式群組] 頁面上,選取 [新增]

  3. 確認您在應用程式群組清單中有看到應用程式群組。

    Screenshot of the Application groups page with the application group you created.

    您可以選取清單旁的垃圾桶圖示按鈕,以此刪除清單中的應用程式群組。

啟用或停用應用程式群組

您可以停用包含這些應用程式的應用程式群組,以防止用戶端應用程式存取事件中樞命名空間。 停用應用程式群組時,用戶端應用程式將無法發佈或取用資料。 從該應用程式群組的用戶端應用程式建立的任何連線也會終止。

本節說明如何使用 Azure 入口網站、PowerShell、CLI 和 ARM 範本來啟用或停用應用程式群組。

  1. 在 [事件中樞命名空間] 頁面上,選取左側功能表上的 [應用程式群組]

  2. 選取您要啟用或停用的應用程式群組。

    Screenshot showing the Application Groups page with an application group selected.

  3. 在 [編輯應用程式群組] 頁面上,清除 [已啟用] 旁的核取方塊以停用應用程式群組,然後選取頁面底部的 [更新]。 同樣地,選取核取方塊以啟用應用程式群組。

    Screenshot showing the Edit application group page with Enabled option deselected.

套用節流原則

您可以在建立應用程式群組時新增零個或多個原則,或將這些原則新增至現有的應用程式群組。 例如,您可以將與 IncomingMessagesIncomingBytesOutgoingBytes 有關的節流原則新增至 contosoAppGroup。 這些原則會套用至使用 SAS 原則 contososaspolicy 的用戶端應用程式所產生的事件串流工作負載。

若要了解如何在建立應用程式群組時新增原則,請參閱建立應用程式群組一節。

您也可以在建立應用程式群組之後新增原則。

  1. 在 [事件中樞命名空間] 頁面上,選取左側功能表上的 [應用程式群組]

  2. 選取您要為哪一個應用程式群組新增、更新或刪除原則。

    Screenshot showing the Application Groups page with an application group selected.

  3. 在 [編輯應用程式群組] 頁面上,您可以執行下列步驟:

    1. 現有原則的更新設定 (包括閾值)
    2. 新增原則

決定節流原則的閾值

Azure 事件中樞支援應用程式計量記錄功能,可觀察您系統中的一般輸送量,並以此決定應用程式群組的閾值。 您可以按照下列步驟來決定閾值:

  1. 在事件中樞開啟診斷設定,並選擇 [應用程式計量記錄] 作為選取的類別,然後選擇 [Log Analytics ] 作為目的地。

  2. 建立不含任何節流原則的空白應用程式群組。

  3. 繼續以一般輸送量將訊息/事件傳送至事件中樞。

  4. 移至 [Log Analytics 工作區],並根據 (resource-governance-overview.md#throttling-policy---threshold-limits) 在 [AzureDiagnostics] 資料表中查詢正確的活動名稱。 下列查詢範例的設定是追蹤傳入訊息的閾值:

    AzureDiagnostics 
        | where ActivityName_s =="IncomingMessages" 
        | where Outcome_s =="Success"      
    
  5. 選取 [Log Analytics 工作區] 上的 [圖表 ] 區段,並在 Y 軸上產生的時間與 X 軸上的已傳送訊息數目之間繪製圖表。

    Screenshot of the Azure Monitor logs page in the Azure portal.

    在此範例中,您可以看到一般輸送量一律不超過 550 則訊息 (預期的目前輸送量)。 此觀察結果可協助您定義實際的閾值。

  6. 決定閾值之後,請在應用程式群組內新增節流原則。

發佈或取用事件

將節流原則成功新增至應用程式群組之後,您可以使用 contosoAppGroup 應用程式群組的成員用戶端應用程式來發佈或取用事件,以測試節流行為。 若要進行測試,您可以使用 AMQP 用戶端Kafka 用戶端應用程式,以及用來建立應用程式群組的相同 SAS 原則名稱或 Microsoft Entra 應用程式識別碼。

注意

當用戶端應用程式受到節流時,您應該會在發佈或取用資料時遇到速度緩慢的情況。

使用應用程式群組驗證節流

類似於決定節流原則的閾值限制,您可以使用應用程式計量記錄來驗證節流和尋找更多詳細資料。

您可以使用下列範例查詢來找出特定時間範圍內的所有節流要求。 您必須更新 ActivityName,以符合您預期要節流的作業。


  AzureDiagnostics 
  |  where Category =="ApplicationMetricsLogs"
  | where ActivityName_s =="IncomingMessages" 
  | where Outcome_s =="Throttled"  
	

由於通訊協定層級的限制,不會針對事件中樞 (OutgoingMessagesOutgoingBytes) 內的取用者作業產生節流要求記錄。 要求在取用者端進行節流時,您會觀察到輸出輸送量的速度緩慢。

下一步