使用图像ID从AWS开发工具包(用于Node.js)创建实例时,我需要添加“源目标检查”,以使所有创建的实例都为假。
在参数下添加了网络接口,但是它不起作用:
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请求失败,并在Node.js http模块上失败,出现“ econnrefused”错误。
我阅读了文档,但未在定义runInstances的部分显示此选项。支持吗?如果是,为什么它不接受此选项?
如果不允许这种方式,我可以在启动脚本部分(当实例启动时,在任何http请求到达之前)执行此操作吗?
我需要这些实例处理lightail或任何其他作为主要服务器的Internet源(使用EC2作为计算源)之间的传入和传出数据。此源目标位置检查切换使其true
无法从外部访问。
如果在打开连接之前无法执行此操作,那么是否存在变通方法来启用对入站和出站http / tcp的访问?尝试了安全组设置的所有组合,但是在启用此选项(默认情况下,在G3上)时它们不起作用。