如何通过REST API监控并控制Azure Functions应用(非门户方式)
一、使用Azure Functions管理REST API获取信息
你可以直接调用Azure Functions内置的管理API获取所需信息,所有请求需携带管理员密钥(可从函数应用的应用设置FUNCTIONS_ADMIN_API_KEY中获取)。
获取函数列表
发送GET请求:GET https://<function-app-name>.azurewebsites.net/admin/functions返回结果包含所有函数的名称、触发器类型、配置元数据等基础信息。
获取函数执行历史与运行状态
针对单个函数,发送GET请求:GET https://<function-app-name>.azurewebsites.net/admin/functions/<function-name>/invocations?$top=<number-of-records>替换
<function-name>和<number-of-records>(比如$top=20获取最近20次执行),返回结果包含每次执行的ID、状态(成功/失败/超时)、起止时间、错误详情等。获取调度信息(定时触发器专属)
先通过函数详情接口获取触发器配置:GET https://<function-app-name>.azurewebsites.net/admin/functions/<function-name>返回的
config字段中包含定时触发器的CRON表达式、时区等调度规则;同时执行历史接口返回的每条记录里,也会标注该次执行的触发调度时间。
二、在Azure Function内部获取信息
如果需要在函数运行时内部获取这些数据,可以通过以下方式:
获取函数列表与配置
直接读取函数应用文件系统中D:\home\site\wwwroot路径下的各函数子目录,解析每个目录中的function.json文件,从中提取函数名称、触发器类型、调度规则等信息。获取执行历史与运行状态
若函数应用已集成Application Insights,可使用Application Insights SDK在函数内查询日志数据:- 查询
requests表获取函数调用记录(包含执行状态、耗时) - 查询
exceptions表获取执行错误信息
也可以直接读取文件系统日志:D:\home\LogFiles\Application\Functions路径下的日志文件会记录函数执行的基础信息。
- 查询
获取当前实例的函数运行状态
可以调用本地管理API(仅限当前函数实例内部访问):GET http://localhost:7071/admin/functions该接口返回当前实例上所有函数的运行状态;同时也可通过读取环境变量(如
WEBSITE_INSTANCE_ID)确认实例的存活状态。
内容的提问来源于stack exchange,提问作者Kresten

