Как вы выводите информацию напрямую из EC2 в файл (например, .txt или .json)? - PullRequest
0 голосов
/ 15 января 2019

Я хотел экспортировать правила группы безопасности из EC2 в тип файла (например, .txt или .json). Я использую javascript / node.js, чтобы сделать этот вывод. К сожалению, я проверил это безрезультатно.

Я разработал код, который позволил бы мне выводить группы безопасности (правила, вход, выход и т. Д.), В то же время помещая их в текстовый файл. Я сначала загрузил бы SDK в свой файл JavaScript и установил регион. Затем я создаю объект службы перед извлечением информации.

Это код, который я использовал для этого эксперимента:

// Load the SDK for JavaScript
var AWS = require('aws-sdk');

// Set the region 
AWS.config.update({region: 'us-east-1'});

var fs = require('fs');

// Create EC2 service object
var ec2 = new AWS.EC2({apiVersion: '2016-11-15'});

// Retrieve security group descriptions

ec2.describeSecurityGroups(function(err, data) {
    if (err) {
        console.log("Failed to retrieve information", err);
    }
    var sGroups = data.SecurityGroups;
    console.log("Your input has been confirmed!", JSON.stringify(sGroups));

    fs.writeFile('AWSnodeTest.txt', sGroups, function(err, result) {
        if(err) console.log("Failed to output into file", err);
    });
});

Когда я тестировал эксперимент с помощью PowerShell, сначала он был идеальным. Вся информация из групп безопасности была хорошо отображена на PowerShell. Однако на основании:

fs.writeFile('AWSnodeTest.txt', sGroups, function(err, result) {
    if(err) console.log("Failed to output into file", err);
});

Я получил только следующий вывод для упомянутого файла:

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Похоже, что-то не так с этим фрагментом кода, который помог бы мне написать файл. Какие функции мне нужны для извлечения групп безопасности EC2 в файл с помощью javascript?

1 Ответ

0 голосов
/ 15 января 2019

вы передаете переменную sGroups в качестве содержимого для записи в файл, а не сериализованную строку JSON.Я также позволил себе добавить оператор return в случае ошибки, см. Обновленный код ниже:

ec2.describeSecurityGroups(function(err, data) {
    if (err) {
        console.log("Failed to retrieve information", err);
        return;  // Added this as there's no point in continuing.
    }
    var sGroupsJSON = JSON.stringify(data.SecurityGroups);
    console.log("Your input has been confirmed!", sGroupsJSON);

    fs.writeFile('AWSnodeTest.txt', sGroupsJSON, function(err, result) {
        if(err) console.log("Failed to output into file", err);
    });
});

Надеюсь, это полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...