Share via


以儲存體佇列作為 Azure 事件方格事件的事件處理常式

事件處理常式是傳送事件的位置。 處理常式會採取進一步動作來處理事件。 有幾項 Azure 服務已自動設定為會處理事件,Azure 佇列儲存體是其中之一。

使用佇列儲存體來接收需要提取的事件。 若執行中的流程太過冗長導致回應時間過久,您可以使用佇列儲存體。 藉由將事件傳送至佇列儲存體,應用程式即可按照自己的排程提取並處理事件。

注意

  • 如果沒有針對 Azure 儲存體帳戶設定的防火牆或虛擬網路規則,您可以使用使用者指派和系統指派的身分識別,將事件傳遞至 Azure 儲存體帳戶。
  • 如果已為 Azure 儲存體帳戶設定防火牆或虛擬網路規則,則只有在信任的服務清單中允許 Azure 服務存取儲存體帳戶也在儲存體帳戶啟用時,才能使用系統指派的受控識別。 不論是否啟用此選項,您都無法使用使用者指派的受控識別。

教學課程

如需使用佇列儲存體作為事件處理常式的範例,請參閱下列教學課程。

標題 描述
快速入門:使用 Azure CLI 和事件方格將自訂事件路由至 Azure 佇列儲存體 描述如何將自訂事件傳送至佇列儲存體。

REST 範例 (用於 PUT)

儲存體佇列作為事件處理常式

{
	"properties": 
	{
		"destination": 
		{
			"endpointType": "StorageQueue",
			"properties": 
			{
				"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>",
				"queueName": "<QUEUE NAME>"
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

儲存體佇列作為事件處理常式 - 使用受控識別進行傳遞

{
	"properties": 
	{
		"deliveryWithResourceIdentity": 
		{
			"identity": 
			{
				"type": "SystemAssigned"
			},
			"destination": 
			{
				"endpointType": "StorageQueue",
				"properties": 
				{
					"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>",
					"queueName": "<QUEUE NAME>"
				}
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

儲存體佇列作為具有目的地無效化的事件處理常式

{
	"name": "",
	"properties": 
	{
		"destination": 
		{
			"endpointType": "StorageQueue",
			"properties": 
			{
				"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<DESTINATION STORAGE>",
				"queueName": "queue1"
			}
		},
		"eventDeliverySchema": "EventGridSchema",
		"deadLetterDestination": 
		{
			"endpointType": "StorageBlob",
			"properties": 
			{
				"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<DEADLETTER STORAGE>",
				"blobContainerName": "test"
			}
		}
	}
}

儲存體佇列作為具有目的地無效化的事件處理常式 - 受控識別

{
	"properties": 
	{
		"destination": 
		{
			"endpointType": "StorageQueue",
			"properties": 
			{
				"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<DESTINATION STORAGE>",
				"queueName": "queue1"
			}
		},
		"eventDeliverySchema": "EventGridSchema",
		"deadLetterWithResourceIdentity": 
		{
			"identity": 
			{
				"type": "SystemAssigned"
			},
			"deadLetterDestination": 
			{
				"endpointType": "StorageBlob",
				"properties": 
				{
					"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<DEADLETTER STORAGE>",
					"blobContainerName": "test"
				}
			}
		}
	}
}

下一步

如需支援的事件處理常式清單,請參閱事件處理常式一文。