authorizeSecurityGroupIngress既不添加规则,也不会失败

时间:2014-12-15 17:48:50

标签: javascript amazon-ec2

createSecurityGroup的回调中,我尝试向新安全组添加一些规则。对authorizeSecurityGroupIngress的调用不会失败(即err为空),但是当我在AWS控制台中签入时,规则不会出现在安全组的“入站”选项卡中。

这是我的代码的简化版本:

var createSecurityGroupParams = {
    GroupName   : "webserver-default",
    VpcId       : Vpc.VpcId, // a valid vpc id
    Description : "..."
};

ec2.createSecurityGroup(createSecurityGroupParams, function(err, data) {
    if (err) { /* error handling */}

    var authorizeSecurityGroupIngressParams = {
        GroupId    : data.GroupId,
        IpProtocol : "tcp",
        ToPort     : 22,
        CidrIp     : "0.0.0.0/0"
    };

    ec2.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressParams, function(err, data) {
        if (err) { /* error handling... never called */ }
    });
});
提前了解你的时间。

1 个答案:

答案 0 :(得分:0)

看起来我使用了错误的请求参数组合。像这样改变authorizeSecurityGroupIngressParams解决了这个问题:

var authorizeSecurityGroupIngressParams = {
    GroupId: data.GroupId,
    IpPermissions: [{
        IpProtocol: "tcp",
        FromPort: 22,
        ToPort: 22,
        IpRanges: [{
            CidrIp: "0.0.0.0/0"
        }]
    }]
};

仍然不知道为什么最后一个版本没有因错误而失败。