Kubernetes 上事件方格中的事件處理常式目的地

事件處理常式是公開端點的任何系統,且是事件方格所傳送事件的目的地。 接收事件的事件處理常式會對其採取動作,並使用事件承載來執行某些邏輯,這可能會導致發生新的事件。

設定事件方格將事件傳送至目的地的方式,就是透過建立事件訂用帳戶。 其可透過 Azure CLI管理 SDK,或使用直接 HTTP 呼叫 (使用 2020-10-15-preview API 版本) 來完成。

一般而言,Kubernetes 上的事件方格可以透過 Webhook 將事件傳送至任何目的地。 Webhook 是事件方格可存取的服務或工作負載所公開的 HTTP 端點。 Webhook 可以是裝載於下列位置的工作負載:相同叢集、相同網路空間、雲端、內部部署,或事件方格可以觸達的任何位置。

重要

具有 Azure Arc 的 Kubernetes 上的事件方格目前處於公開預覽狀態。 此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

透過 Webhook,事件方格支援 Kubernetes 叢集上裝載的下列目的地:

  • Kubernetes 上搭配 Azure Arc 的 Azure App Service。
  • Kubernetes 上搭配 Azure Arc 的 Azure Functions。
  • Kubernetes 上搭配 Azure Arc 的 Azure Logic Apps。

除了 Webhook 之外,Kubernetes 上的事件方格還可以將事件傳送至 Azure 上裝載的下列目的地:

  • 使用 Webhook 的 Azure 事件方格
  • 僅使用 Webhook 的 Azure Functions
  • 使用其 Azure Resource Manager 資源識別碼的 Azure 事件中樞
  • 使用其 Azure Resource Manager 資源識別碼的 Azure 服務匯流排主題或佇列
  • 使用其 Azure Resource Manager 資源識別碼的 Azure 儲存體佇列

功能同位

Kubernetes 上的事件方格提供良好的功能同位層級,而事件訂用帳戶支援 Azure 事件方格。 下列清單列舉事件訂用帳戶功能的主要差異。 除了這些差異之外,您可以在 Kubernetes 的事件方格上管理事件訂用帳戶時,使用 Azure 事件方格的 REST api version 2020-10-15-preview 作為參考。

  1. 使用 REST api version 2020-10-15-preview
  2. 不支援 Azure Functions 的 Azure 事件方格觸發程序。 您可以使用 WebHook 目的地類型,將事件傳遞至 Azure Functions。
  3. 沒有無效信件位置支援。 這表示,您無法在事件訂用帳戶承載中使用 properties.deadLetterDestination
  4. 尚未支援 Azure 轉送的混合式連線作為目的地。
  5. 僅支援 CloudEvents 結構描述。 支援的結構描述值為 "CloudEventSchemaV1_0"。 雲端事件結構描述是可延伸的,且以開放標準為基礎。
  6. 標籤 (properties.labels) 不適用於 Kubernetes 上的事件方格。 因此,無法使用它們。
  7. 不支援具有資源身分識別的傳遞。 因此,不支援事件訂用帳戶身分識別的所有屬性。
  8. 尚未支援目的地端點驗證

事件訂用帳戶中的事件篩選

設定事件訂用帳戶的另一個重要層面,就是選取應傳遞至目的地的事件。 如需詳細資訊,請參閱事件篩選

範例目的地設定

以下是一些基本範例設定,取決於預定目的地。

WebHook

若要發佈至 WebHook 端點,請將 endpointType 設定為 WebHook,並提供:

  • endpointUrl:WebHook 端點 URL

        {
          "properties": {
            "destination": {
              "endpointType": "WebHook",
              "properties": {
                "endpointUrl": "<your-webhook-endpoint>"
              }
            }
          }
        }
    

事件格線

若要發佈至 Azure 事件方格雲端端點,請將 endpointType 設定為 WebHook,並提供:

  • endpointUrl:雲端中的 Azure 事件方格主題 URL,API 版本參數設定為 2018-01-01,而 aeg-sas-key 設定為 URL 編碼的 SAS 金鑰。

      {
        "properties": {
          "destination": {
            "endpointType": "WebHook",
            "properties": {
              "endpointUrl": "<your-event-grid-cloud-topic-endpoint-url>?api-version=2018-01-01&aeg-sas-key=urlencoded(sas-key-value)"
            }
          }
        }
      }
    

事件中樞

若要發佈至事件中樞,請將 endpointType 設定為 eventHub,並提供:

  • resourceId:特定事件中樞的資源識別碼。

        {
          "properties": {
            "destination": {
              "endpointType": "eventHub",
              "properties": {
                "resourceId": "<Azure Resource ID of your event hub>"
              }
            }
          }
        }
    

服務匯流排佇列

若要發佈至服務匯流排佇列,請將 endpointType 設定為 serviceBusQueue,並提供:

  • resourceId:特定服務匯流排佇列的資源識別碼。

        {
          "properties": {
            "destination": {
              "endpointType": "serviceBusQueue",
              "properties": {
                "resourceId": "<Azure Resource ID of your Service Bus queue>"
              }
            }
          }
        }
    

服務匯流排主題

若要發佈至服務匯流排主題,請將 endpointType 設定為 serviceBusTopic,並提供:

  • resourceId:特定服務匯流排主題的資源識別碼。

    {
      "properties": {
        "destination": {
          "endpointType": "serviceBusTopic",
          "properties": {
            "resourceId": "<Azure Resource ID of your Service Bus topic>"
          }
        }
      }
    }
    

儲存體佇列

若要發佈至儲存體佇列,請將 endpointType 設定為 storageQueue,並提供:

  • queueName您要發佈至其中的 Azure 儲存體佇列名稱。

  • resourceID:儲存體帳戶的 Azure 資源識別碼,而此儲存體帳戶包含佇列。

    {
      "properties": {
        "destination": {
          "endpointType": "storageQueue",
          "properties": {
            "queueName": "<your-storage-queue-name>",
            "resourceId": "<Azure Resource ID of your Storage account>"
          }
        }
      }
    }
    

下一步