如何使用 New-AzEventGridSubscription 向 Azure 存储添加事件订阅?

问题描述

我正在尝试使用 New-AzEventGridSubscription 添加对存储帐户的订阅。订阅应该由容器中的 blob 修改触发,并将消息放入某个队列。我创建了以下脚本:

$ResourceGroup = "test"
$includedEventTypes = "Microsoft.Storage.BlobCreated","Microsoft.Storage.BlobDeleted"

New-AzEventGridSubscription `
-ResourceId "/subscriptions/[id]/resourceGroups/[group]/providers/Microsoft.Storage/storageAccounts/[name]" `
-EventSubscriptionName DummyName `
-Endpoint "/subscriptions/[id]/resourceGroups/[group]/providers/Microsoft.Storage/storageAccounts/[name]/queueServices/default/queues/my-queue" `
-ResourceGroup $ResourceGroup `
-EndpointType "storagequeue" `
-SubjectBeginsWith "prefix" `
-SubjectEndsWith "suffix"

但它抛出一个错误:

New-AzEventGridSubscription : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1
+ New-AzEventGridSubscription `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-AzEventGridSubscription],ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.Azure.Commands.EventGrid.NewAzureEventGridSubscription

我做了类似的命令来添加对自定义主题的订阅,效果很好:

New-AzEventGridSubscription `
    -ResourceGroup $ResourceGroup `
    -EventSubscriptionName SubscriptionName `
    -TopicName MyCustomTopic `
    -EndpointType "storagequeue" `
    -Endpoint "/subscriptions/[id]/resourceGroups/[group]/providers/Microsoft.Storage/storageAccounts/[account]/queueServices/default/queues/my-queue" `
    -SubjectBeginsWith "prefix" `
    -SubjectEndsWith "suffix" 

我尝试了几次修改,但都无济于事。我做错了什么?

解决方法

在抛出“ResourceGroup”参数、重新排序其他参数并将一些参数放入变量后,我终于设法启动并运行了我的脚本......如果有人需要类似的东西,在这里它是:

$subscriptionId = "<id>"
$ResourceGroup = "<group>"
$includedEventTypes = "Microsoft.Storage.BlobCreated","Microsoft.Storage.BlobDeleted"
$storageAccount = "<account name>"
$endpoint = "/subscriptions/"+$subscriptionId+"/resourceGroups/"+$ResourceGroup+"/providers/Microsoft.Storage/storageAccounts/"+$storageAccount+"/queueServices/default/queues/my-queue"
$resourceId = "/subscriptions/"+$subscriptionId+"/resourceGroups/"+$ResourceGroup+"/providers/Microsoft.Storage/storageAccounts/"+$storageAccount
$subject = "prefix"

New-AzEventGridSubscription `
-EventSubscriptionName MySubscriptionName `
-Endpoint $endpoint `
-ResourceId $resourceId `
-EndpointType "storagequeue" `
-SubjectBeginsWith $subject `
-SubjectEndsWith "suffix" `
-IncludedEventType $includedEventTypes

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...