使用AWS PHP SDK v3创建EC2安全组如何设置控制台Name列值
AWS控制台安全组列表显示的第一列Name,本质是安全组绑定的名为Name的标签,并非createSecurityGroup接口的原生参数,你直接在请求参数中加Name字段的方式无法生效。
你可以通过以下两种方式设置该值:
方式一:创建安全组时直接传入标签(推荐)
在创建安全组的请求参数中新增Tags字段,声明Name标签即可,修正后的代码如下:
$Ec2Client = new Aws\Ec2\Ec2Client([ 'version' => 'latest', 'region' => 'us-east-1', 'profile' => 'default' ]); $SecGroupParams = [ 'Description' => 'My Security Group', 'GroupName' => 'my_security_group', 'VpcId' => 'vpc-xxxxxx', // 配置标签实现控制台Name列展示 'Tags' => [ [ 'Key' => 'Name', 'Value' => 'My Security Group' ] ] ]; $result = $Ec2Client->createSecurityGroup($SecGroupParams);
方式二:创建安全组后单独绑定标签
如果你使用的是非常早的SDK版本不支持创建时传标签,可以在安全组创建完成后调用createTags接口单独绑定标签:
// 从创建接口返回结果中获取生成的安全组ID $securityGroupId = $result['GroupId']; // 调用打标签接口设置Name标签 $Ec2Client->createTags([ 'Resources' => [$securityGroupId], 'Tags' => [ [ 'Key' => 'Name', 'Value' => 'My Security Group' ] ] ]);
补充说明:你在AWS控制台直接创建安全组时填写的名称,后台会自动转换为Name标签绑定到资源上,所以看起来是直接设置的名称。不止安全组,EC2实例、子网、路由表等绝大多数AWS资源的控制台显示名称,都是通过Name标签实现的,都可以用上述逻辑配置。
内容的提问来源于stack exchange,提问作者EastsideDev
相关产品推荐
相关产品推荐

