调用awscli使用的NodeJS
我的主要目标是:1.访问Redis的(elasticache)群集从拉姆达的NodeJS调用awscli使用的NodeJS
我一直在试图找出我的出路访问使用拉姆达Redis的集群详细信息。我在这个过程中取得了很好的进展,然而,我陷入了一个需要使用NodeJs Lambda函数调用awscli的地步。
我走遍搞清楚这个问题是我第一次决定使用“awscli”
最初尝试和拉Elasticache集群的详细信息的方式,我想出了一个方法来查询并列出所有群
命令:AWS elasticache描述缓存集群 - 显示,缓存节点信息
分开,每服务,我们创建
命令的结果:AWS elasticache描述缓存集群--cache集群-id abc- rcache --show-cache-node-info
进一步钻取命令以获得我需要的结果,即弹性缓存的主机详细信息。
command:aws elasticache describe-cache-clusters --cache-cluster-id abc-rcache --show-cache-node-info | grep地址
现在,我的要求是在NodeJS lambda中调用上述命令(awscli),我发现了一些结果,但他们倾向于python,但是,我不清楚如何在NodeJS中执行此操作(或者我没有正确理解)。
挖掘更多,因为我发布:)
任何意见,将不胜感激。
问候, 萨米尔Varpe
您可以直接使用弹性缓存SDK,而不是调用与CLI的NodeJS。 一切都可以用CLI做也是可行的SDK,
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ElastiCache.html
例如,
var elasticache = new AWS.ElastiCache();
elasticache.addTagsToResource(params, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
希望它能帮助。
我能够通过使用awscli本身的同事的帮助找出问题并分析结果并得到确切的结果。
//import { Aws, Options } from 'aws-cli-js';
var awsCli = require('aws-cli-js');
var Options = awsCli.Options;
var Aws = awsCli.Aws;
//const options = new Options(
// aws_access_key_id = ID
//aws_secret_access_key = Key2
/* currentWorkingDirectory */ null
//);
const aws = new Aws();
return aws.command('elasticache describe-cache-clusters --cache-cluster-id abc-rcache --show-cache-node-info').then((data) => {
console.log(JSON.parse(data.raw).CacheClusters[0].CacheNodes[0].Endpoint.Address);
console.log(JSON.parse(data.raw).CacheClusters[0].CacheNodes[0].Endpoint.Port);
});
//describe-instances
//awsCli.command('ec2 describe-instances --instance-ids i-789b3ba7').then(function (data) {
// console.log('data = ', data);
//});
感谢关内对你的回应:)。
〜干杯, 萨米尔Varpe
作为Kannaiyan建议,使用SDK。在Lambda中解析CLI中的输出是有问题的。使用CLI将增加Lambda的运行时间。这可能不是你的情况的一个因素,只是单挑。 –
谢谢你们会试试看 – Sameer