массивы — невозможно добавить теги при запуске экземпляра EC2 через AWS SDK для PHP (без CLI)

Я могу успешно запускать новые экземпляры, используя AWS SDK для PHP. Однако я не могу добавить теги («Имя» = «Новый экземпляр»). Я попытался сделать это несколькими способами, из которых следующие выглядели наиболее разумными. Тем не менее, после обновления панели мониторинга EC2 я вижу, что новый экземпляр создан, однако тег имени остается пустым.

        $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',
));

0

Решение

Я не знаю, какую версию SDK вы используете, но из AWS v2 SDK документации нет Tags ключ.

Попробуйте использовать другую функцию createTags. Обратите внимание, что Tags это двойной массив, не так, как в вашем примере.

$ec2Client->createTags([
'Resources' => [$result['Instances'][0]['InstanceId']],
'Tags' => [
['Key' => '', 'Value' => ''],
['Key' => '', 'Value' => ''],
]
]);
0

Другие решения

Спасибо @Justinas за указание на использование версии 2. Однако я использую SDK версии 3 и нашел ответ в https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#runinstances.

Протестировано и работает, тег можно сделать в разделе «Спецификации тега» в операции RunInstances следующим образом:

'TagSpecifications' => [
[
'ResourceType' => 'instance',
'Tags' => [
[
'Key' => 'Name',
'Value' => 'New Instance Name',
],
],
],
],

Более подробную информацию о структуре массива TagSpecifications можно найти здесь: https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#shape-tagspecification, и для структуры тегов здесь: https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#shape-tag

0

По вопросам рекламы [email protected]