使用PHP SDK 3更新AWS安全组规则时遇参数验证错误
解决AWS PHP SDK v3 ModifySecurityGroupRules参数验证错误
错误根源
你的代码中SecurityGroupRules参数格式不符合SDK要求:该参数需要是包含多条规则对象的索引数组,而非单个关联数组,这也是导致验证报错的核心原因。
正确代码示例
$result = $ec2Client->modifySecurityGroupRules([ 'GroupId' => 'sg-ebd1cf8e', 'SecurityGroupRules' => [ // 每条修改规则是一个独立的关联数组 [ 'SecurityGroupRuleId' => 'sgr-xxxxxx', // 字符串类型的目标规则ID 'SecurityGroupRule' => [ 'CidrIpv4' => '192.168.1.0/24', // 新的IPv4地址段 'Description' => 'Updated internal access rule' // 规则描述 // 此处无需重复填写SecurityGroupRuleId ] ] // 如需批量修改多条规则,继续添加类似数组即可 ] ]); print_r($result);
关键修正点
- 参数层级调整:将单条规则放入索引数组的元素中,而非直接作为
SecurityGroupRules的键值对 - 移除冗余字段:
SecurityGroupRule内部不需要重复指定SecurityGroupRuleId,仅需在外层规则对象中声明一次 - 类型匹配:
SecurityGroupRuleId确实是字符串类型,之前的报错提示是因为参数结构错误导致的误导性信息
内容的提问来源于stack exchange,提问作者airyt
相关产品推荐
相关产品推荐

