2017-10-09 2 views
-3

を使用してawscli呼び出す:NodeJSラムダ私の主な目的はnodeJS

から1へのアクセスのRedisの(elasticache)クラスターIは、ラムダを使用してのRedisクラスターの詳細にアクセスするために私の方法を把握しようとしています。私はこのプロセスで良い進歩を遂げましたが、NodeJs Lambda関数を使用してawscliを呼び出す必要があるところで立ち往生しています。

私は最初の最初は「awscli」

を使用してElasticacheクラスタの詳細を試してみて引っ張ることが決定された私は、この問題を考え出すについていった方法が、私はすべてのクラスタ

を照会して一覧表示する方法を考え出しましたAWS elasticache記述キャッシュ・クラスタを--cacheクラスタ:

コマンド:我々は

コマンドを作成したサービスごとにAWS elasticache記述キャッシュ・クラスタ--show-キャッシュノード情報

は、結果を分離しました-id abc- rcache --show-cache-node-info

さらに、私が必要とした結果、すなわち弾性キャッシュのホストの詳細を取得するコマンドをドリルダウンしました。

コマンド:aws elasticache記述キャッシュ・クラスタ--cache-cluster-id abc-rcache --show-cache-node-info | grep Address

私の要件は、NodeJSラムダで上記のコマンド(awscli)を呼び出すことですが、いくつかの結果を見出していますが、それらはPythonに傾いていますが、NodeJSでどのように行う必要があるかははっきりしません(あるいは、私が正しく理解していないかもしれない)。

私が投稿したものより多くを掘る:

いずれかの提案があります。

よろしく、あなたが代わりに直接nodejsでCLIを呼び出すの弾性キャッシュSDKを使用することができます サミールVarpe

答えて

2

。あなたはCLIで行うことができます すべてが

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 
}); 

、SDKでも可能であることがお役に立てば幸いです。

+0

Kannaiyanは、SDKを使用し、推奨されているように。 CLIからの出力をラムダで解析することは問題である。 CLIを使用すると、ラムダの実行時間が長くなります。これはあなたのケースでは頭の中だけではないかもしれません。 –

+0

おかげでみんなが試してみるよ – Sameer

0

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

関連する問題