作者:好咯午睡了_740 | 来源:互联网 | 2022-12-08 13:30
我有一个Azure函数,每周一次在计时器触发器上运行。效果很好,符合预期,但是每月大约需要一两次,用户需要根据要求运行该功能,所以我需要在该功能上做一个发布以触发它-就像您可以从Azure门户中进行操作一样。
查看Azure门户,正在对以下功能进行http发布请求:
https://{funcapp}.azurewebsites.net/admin/functions/{func}
但是,如果我从Postman进行此操作,则会收到Http 401响应。我将如何执行此请求?
我有一个选择,宁可将触发器更改为队列,又每周运行第二个函数,这会向队列中添加一条消息,但这对我来说似乎有点过分。
1> Jerry Liu..:
如果要调用admin API触发计时器功能,则需要在请求中添加功能主键,否则将获得401 Unauthorized。
在功能应用程序设置面板>主机键(所有功能)> _master上找到它。
将其添加到您的请求标头中x-functions-key:
。
请注意,在此后发给admin API的请求中,您需要发送一个application/json
正文(至少包含一个空的json {}
),此格式是必需的,否则您可能会收到415不支持的媒体类型。
如果此发布请求是由用户执行的,并且您不希望将主密钥暴露给用户,那么我建议您使用@Marie提供的解决方案,尝试一下,您可能会发现它并没有您想像的那么大。
现在,此方法已正式记录在这里:https://docs.microsoft.com/mt-mt/Azure/azure-functions/functions-manually-run-non-http