通过AWS SDK for PHP启动EC2实例时无法添加标记(无CLI)
我能够使用AWS SDK for PHP成功地启动新实例。但是,我无法添加标记('Name'='newinstance')。我尝试了几种方法,下面的方法似乎是最合理的。但是,在刷新EC2仪表板时,我可以看到创建了新实例,但是名称标记仍然为空通过AWS SDK for PHP启动EC2实例时无法添加标记(无CLI),php,arrays,amazon-web-services,instances,Php,Arrays,Amazon Web Services,Instances,我能够使用AWS SDK for PHP成功地启动新实例。但是,我无法添加标记('Name'='newinstance')。我尝试了几种方法,下面的方法似乎是最合理的。但是,在刷新EC2仪表板时,我可以看到创建了新实例,但是名称标记仍然为空 $ec2Client = new Ec2Client([ 'region' => 'xx-xxxx-1', 'version' => 'latest', 'p
$ec2Client = new Ec2Client([
'region' => 'xx-xxxx-1',
'version' => 'latest',
'profile' => 'default'
]);
// Launch an instance with the key pair and security group
$result = $ec2Client->runInstances(array(
'ImageId' => 'ami-xxxxxxxx',
'MinCount' => 1,
'MaxCount' => 1,
'InstanceType' => 't2.large',
'KeyName' => 'xxxxxx',
'SubnetId' => 'subnet-xxxxxxxx',
'VpcId' => 'vpc-xxxxxxxx',
'Tags' => array(
'Key' => 'Name',
'Value' => 'New Instance',
),
'SecurityGroups'[1] => 'sg-xxxxxxxx',
));
我不知道您使用的是哪个版本的SDK,但是从文档中没有
标记
键
尝试使用其他函数。请注意,标记
是双数组,与您的示例不同
$ec2Client->createTags([
'Resources' => [$result['Instances'][0]['InstanceId']],
'Tags' => [
['Key' => '', 'Value' => ''],
['Key' => '', 'Value' => ''],
]
]);
感谢@Justinas指出使用版本2。然而,我正在使用版本3 SDK,并在中找到了答案 通过测试和工作,可以在RunInstances操作下的TagSpecifications下完成标记,如下所示:
'TagSpecifications' => [
[
'ResourceType' => 'instance',
'Tags' => [
[
'Key' => 'Name',
'Value' => 'New Instance Name',
],
],
],
],
有关TagSpecifications数组结构的更多信息,请参见此处:,对于此处的标记结构:我使用的是最新版本3。无论如何,我确实错过了文档中所说的内容,我已经找到了解决这个问题的方法。我会更新这个作为一个答案。