【问题标题】:azure function webhook key天蓝色函数 webhook 键
【发布时间】:2018-03-22 08:17:28
【问题描述】:

我无法使用 azure 通用 webhook 函数 authlevel 键(功能/主机/匿名等) 我创建了一个通用的 webhook 函数。我知道它默认受功能键身份验证级别的保护 - 这是正确的吗?在这种情况下,如何将 authlevel 更改为 Host 或匿名? 接下来,我从请求-响应逻辑应用程序流中调用它。所以我收到一个请求,调用函数,然后返回函数的结果。从逻辑应用程序的代码视图中,我看不到任何将代码和客户端作为参数的函数调用。所以我的问题是为什么函数调用没有失败。这是在匿名模式下发生的吗?或者逻辑应用程序是否以任何方式调用具有适当参数(代码和客户端 ID)的函数,即使在代码视图中也没有显示?也许我错过了一些非常基本的东西 - 感谢这方面的任何帮助。

【问题讨论】:

    标签: azure key azure-functions azure-logic-apps


    【解决方案1】:

    在这种情况下如何将 authlevel 更改为 Host 或匿名?

    在创建通用 webhook 函数时,您可以设置触发器的模式和 Mode 注释如下:

    触发器的模式。 “标准”意味着请求将是标准 HTTP,没有附加语义。 “Webhook”表示将按照指定的webhook类型处理请求。

    function.json 文件中的 authLevel 属性不适用于 WebHook 触发器。要触发 WebHook 函数,HTTP 请求必须包含 API 密钥(例如 https://<yourapp>.azurewebsites.net/api/<function>?code=<Host key or Function key>)。您可以选择您的通用 webhook 函数,选择您的 HTTP 触发器,然后单击 文档 链接以获取有关 HTTP 和 webhook 绑定的更多详细教程。

    接下来我从请求-响应逻辑应用程序流中调用它。所以我收到一个请求,调用函数,然后返回函数的结果。

    根据你的场景,我做了如下示例流程:

    您只需要选择您的通用 webhook 函数,逻辑应用就会为您处理授权。此外,API 密钥存储在D:\home\data\Functions\secrets 文件夹下,您可以使用kudu 并在host.json<function-name>.json 文件中找到它们。此外,这是一个 tutorial 使用 PowerShell 访问 KUDU REST API 以检索 Azure 功能密钥。此外,您可以添加您的评论here

    【讨论】:

    • 非常感谢您的详细回答 - 非常有用的细节。我确实在我的问题的某些领域得到了一些确认,但还有其他领域需要更加明确。由于 cmets 中的字符限制,我需要将我的响应拆分为多部分,如下所示。也许这不是包含大型 cmets 的正确方法,请原谅我,如果有更好的方法来放置大型 cmets,请告诉我。
    • 我原来的问题。 1) authlevel -> 我已经在功能集成选项卡中看到了文档,它清楚地提到了“authLevel:不适用于 WebHook 触发器”。但是link 的文档似乎有点含糊。它提到 slack 和 github 不支持 authlevel,但没有提到 genericJson 相同。因此混乱。但是,在您的回答中,将模式更改为标准意味着它不再是 webhook 类型。那么意味着我们无论如何都不能将 webhook 设置为匿名访问 - 对吗?
    • 2) 第二个问题是为什么从逻辑应用调用函数应用时我看不到传递的键。感谢您尝试流程 - 实际上流程也适用于我。不幸的是,从您的回复中,我无法找到该问题的明确答案。也许正如您提到的,这是由逻辑应用程序处理的,这都是逻辑应用程序内部的 - 它在内部传递,但无法在调用中可视化相同?你能澄清一下这部分吗?
    • 3) 最后,您提到密钥存在于 secret 文件夹中的 .json 文件中。虽然我之前看过这些文件,但并没有太在意。在您提到之后,我仔细查看并发现键与门户功能管理页面上显示的键不同。这是因为密钥是加密的吗?所以我知道,查看这些键值的唯一方法是通过门户或 Kudu powershell,正如您所提到的 - 这是正确的吗?
    • 1) 根据我的测试,webhook 无法匿名访问。您可以在 azure 或 Test a function with tools 上 [docs.microsoft.com/en-us/azure/azure-functions/… 函数中的函数)。 2)我没有找到任何有关此处理的官方文档,您可以在here 下添加您的评论。 3)密钥被加密,host.json下的encrypted属性为真。
    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    相关资源
    最近更新 更多