当前位置: 首页 > 知识库问答 >
问题:

是否可以在发布函数之前创建Azure函数应用的事件网格订阅?

梁俊智
2023-03-14

我一直在尝试使用ARM模板为事件网格触发器函数创建事件网格订阅,该函数旨在捕获Blob存储事件。我首先成功创建函数应用资源,然后尝试在创建的函数应用上创建事件网格订阅,但失败并出现以下错误:

    "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "Url validation",
        "message": "The attempt to validate the provided endpoint https://myfunction.azurewebsites.net/runtime/webhooks/eventgrid failed. For more details, visit https://aka.ms/esvalidation."
      }
    ]
  }

在这里,我使用了Webhook URL作为endpoint。我已经知道有一个验证调用返回到函数应用以验证其是否存在。

我的问题是,在尝试为其创建事件网格订阅之前,我们是否需要将事件网格触发器函数发布到函数应用?

P、 我也尝试了使用AzureFunction作为endpoint类型(2020-01-01版本)的相同顺序,但仍然无法创建订阅。

共有1个答案

咸琪
2023-03-14

基于此处描述的验证详细信息:

At the time of event subscription creation/update, Event Grid posts a subscription validation event to the target endpoint

作为一种解决方法,您可以使用虚拟(nop操作)订阅者处理程序endpoint来创建订阅,然后使用真实订阅者处理器endpoint更新webhookendpoint。

 类似资料:
  • 我已经实现了一个EventGrid触发器来响应Blob存储事件,其逻辑简化如下: 外部API的响应时间不长(1秒或更短),我对主机的配置设置为默认(因此允许无限数量的并发调用)。 当同时添加多个blob(从只有2个blob开始)时,我在日志中得到了很多重复的事件(脚本正在快速地一个接一个地上传blob,中间没有等待时间)。 我觉得这可能是由于我从不承认收到事件,我不知道我是否应该在我的代码中执行此

  • 我们有一个 Azure 设置,其中包含一个 Azure 事件网格主题,并且我们有一个 Azure 函数服务,其中包含大约 15 个函数,这些函数通过不同的前缀筛选器订阅该主题。Azure 函数服务设置为基于消耗的资源,应该能够根据需要进行缩放。 每个订阅都设置为在最多4小时内尝试交付10次,然后放弃活动。到目前为止一切顺利,设置大部分时间都按预期工作。 在某些情况下,对于我们未知的情况,事件网格主

  • 我正在尝试过滤事件网格中的事件,使其仅在我的订阅中的Azure功能更改时触发(例如配置更改、代码更新或创建/删除新功能)。 我使用的 PowerShell 脚本如下所示: 这将过滤到所有功能和网站(请检查<code>和$AdvancedFilters)。是否有任何方法可以将事件仅过滤到Azure函数?欢迎使用Azure CLI、portal、Powershell或.net sdk中的任何解决方案帮

  • 我的Azure Functions事件网格触发器没有触发。我是这么做的。 Key Vault设置为将事件报告给EventGrid系统主题 此主题由将事件传递到Azure Function的订阅订阅 函数有一个事件网格触发器(见下文,默认由门户创建): 我用谷歌搜索了一下,对于这样的入门级方案,没有更多的指导。我想的也许是授权...订阅如何触发该函数?在此过程中(通过GUI /门户配置),没有任何关

  • 我正试图开发一个Azure函数来处理由事件中心的捕获功能创建的blob。然而,尽管捕获blobs被正确地存储在容器中,但似乎没有< code>Microsoft。EventHub . capturefile created 事件发布到函数订阅。功能endpoint的事件订阅已创建,没有错误,Azure CLI的输出为 该函数的主体是一个标准的Http触发器,其中包含事件网格endpoint订阅所需

  • 在Azure function中,你可以创建一个函数来监听某个事件的变化,比如消息总线、blob存储等等... 如果您正在使用azure功能,并且您的目标是通过侦听事件(如消息总线、blob存储或任何其他内置触发器)来处理某些事情,那么您有什么理由希望将事件网格放在中间层吗?即,您不希望azure函数直接侦听blob存储更改,而是希望azure函数侦听正在侦听blob存储器更改事件的事件网格。 谢