2016-03-07 2 views
0

Была попытка развернуть пользовательский AMI *, в котором есть демон запуска и пользовательские пакеты) У меня есть номер/id AMI. Так я делаю:Предоставление пользовательского AMI на EC2 через PHP-SDK

$result = $ec2Client->runInstances(array(
    'ImageId'  => $privateID, // This is my private AMI number 
    'Region' => 'us-west-2', // EDITED 
    'MinCount'  => 1, 
    'MaxCount'  => 1, 
    'InstanceType' => $InstanceType, 
    'KeyName'  => $keyPairName, 
    'SourceSecurityGroupName' => $securityGroupName, 
    'SourceSecurityGroupOwnerId' => $myID, 
    'UserData'  => $serverID //user-data 
)); 

Это говорит о том, что AMI не существует, я думаю, это потому, что это частная (и я хочу, чтобы держать его закрытым). Я пытался смотреть на класс EC2 и не мог найти, как использовать частный AMI: http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Ec2.Ec2Client.html

я на основе этого кода этого блога: https://blogs.aws.amazon.com/php/post/TxMLFLE50WUAMR/Provision-an-Amazon-EC2-Instance-with-PHP

EDIT: ОШИБКА:

PHP Fatal error: Uncaught exception 'Aws\Ec2\Exception\Ec2Exception' with message 'Error executing "RunInstances" on "https://ec2.us-east-1.amazonaws.com"; AWS HTTP error: Client error: `POST https://ec2.us-east-1.amazonaws.com` resulted in a `400 Bad Request` response: 
<?xml version="1.0" encoding="UTF-8"?> 
<Response><Errors><Error><Code>InvalidAMIID.NotFound</Code><Message>The image id (truncated...) 
InvalidAMIID.NotFound (client): The image id '[ami-b35db1d3]' does not exist - <?xml version="1.0" encoding="UTF-8"?> 
<Response><Errors><Error><Code>InvalidAMIID.NotFound</Code><Message>The image id '[ami-b35db1d3]' does not exist</Message></Error></Errors><RequestID>51d03326-47da-422a-ba21-404614fd1c1b</RequestID></Response>' 

Weird это глядя на нас-восток-1, когда мой acocunt настроен в регионе us-west2 (abc)

+0

ошибка, не могли бы вы попробовать мое второе решение? – BMW

ответ

1

Вам также нужно указать region.

'region' => '<region name>' 

Или вы могли бы подключить aws с областью номинации, как показано ниже?

$client = Ec2Client::factory(array(
    'profile' => '<profile in your aws credentials file>', 
    'region' => 'us-west-2' 
)); 
+0

Добавлено: 'Region' => 'us-west-2a'; Еще одна проблема – JSChasle

+0

'us-west-2a' доступна зона (AZ),' us-west-2' является регионом – BMW

+0

Я изменил ее на us-west-2 - Получая ту же ошибку. Пробованный регион и регион (без капитала R) – JSChasle

Смежные вопросы