存储队列作为 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"
}
}
}
}
}
后续步骤
如需支持的事件处理程序的列表,请参阅事件处理程序一文。