如何查看云服务执行的相关操作记录
问题描述
在某些情况下,我们需要监视服务的操作状态,通过操作日志的详细情况知道我们的操作失败的具体原因,并且通过操作日志可以在失败的详情中找出操作 ID,在联系技术支持的过程中可以对应到具体的操作。
然而,目前服务 SDK 并没有提供此类的 API,那么是否可以达成这个需求呢?
问题分析
Azure 门户提供了一个操作日志(Operation Log)的功能,可以用于查询云服务的操作日志。同时,Azure 也提供了相应的 REST API,请参考:List Subscription Operations。
解决方法
通过 Azure 门户查看操作日志
云服务提供了重启日志以及特定经典资源的操作的日志,请通过以下步骤查看:
登录 Azure 门户网站,选择 “云服务”:

选择要查看的 云服务 -> 点击 “操作日志(经典)”,可以选择时间跨度,查看相关的操作日志和启动日志:

通过 REST API 查看操作日志
构建请求
请求 URI:
注意
文档中给出的是国际版 Azure 的终结点地址,使用中国区 Azure 需要将
management.windows.net修改为management.core.chinacloudapi.cn。
URI 参数:
上述请求并没有做限制(Filter),是获取订阅下所有的操作日志,为了达成需求,需要使用以下 3 个参数来做限定:
StartTime=<start-of-timeframe>EndTime=<end-of-timeframe>ObjectIdFilter=<object-url>
参数详解请参考文档说明,此外您还需要指定
api-version,构建的请求格式为:https://management.core.chinacloudapi.cn/<subscription-id>/operations?ObjectIdFilter<object-url>&StartTime=<start-of-timeframe>&EndTime=<end-of-timeframe>具体参数字段需要替换为您实际项目中的值,针对cloud Service(Paas)对应的ObjectIdFilter的格式为:
ObjectIdFilter=/subscription-id/services/hostedservices/cloud-service-name.
因此获取某个特定的cloud Service(Paas)的示例请求如下:
https://management.core.chinacloudapi.cn/5bbf0cbb-647d-****-****-26629f109bd7/operations?ObjectIdFilter=/5bbf0cbb-647d-****-****-26629f109bd7/services/hostedservices/kevin1&StartTime=2018-01-01&EndTime=2018-01-31&api-version=2014-01
请求参数
x-ms-version:2012-03-01 (或更高版本)Authorization:调用以下 REST API 来获取RESTAPI: https://login.chinacloudapi.cn/common/oauth2/token?api-version=1.0Method: POSTHEADER: Content-Type: application/x-www-form-urlencodedPOST DATA:grant_type: password # 固定值resource: https://management.core.chinacloudapi.cn/ # 固定值username: 订阅登录账户password: 订阅登录密码client_id: 1950a258-227b-4e31-a9cf-717495945fc2 # 固定值
如下示例:
access_token的值即Authorization值:
调用请求
