Compartir a través de

存储队列作为 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"
				}
			}
		}
	}
}

后续步骤

如需支持的事件处理程序的列表,请参阅事件处理程序一文。