Поиск идентификатора ресурса EC2, с которым связан известный общедоступный IP-адрес c, в узле - PullRequest
0 голосов
/ 26 февраля 2020

Учитывая известный публикуемый c IP-адрес (например, elasti c IP), как я могу найти идентификатор ресурса экземпляра EC2, связанного с ним, в узле?

Мое конечное намерение состоит в том, чтобы запустить / остановить экземпляр EC2, связанный с данным опубликованным IP-адресом c с узла, работающего в другом экземпляре EC2 в той же учетной записи AWS. Я предполагаю, что сначала мне нужно найти идентификатор ресурса экземпляра, который я хочу запустить / остановить, чтобы затем я мог вызвать ec2.startInstances() с идентификатором ресурса, но во время выполнения я знаю только IP-адрес publi c экземпляра начать / остановить.

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Вы можете использовать descriptionInstances с фильтром "ip-address", чтобы найти искомый экземпляр. Затем вы можете использовать идентификатор экземпляра, чтобы остановить экземпляр или сделать что-нибудь еще, что вам может понадобиться.

var AWS = require('aws-sdk');
var ec2 = new AWS.EC2();
ec2.describeInstances(
    {
        Filters: [
            {
                Name: "ip-address",
                Values: [
                    "5.5.5.5"
                ]
            }
        ]
    },
    function (err, data) {
        if (err) console.log(err, err.stack); // an error occurred
        else { // successful response
            data.Reservations.forEach(r => {
                r.Instances.forEach(i => {
                    console.log(i.InstanceId);
                })
            })
        }
    }
);
1 голос
/ 26 февраля 2020

Используйте API-интерфейс describeAddresses Node. В нем будут перечислены ваши ElasticIP и какой InstanceID назначен каждому. Из этого можно вызвать startInstances().

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeAddresses -property

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

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