Невозможно добавить теги при запуске экземпляра EC2 через AWS SDK для PHP (без CLI) - PullRequest
0 голосов
/ 31 мая 2018

Я могу успешно запускать новые экземпляры, используя 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',
        ));

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

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

Протестировано и работает, тег можно сделать в разделе TagSpecifications подОперация 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, и для структуры Tag здесь: https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ec2-2016-11-15.html#shape-tag

0 голосов
/ 31 мая 2018

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

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

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