gpt4 book ai didi

azure-eventgrid - 为 Azure 函数创建 EvenGridSubscription 时尝试验证提供的端点失败

转载 作者:行者123 更新时间:2023-12-02 04:27:52 25 4
gpt4 key购买 nike

我正在尝试为使用 EventGridTrigger 的 Azure 函数创建EventGridSubscription。运行 New-AzureRmEventGridSubscription cmdlet 时,我看到以下错误:

Url validation: The attempt to validate the provided endpoint https://blablafunction.azurewebsites.net/admin/EventGridExtensionConfig failed.

这是 azure 函数代码:

[FunctionName("BlobCreatedHandler")]
public static async Task Run([EventGridTrigger]JObject blobEvent,
[Queue("blob-created-queue", Connection = Strings.StorageAccountConnection)] CloudQueue blobCreatedQueue,
[Inject(typeof(IBlobCreatedHandler))] IBlobCreatedHandler blobCreatedHandler)
{
await blobCreatedHandler.Handle(blobEvent, blobCreatedQueue);
}

我尝试了不同版本的 AzureRM.EventGrid 模块。有趣的是,在低于 0.3.0 的版本上它工作正常。但是从 0.3.1 开始的所有最新版本都因此错误而失败。有人有同样的经历吗?

更新:Fiddler 说两个版本的 SDK(好的和坏的)发送完全相同的请求:

{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "https://blobmalwarescanapptest.azurewebsites.net/admin/EventGridExtensionConfig?functionName=TestFunc&code=PhWghMXtSma188UQccaoErA4Eiw7ygudguHkpq1V0XKMfzA59yBR5g=="
}
},
"filter": {
"includedEventTypes": [
"All"
],
"isSubjectCaseSensitive": false
}
}

并获得完全相同的响应。但是在较新版本的 SDK 上,Azure EventGrid 管理端点似乎会截断“?”之后的所有内容。签名并尝试验证基本 url(没有查询参数)。

最佳答案

我刚刚使用 ARM 模板获得了相同的结果。对我有用的端点是: https://<FunctionAppName>.azurewebsites.net/runtime/webhooks/EventGrid?functionName=<functionName>&code=<code>

虽然这也适用于 v2 的 azure 函数,但我看到您使用的是 v1(因为 JObject 作为 eventgrid 触发器)。

编辑:我的 ARM 模板示例:

{
"type": "Microsoft.Storage/storageAccounts/providers/eventSubscriptions",
"name": "[concat(variables('MobileStorageName'), '/Microsoft.EventGrid/', variables('EventSubscriberName'))]",
"apiVersion": "2018-01-01",
"dependsOn": [
"[variables('MobileStorageName')]"
],
"tags": {
"displayName": "Storage Account Event Subscription"
},
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "[variables('FunctionAppEndpoint')]"
}
},
"filter": {
"subjectBeginsWith": "",
"subjectEndsWith": "",
"isSubjectCaseSensitive": false,
"includedEventTypes": [ "Microsoft.Storage.BlobCreated" ]
}
}
}

请注意,在我的例子中,我需要 StorageV2(它是 2018-02-1 api),否则它不起作用。

关于azure-eventgrid - 为 Azure 函数创建 EvenGridSubscription 时尝试验证提供的端点失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52164984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com