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

Docker托管的Azure Function无法与事件网格链接

子车劲
2023-03-14

我正试图通过事件网格将托管在azure blob存储上的静态站点连接到azure函数(托管在docker容器中)。我的计划是优化添加到blob存储中的图像以减小文件大小。

我欣赏它有点做作的例子但我希望得到一些曝光事件网格

目前,我无法将事件网格连接到我的azure功能。从函数向事件网格添加订阅在门户中不可用,因为它在docker容器中。

我按照微软指南中的这些步骤从主密钥中获取函数系统密钥。(这稍后用于设置订阅)

当我点击链接时:http://

我只能假设我做错了什么,但我不知道是什么,感谢任何帮助!


共有3个答案

唐昊焜
2023-03-14

我也遇到过同样的问题。在Docker容器中使用EventGridTrigger部署FunctionApp时,eventgrid_extension键有时不显示。有时它会立即出现,有时会在几个小时后出现,有时永远不会出现。

我注意到,即使eventgrid_extension键没有显示在Azure门户中,但它在与FunctionApp关联的存储Blob中可用。

也许直接从blob中提取密钥可以用作解决方案。

顾恺
2023-03-14

最后,解决这个问题需要两个步骤:

  • 确保使用正确的方法签名。我添加了一个 IActionResult 作为返回类型到我的函数,而不是此方法签名:公共静态 void EventGridTest([EventGridTrigger]EventGridEvent,ILogger log)(使用异步任务而不是 void 也是可以接受的)。对于不正确的签名,函数运行时无法找到有效的函数签名,直到我实际运行func host start,此时我得到了以下内容,才出现此错误:
Microsoft.Azure.WebJobs.Host: Error indexing method '<funcName>'.
Microsoft.Azure.WebJobs.Host: Cannot bind parameter '$return' to type IActionResult&. Make sure the parameter Type is supported by the binding. If you're using binding extensions (e.g. Azure Storage, ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers(), etc.).
  • 其次,文档中描述的获取系统密钥的endpoint不存在(返回404)。正如Jerry Liu所述https://stackoverflow.com/a/54763760/537821使用'_master'密钥代替系统密钥。

所以,感谢罗曼之吻

糜凯泽
2023-03-14

为linux函数生成系统密钥似乎有一些问题。在Windows上一切正常时,我确实遇到了相同的错误。

解决方法是直接使用主密钥来配置endpoint,它就像我这边的魅力一样工作。

https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={masterkey}
 类似资料:
  • 我在inida的jboss应用服务器上托管了一个网站。但从美国无法访问。我试图从印度ping它,然后它是好的,但从美国它显示出糟糕的门户。openshift有什么bug吗?我的测试站点的链接是http://garanci-aspiring.rhcloud.com/

  • 我无法在Azure事件网格中添加新的WebHook订阅。有人能帮忙吗?当我添加webhookendpoint时,出现以下错误。

  • 问题内容: 我正在学习docker。我看到这两个词使我感到困惑。例如,这是一个docker-compose,它定义了两个服务和。 该文件定义了一个名为lognet的桥接网络,所有服务都将连接到该网络。据我了解,此操作使那些服务可以看到其他服务。那么在上述情况下,为什么应用程序服务仍需要链接到Redis服务。 谢谢 问题答案: 链接已被网络取代。Docker将它们描述为您应避免使用的旧功能。您可以安

  • 问题内容: 我在JBoss服务器上使用Hibernate。我得到下面的错误。 当我尝试在同一会话中第二次连接到数据库时,发生错误。 另外,我还会收到错误消息“为您关闭连接。请关闭您的连接”。 可能是什么原因,如何解决这种情况? 问题答案: 自从您一年前提出这个问题以来,这个答案实际上可能为时已晚。但它将帮助将来会遇到此错误的人。 您的错误可能来自不同的来源,但在我的情况下,它的所有原因均与事务超时

  • 捕获和冒泡允许我们实现一种被称为 事件委托 的强大的事件处理模式。 这个想法是,如果我们有许多以类似方式处理的元素,那么就不必为每个元素分配一个处理程序 —— 而是将单个处理程序放在它们的共同祖先上。 在处理程序中,我们获取 event.target 以查看事件实际发生的位置并进行处理。 让我们看一个示例 —— 反映中国古代哲学的 八卦图。 如下所示:在新窗口中打开 在沙箱中打开 其 HTML 如

  • 我在[本教程]后面有个问题(https://hub.docker.com/r/microsoft/mssql-server-linux/)我试图通过sqlcmd连接到docker托管的MSSQL。 我从windows在PowerShell中执行了以下操作: 注意:添加了“-it”和“/bin/bash”,因为如果没有检测到任何活动,docker将自动停止。 我运行了docker container