我在 VS 2019 中创建了一个 Azure 函数,并想从 VS 2019 中部署它。在尝试部署时,我收到以下错误: 尝试发布 ZIP 文件失败,HTTP 状态代码为未经授权。 我尝试过以下选项:
所有选项均不起作用。我总是遇到相同的未经授权的错误。
在尝试从 Visual Studio 发布 .NET Azure Function 应用程序时,我遇到了同样的失败,并且我发现使用 REST API 部署 ZIP 文件需要打开基本身份验证。因此,在 Azure Function 应用程序的 Azure 门户中,转到配置,然后转到常规设置并打开基本身份验证。
我尝试重现您的问题。是的,如果部署到 azure 函数后未将特定密钥传递到 URL,我们将获得未经授权。
每个 Function 应用程序都有一些授权级别:
它们在
function.json代码文件中的
authLevel
属性中定义。
我尝试使用 Admin authLevel 来运行该函数并获得 401 未经授权,我在函数应用程序 URL 中给出了函数密钥:
现在我有了函数应用程序 URL 的 Host (_master) key 以及查询字符串参数(名称),那么结果是:
因此, 当没有将合适的密钥传递到函数应用程序 URL 时,我们将获得未经授权的权限。根据 authLevel,我们必须传递 URL 中的密钥。
匿名 - 无需身份验证。任何有效的 HTTP 请求都会通过 功能 - 主机(主)和功能键。 Admin - 需要 主机密钥 进行授权。 系统 - 需要功能应用程序的主密钥进行授权。 用户 - 需要有效的身份验证令牌。
功能、管理和系统授权级别是基于密钥。
有关功能应用程序中授权级别使用的更多信息,请参阅此处。