AWS API错误的操作DescribeRegions并不适用于该Web服务 [英] aws api error The action DescribeRegions is not valid for this web service

查看:203
本文介绍了AWS API错误的操作DescribeRegions并不适用于该Web服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要知道不同的AWS EC2地区 我知道AWS有命令行工具,这一点,但我想使用AWS API,因此 我产生下面的查询请求访问AWS EC2 API

i need to know different aws ec2 regions i know aws has command line tools for this but i want to use aws api so i generated following query request for accessing aws ec2 api

https://ec2.amazonaws.com/?Action=DescribeRegions&AWSAccessKeyId=&Version=2013-02-01&Timestamp=2013-05-24T12%3A35%3A00Z&SignatureVersion=2&SignatureMethod=HmacSHA256&Signature=xkw62EsVWEpc3rodXADy4Q3LOquKKfHmVHrrIIGQCg0=

https://ec2.amazonaws.com/?Action=DescribeRegions&AWSAccessKeyId=&Version=2013-02-01&Timestamp=2013-05-24T12%3A35%3A00Z&SignatureVersion=2&SignatureMethod=HmacSHA256&Signature=xkw62EsVWEpc3rodXADy4Q3LOquKKfHmVHrrIIGQCg0=

为此,我得到了以下响应

for which i got the following response

<?xml version="1.0" encoding="UTF-8"?>
* Connection #0 to host ec2.amazonaws.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):
<Response>
<Errors>
 <Error>
   <Code>InvalidAction</Code>
   <Messaged >The action urn:Post is not valid for this web service.</Message>
</Error></Errors>
<RequestID>4a33917f-3403-4ebc-9a85-4b5393a031c6</RequestID>
</Response>

[1]完成卷曲-v -get --data-urlen code数据的https: //ec2.amazonaws.com/?action=DescribeRegions

[2]完成AWSAccessKeyId =

[2] Done AWSAccessKeyId=

[3]实现的版本= 2013年2月1日

[3] Done Version=2013-02-01

[4]就可以完成时间戳= 2013-05-24T12%3A35%3A00Z

[4] Done Timestamp=2013-05-24T12%3A35%3A00Z

[5] - 完成SignatureVersion = 2

[5]- Done SignatureVersion=2

[6] +完成=是SignatureMethod HmacSHA256

[6]+ Done SignatureMethod=HmacSHA256

我签署了这项请求查询follwing CMD庆典素文字

i signed this request query follwing cmd bash scipt

 #!/bin/bash

q='GET
ec2.amazonaws.com
/
AWSAccessKeyId=<aws acces_key>&Action=DescribeRegions&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2013-05-24T12%3A35%3A00Z&Version=2013-02-01'

echo -n "$q" | openssl dgst -sha256 -hmac "<aws secret key>" -binary | openssl enc -base64

产量为:xkw62EsVWEpc3rodXADy4Q3LOquKKfHmVHrrIIGQCg0 = 然后我给了这个请求,卷曲分别距上述bash脚本。

output was : xkw62EsVWEpc3rodXADy4Q3LOquKKfHmVHrrIIGQCg0= and then i gave this curl request separately away from above bash script.

$curl -v -get --data-encode DATA https://ec2.amazonaws.com/?Action=DescribeRegions&AWSAccessKeyId=<aws access key>&Version=2013-02-01&Timestamp=2013-05-24T12%3A35%3A00Z&SignatureVersion=2&SignatureMethod=HmacSHA256&Signature=xkw62EsVWEpc3rodXADy4Q3LOquKKfHmVHrrIIGQCg0=

可以在任何1告诉我在哪里,我要去哪里呢?

can any 1 tell me where i m going wrong?

推荐答案

您需要引用请求URL。它包含有被除preTED你的shell字符。

You need to quote the request URL. It contains characters that are being interpreted by your shell.

线索是在输出线如[1]完成......。 URL中的&号是造成URL的片段被作为背景子shell执行。这些线是外壳的报告,这些子shell完成。

The clue is in the output lines like "[1] Done ...". The ampersands in the URL are causing fragments of the URL to be executed as background subshells. These lines are the shell reporting that those subshells have finished.

这篇关于AWS API错误的操作DescribeRegions并不适用于该Web服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆