通过 PHP SDK 3 更新 AWS 安全组规则

问题描述 投票:0回答:1

我使用的是最新版本的 PHP SDK v3。该文档不包含示例,并且验证令人困惑。我正在使用此处的文档

我正在尝试以下操作:

$result = $ec2Client->modifySecurityGroupRules(
    [
    'GroupId' => 'sg-ebd1cf8e',
    'SecurityGroupRules' => [
        'SecurityGroupRuleId' => [SECURITY GROUP ID],
        'SecurityGroupRule' => [
            'SecurityGroupRuleId' => [SECURITY GROUP ID],
            'CidrIpv4'            => [NEW IP4 ADDRESS],
            'Description'         => [RULE DESCRIPTION]
            ]
        ]
    ]
);
print_r( $result );

回复:

Uncaught InvalidArgumentException: Found 1 error while validating the input provided for the ModifySecurityGroupRules operation:
[SecurityGroupRules][SecurityGroupRuleId] must be an associative array. Found string(21) XXXXXXXXXX in /var/www/XXXXXXXXXX/aws/Aws/Api/Validator.php:65

根据docs,安全组规则 ID 是一个字符串,但验证正在寻找一个从未定义的关联数组。

php amazon-web-services sdk aws-security-group
1个回答
0
投票

感谢@mark-b找到了解决方案 比我正在使用的更好的文档在这里。 这是我的有效代码:

$result = $ec2Client->modifySecurityGroupRules( [ 
    'GroupId' => '<group id>',
    'SecurityGroupRules' => [
        [
            'SecurityGroupRule' => [
                'CidrIpv4'          => '<ip address>/32',
                'CidrIpv6'          => '',
                'Description'       => '<description>',
                'FromPort'          => -1,
                'IpProtocol'        => -1,
                'PrefixListId'      => '',
                'ReferencedGroupId' => '',
                'ToPort'            => -1,
            ],
            'SecurityGroupRuleId' => '<rule id>',
        ]
    ]
]);
print_r( $result );
© www.soinside.com 2019 - 2024. All rights reserved.