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 作為參考。
- 使用 REST api version 2020-10-15-preview。
- 不支援 Azure Functions 的 Azure 事件方格觸發程序。 您可以使用 WebHook 目的地類型,將事件傳遞至 Azure Functions。
- 沒有無效信件位置支援。 這表示,您無法在事件訂用帳戶承載中使用
properties.deadLetterDestination
。 - 尚未支援 Azure 轉送的混合式連線作為目的地。
- 僅支援 CloudEvents 結構描述。 支援的結構描述值為 "CloudEventSchemaV1_0"。 雲端事件結構描述是可延伸的,且以開放標準為基礎。
- 標籤 (properties.labels) 不適用於 Kubernetes 上的事件方格。 因此,無法使用它們。
- 不支援具有資源身分識別的傳遞。 因此,不支援事件訂用帳戶身分識別的所有屬性。
- 尚未支援目的地端點驗證。
事件訂用帳戶中的事件篩選
設定事件訂用帳戶的另一個重要層面,就是選取應傳遞至目的地的事件。 如需詳細資訊,請參閱事件篩選。
範例目的地設定
以下是一些基本範例設定,取決於預定目的地。
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>" } } } }
下一步
- 將篩選條件設定新增至事件訂用帳戶,以選取要傳遞的事件。
- 若要了解適用於 Kubernetes 的 Azure Arc 上事件方格所支援的結構描述,請參閱 Kubernetes 上的事件方格 - 事件結構描述。