Java AmazonEC2查询生成

Java AmazonEC2查询生成,java,php,amazon-ec2,Java,Php,Amazon Ec2,谁能告诉我一个在aws ec2中创建一个描述区域的查询的想法吗?我把&authparameters搞错了。另外,请给出一个生成签名的程序。经过长时间的搜索,我找到了一个可以创建查询并返回aws响应的程序。。它工作正常 节目 <?php $key='Your aws key'; $pwd='Your AWS secret key'; // See docs ://docs.amazonwebservices.com/AWSEC2/latest/APIReference/---

谁能告诉我一个在aws ec2中创建一个描述区域的查询的想法吗?我把&authparameters搞错了。另外,请给出一个生成签名的程序。

经过长时间的搜索,我找到了一个可以创建查询并返回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.



 ?>


您可能应该使用来处理这些东西;这将使您的代码更漂亮,它们不太可能包含bug,而且从长远来看,这将节省您的时间。

这里的“prathyush”的答案是非常方便的信息。我已经搜索了一段时间,了解如何使用php通过http请求在ec2上运行实例。这段php代码可以进行调整以实现这一点,甚至更多

例如,将$params部分替换为:

$params=数组(
“操作”=>“运行实例”, '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'), “版本”=>“2008-05-05”,
“签名转换”=>2,
“SignatureMethod”=>“HmacSHA256” );

不要忘记将上面的可用性区域更改为您需要的区域。对我来说,我把它改成了eu-west-1a


另外,在代码底部的两个位置将ec2.amazonaws.com更改为eu-west-1.ec2.amazonaws.com。

您可以通过在自己的答案上选择uptick来标记所回答的问题。