共用方式為


事件方格和可靠性

Azure 事件方格 可讓您使用事件架構輕鬆地建置應用程式。 此解決方案內建支援來自 Azure 服務的事件,例如記憶體 Blob 和資源群組。 事件格線也支援針對您自己的事件使用自訂主題。

如需使用事件方格的詳細資訊,請參閱使用 Azure 事件方格 建立和路由自定義事件。

若要瞭解如何使用事件方格建立更可靠的工作負載,請參閱 Azure 事件方格 中的伺服器端異地災害復原。

下列各節專屬於 Azure 事件方格 和可靠性:

  • 設計考量
  • 設定檢查清單
  • 建議的組態選項
  • 來源成品

設計考量

Azure 事件方格 提供運行時間 SLA。 如需詳細資訊,請參閱 事件方格的 SLA。

檢查清單

您是否已將可靠性設定為 Azure 事件方格?

  • 在多區域 Azure 解決方案的情況下,為每個區域部署事件方格實例。
  • 監視事件方格以取得失敗的事件傳遞。
  • 使用批次事件。
  • 事件批次不能超過 1MB 大小。
  • 在負載測試期間設定和優化批次大小選取專案。
  • 只有在傳遞至保存自定義程式碼的端點時,才會接受事件方格訊息與HTTP200-204回應。
  • 監視事件方格中是否有失敗的事件發佈。

組態建議

在設定 Azure 事件方格 時,請考慮下列建議來優化可靠性:

建議 描述
監視事件方格以取得失敗的事件傳遞。 Delivery Failed每次無法將訊息傳遞至事件處理程式時,計量都會增加(逾時或非200-204 HTTP狀態代碼)。 如果事件無法遺失,請設定寄不出的信件佇列 (DLQ) 記憶體帳戶。 DLQ 帳戶是將放置最大重試計數之後無法傳遞的事件。 或者,透過事件方格處理 新的檔案 事件,在 DLQ 記憶體帳戶上實作通知系統。
在高輸送量案例中使用批次事件。 服務會將具有多個事件的數位傳遞給 json 訂閱者,而不是具有一個事件的陣列。 取用的應用程式必須能夠處理這些陣列。
事件批次不能超過 1MB 大小。 如果訊息承載很大,則批次中只能容納一或少數訊息。 取用服務需要處理更多事件批次。 如果您的事件具有大型承載,請考慮將它儲存在其他地方,例如在 Blob 記憶體中,並在事件中傳遞參考。 透過 CloudEvents 架構與第三方服務整合時,不建議超過 64KB 事件。
在負載測試期間設定和優化批次大小選取專案。 批次大小選取取決於承載大小和訊息磁碟區。
監視事件方格中是否有失敗的事件發佈。 計量 Unmatched 會顯示已發佈但不符合任何訂用帳戶的訊息。 視您的應用程式架構而定,後者可能是刻意的。

來源成品

若要判斷所有可用事件方格主題的 輸入架構 類型,請使用下列查詢:

Resources 
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']

若要擷取 事件方格網域現有私人端點的資源標識碼 ,請使用下列查詢:

Resources 
| where type == 'microsoft.eventgrid/domains' and notnull(properties['privateEndpointConnections']) 
| mvexpand properties['privateEndpointConnections'] 
| project-rename privateEndpointConnections = properties_privateEndpointConnections 
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']

若要識別 所有可用事件方格網域的公用網路存取 狀態,請使用下列查詢:

Resources 
| where type == 'microsoft.eventgrid/domains' 
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']

若要識別 所有公用事件方格網域的防火牆規則 ,請使用下列查詢:

Resources 
| where type == 'microsoft.eventgrid/domains' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']

若要識別 所有公用事件方格主題的防火牆規則 ,請使用下列查詢:

Resources 
| where type == 'microsoft.eventgrid/topics' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']

若要擷取 事件方格主題現有私人端點的資源標識碼 ,請使用下列查詢:

Resources 
| where type == 'microsoft.eventgrid/topics' and notnull(properties['privateEndpointConnections']) 
| mvexpand properties['privateEndpointConnections'] 
| project-rename privateEndpointConnections = properties_privateEndpointConnections 
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']

若要判斷 所有可用事件方格網域的輸入架構 類型,請使用下列架構:

Resources 
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']

若要識別 所有可用事件方格主題的公用網路存取 狀態,請使用下列查詢:

Resources 
| where type == 'microsoft.eventgrid/topics' 
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']

後續步驟