При создании экземпляров из AWS SDK (для Nodejs) с использованием идентификатора изображения мне нужно добавить «проверку назначения источника», чтобы быть ложным для всех созданных экземпляров.
Добавлены сетевые интерфейсы под параметрами, но это не сработало:
const params = {
ImageId: image,
InstanceType: instanceType,
MaxCount: 1,
MinCount: 1,
UserData: launchScriptHost
};
// .. some other parameters too, all works ok
params.NetworkInterfaces=[{SourceDestCheck:false}]; // <----- tried this
params.UserData = Buffer.from(params.UserData).toString("base64"); // launch scripts
ec2.runInstances(params, function(err, data) {
if (err)
{
console.log(err, err.stack);
return callback("error");
}
else
{
console.log(data);
return callback(data);
}
});
Это была ошибка:
UnexpectedParameter: Unexpected key 'SourceDestCheck' found in
params.NetworkInterfaces[0]
Без элемента NetworkInterfaces[0].SourceDestCheck
он создает экземпляр, но с этой опцией, включенной по умолчанию (для типа экземпляра G3). Затем это приводит к сбою любых запросов HTTP POST из-за ошибки «econnrefused» в модуле http Nodejs.
Я прочитал документацию, но она не показывает эту опцию в части, где определено runInstances. Это поддерживается? Если да, почему он не принимает эту опцию?
Если это не разрешено таким образом, могу ли я сделать это в части сценария запуска (когда экземпляр загружается, прежде чем поступит какой-либо http-запрос)?
Мне нужны эти экземпляры, работающие как с входящими, так и с исходящими данными между lightsail или любым другим интернет-источником в качестве основного сервера (используя EC2 в качестве источника вычислений). Этот переключатель проверки назначения источника делает невозможным доступ извне, когда он true
.
Если нет способа сделать это до того, как он откроет соединения, есть ли обходной путь, чтобы разрешить доступ как для входящего, так и для исходящего http / tcp? Перепробовал все комбинации настроек группы безопасности, но они не работают, когда эта опция включена (по умолчанию в G3).