Можно ли обновить группы безопасности через javascript, читая файл json вместо использования параметров? - PullRequest
0 голосов
/ 26 января 2019

Я хочу обновить правила группы безопасности, чтобы мой файл javascript считывал информацию из отдельного файла json, а не использовал параметры json.

Теперь, когда я использовал параметры json для обновления групп безопасности,Я начал изучать обновление с помощью файла json, прочитав файл с помощью javascript / node.js.

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

var AWS = require('aws-sdk');

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

var fs = require('fs');

var filename = 'sg-0136a8e42bc076309Ingress.json';

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

ec2.updateSecurityGroupRuleDescriptionsIngress(filename, function(err, data) {
    if (err) {
        console.log("Failed to retrieve information", err);
        return; 
    }
    console.log("Information updated!");

    fs.readFile(filename, (err, data) => {
        if(err) console.log("Failed to output into file", err);
    });

});

Вотпараметры JSON:

GroupId: "sg-0136a8e42bc076309",
IpPermissions: [
    {
        FromPort: 139,
        IpProtocol: "tcp",
        IpRanges: [
            {
                CidrIp: "0.0.0.0/0",
                Description: "NetBIOS Session Service"
            }
        ],
        ToPort: 139
    }
]

Но в результате я получил только сообщение об ошибке:

Failed to retrieve information { MultipleValidationErrors: There were 34 validation errors:
* InvalidParameterType: Expected params to be a structure
* MissingRequiredParameter: Missing required key 'IpPermissions' in params

Это пример ошибки.Как я могу обновить группы безопасности с помощью javascript, прочитав файл json без ошибки?

1 Ответ

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

Я думаю, что вы не должны записывать имя файла в переменную var filename = 'sg-0136a8e42bc076309Ingress.json' и устанавливать его в качестве параметра функции ec2.updateSecurityGroupRuleDescriptionsIngress. Вы можете просто запросить файл JSON и указать в качестве параметра функцию

var file = require("./sg-0136a8e42bc076309Ingress.json");
ec2.updateSecurityGroupRuleDescriptionsIngress(file, function(err, data) {
     if (err) {
         console.log("Failed to retrieve information", err);
         return; 
     }
     console.log("Information updated!");
});

Кроме того, еще одна вещь, в данном случае ваша функция fs.readFile бесполезна.

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