2011-01-19 52 views
0

任何一个可以告诉一个想法,以用于描述AWS在& authparameters。也请给一个程序来生成签名ec2.I困惑地区创建一个查询。Amazon EC2的查询作出

+0

您可以通过选择自己的答案选择uptick来回答您的问题。 – Nishant 2011-01-21 07:19:03

回答

1

一个长期的搜索我发现了一个程序,将创建一个查询并返回AWS..It响应工作正常后..

计划

<?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. 



?> 
1

你或许应该只使用AWS SDK for PHP来为你处理这些东西;它会使你的代码更好,它们不太可能包含错误,从长远来看,它会为你节省时间。

0

这里由“prathyush”答案是非常方便的信息。我一直在寻找一些关于如何通过使用php的http请求在ec2上运行实例的信息。这一点的PHP代码可以适应这样做和更多!

例如替换到$ params部分:

$ PARAMS =阵列(
'动作'=> 'RunInstances', '图像标识'=> 'AMI-f0f61599', “Placement.AvailabilityZone '=>'us-east-1a', 'InstanceType'=>'m1.large', 'MinCount'=>'1', 'MaxCount'=>'1', 'KeyName'=>' 'AWSAccessKeyId'=> $ key, 'Timestamp'=> gmdate('Ymd \ TH:i:s \ Z'), 'Version'=>'2008-05-05',
'SignatureVersion'=> 2,
'是SignatureMethod'=> 'HmacSHA256' );

不要忘记更改上面的可用性区域,以你所需要的。对我而言,我将它改为欧洲西部1a。

也改变ec2.amazonaws.com到eu-west-1.ec2.amazonaws.com在它出现在代码的底部位的两个地方。