【发布时间】:2017-04-04 09:31:10
【问题描述】:
在我用来定期检查服务的 lambda 中,我检查来自服务器的结果值,我希望将该值作为指标发布到 AWS cloudwatch 以形成折线图。
我一辈子都想不通我们是如何做到的。 2 小时梳理 AWS 文档毫无结果。这可能吗?
要明确这不是关于 lambda 的指标,它是从 lamdba 发布的指标。
代码:
'use strict';
const https = require('http');
exports.handler = (event, context, callback) => {
const now = new Date()
const yesterday = new Date(now.toISOString())
yesterday.setTime(now.getTime() - (1000 * 60 * 60 * 24)); // 1 day ago)
const params = [
['limit',0],
['pageStart',0],
['startsOnOrAfter',encodeURIComponent(yesterday.toISOString())],
['startsOnOrBefore',encodeURIComponent(now.toISOString())]
].map(kv => `${kv[0]}=${kv[1]}&`).reduce((s1,s2) => s1.concat(s2))
var uri = `http://service/query?${params}`
const req = https.request(uri, (res) => {
let body = '';
res.setEncoding('utf8');
res.on('data', (chunk) => body += chunk);
res.on('end', () => {
if (!res.headers[ 'content-type' ].match('application/.*?json')) {
return callback(`unknown content type ${res.headers[ 'content-type' ]}`,body)
}
body = JSON.parse(body);
if(body.total && body.total > 0) {
callback(null, body.total); // body.total to form a line chart
}
else {
callback({
message: 'No plans found for time period',
uri: uri
})
}
});
});
req.on('error', callback);
req.end();
};
【问题讨论】:
标签: node.js amazon-web-services lambda