создание запросов amazon ec2 - PullRequest
0 голосов
/ 19 января 2011

Может кто-нибудь подсказать идею создания запроса для описания регионов в aws ec2.Я запуталась в & authparameters. Также, пожалуйста, дайте программу для генерации подписи.

Ответы [ 3 ]

1 голос
/ 21 января 2011

Вы, вероятно, должны просто использовать AWS SDK для PHP , чтобы справиться с этим;это сделает ваш код более приятным, гораздо менее вероятным, что он будет содержать ошибки, и сэкономит ваше время в долгосрочной перспективе.

1 голос
/ 21 января 2011

После долгого поиска я нашел программу, которая создаст запрос и вернет ответ от AWS .. Работает нормально ..

Программа

<?php 

$key='Your aws key';
 $pwd='Your AWS secret key';



// See docs   ://docs.amazonwebservices.com/AWSEC2/latest/APIReference/------->Actions---->Describe Regions 

//for making a request to the aws


 $params = array(   
 'Action' => 'DescribeAvailabilityZones',
 'AWSAccessKeyId' => $key, 
 'Timestamp' => gmdate('Y-m-d\TH:i:s\Z'),
 'Version' => '2008-05-05', 
 'ZoneName.0' => 'us-east-1a',
 'ZoneName.1' => 'us-east-1b',    
 'ZoneName.2' => 'us-east-1c', 
 'SignatureVersion' => 2,  
 'SignatureMethod' => 'HmacSHA256'
 );




 uksort($params, 'strnatcmp');
 $qstr = ''; 
 foreach ($params as $key => $val) {
 $qstr .= "&{$key}=".rawurlencode($val);
 }
 $qstr = substr($qstr, 1);

 // Signature Version 2 

 $str = "GET\n"  
 . "ec2.amazonaws.com\n"
 . "/\n"      
 . $qstr; 


 $params['Signature'] = base64_encode( hash_hmac('sha256', $str, $pwd, true) );  // Generating a base64-encoded RFC 

//2104-compliant HMAC-SHA256 



 $req = 'https://ec2.amazonaws.com/?' . http_build_query(     $params );  // encoded query string 

 echo '<a href="'.$req.'">XML</a><p>';//For Navigating or creating a request.



 ?>
0 голосов
/ 01 февраля 2011

Ответ здесь «пратюш» - очень полезная информация. Я уже некоторое время ищу информацию о том, как запустить экземпляр на ec2 через http-запрос с php. Этот бит php-кода можно адаптировать для этого и даже больше!

Например, замените раздел $ params на:

$ params = array (
'Action' => 'RunInstances', 'ImageId' => 'ami-f0f61599', 'Placement.AvailabilityZone' => 'us-east-1a', 'InstanceType' => 'm1.large', 'MinCount' => '1', 'MaxCount' => '1', 'KeyName' => 'yourkeypair', 'AWSAccessKeyId' => $ key, 'Timestamp' => gmdate ('Y-m-d \ TH: i: s \ Z'), 'Version' => '2008-05-05',
'SignatureVersion' => 2,
'SignatureMethod' => 'HmacSHA256' );

Не забудьте изменить зону доступности выше на то, что вам нужно. Для меня я изменил это на eu-west-1a.

Также измените ec2.amazonaws.com на eu-west-1.ec2.amazonaws.com в двух местах, где он отображается в нижнем бите кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...