共用方式為


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

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

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

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

注意

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

建立應用程式群組

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

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

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

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

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

    Azure 入口網站中 [應用程式群組] 頁面的螢幕擷取畫面。

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

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

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

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

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

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

        [新增應用程式群組] 頁面的螢幕擷取畫面,其中選取了 [命名空間共用存取原則]。

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

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

        [新增應用程式群組] 頁面的螢幕擷取畫面,其中選取了 [事件中樞共用存取原則]。

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

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

      [新增應用程式群組] 頁面的螢幕擷取畫面,其中含有 Microsoft Entra 選項。

支援的安全性內容類型

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

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

注意

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

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

    1. 輸入原則的名稱

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

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

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

      [新增應用程式群組] 頁面的螢幕擷取畫面,其中含有傳入訊息的原則。

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

      [新增應用程式群組] 頁面的螢幕擷取畫面,其中含有兩個原則。

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

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

    [應用程式群組] 頁面的螢幕擷取畫面,其中含有您所建立的應用程式群組。

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

啟用或停用應用程式群組

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

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

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

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

    顯示 [應用程式群組] 頁面的螢幕擷取畫面,其中選取了一個應用程式群組。

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

    顯示 [編輯應用程式群組] 頁面的螢幕擷取畫面,其中取消選取了 [已啟用] 選項。

套用節流原則

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

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

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

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

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

    顯示 [應用程式群組] 頁面的螢幕擷取畫面,其中選取了一個應用程式群組。

  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 軸上的已傳送訊息數目之間繪製圖表。

    Azure 入口網站中 [Azure 監視器記錄] 頁面的螢幕擷取畫面。

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

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

發佈或取用事件

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

注意

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

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

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

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


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

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

下一步