0

阿里云ECS中的CloudMonitor API属于RPC类型,可以通过发送HTTP请求调用CloudMonitor API。

我正在调用QueryMetricList使用该命令查询 ECS 实例的监控数据。

http://metrics.cn-hangzhou.aliyuncs.com/?Action=QueryMetricList
&EndTime=2017-05-17+11%3A30%3A27
&StartTime=2017-05-17+11%3A20%3A27
&Period=60
&Dimensions=%7B%22instanceId%22%3A%22i-abcdefgh123456%22%7D
&Timestamp=2017-03-22T09%3A30%3A57Z
&Project=acs_ecs_dashboard
&Metric=cpu_idle

如何通过 API 签名对每个 API 请求进行身份验证。

我很感激这方面的任何帮助。

4

1 回答 1

0

要通过 API 签名验证 API 请求,您需要Access IDAccess Key Secret

让我将Access IDAccess Key Secret分别视为KeyValue

您在添加签名之前的要求:

http://metrics.cn-hangzhou.aliyuncs.com/?Action=QueryMetricList
&EndTime=2017-05-17+11%3A30%3A27
&StartTime=2017-05-17+11%3A20%3A27
&Period=60
&Dimensions=%7B%22instanceId%22%3A%22i-abcdefgh123456%22%7D
&Timestamp=2017-03-22T09%3A30%3A57Z
&Project=acs_ecs_dashboard
&AccessKeyId=Key
&SignatureMethod=HMAC-SHA1
&Metric=cpu_idle

AccessKey Secret 是value,用于 HMAC 计算的密钥是value&。然后计算签名值。

将签名值添加到上述 API 请求中。

例如,让我考虑一下signature = "sdsdfasdfa",请求将是:

http://metrics.cn-hangzhou.aliyuncs.com/?Action=QueryMetricList
&EndTime=2017-05-17+11%3A30%3A27
&StartTime=2017-05-17+11%3A20%3A27
&Period=60
&Dimensions=%7B%22instanceId%22%3A%22i-abcdefgh123456%22%7D
&Timestamp=2017-03-22T09%3A30%3A57Z
&Project=acs_ecs_dashboard
&AccessKeyId=Key
&SignatureMethod=HMAC-SHA1
&Signature="sdsdfasdfa"
&Metric=cpu_idle
于 2018-12-30T13:35:56.360 回答