如何使用过滤器构建Amazon EC2 API调用的签名请求?

时间:2013-09-23 00:53:29

标签: amazon-web-services amazon-ec2 amazon

此问题是关于获取对EC2 API的REST API调用的earlier问题的后续问题。

有了这个工作,我想概括它并尝试了几件事。例如,我尝试按区域名称进行过滤并发出请求

https://ec2.amazonaws.com/?Action=DescribeRegions
&RegionName.1=us-east-1
&RegionName.2=eu-west-1

他们在documentation中显示。

签名很简单,将RegionName(s)按字母顺序排列在签名请求中,并按照我没有它们的方式签署整个内容。结果很好。

所以我进入了他们在文档中提供的第二个例子。

https://ec2.amazonaws.com/?Action=DescribeRegions
&Filter.1.Name=endpoint
&Filter.1.Value.1=*ap*

好的,我尝试按照字母顺序排序的位置将过滤器放入我的签名参数中......

char * signing_parameters_template =
    "AWSAccessKeyId=%s&"
    "Action=DescribeRegions&"
    "Filter.1.Name=endpoint&"
    "Filter.1.Value=*ap*&"
    "SignatureMethod=HmacSHA256&"
    "SignatureVersion=2&"
    "Timestamp=%s&"
    "Version=2013-08-15";

并签名。我收到签名不匹配的错误。我尝试了很多变种,没有运气。

如何签署包含过滤器的请求?

1 个答案:

答案 0 :(得分:0)

我必须逃避过滤器中的“*”

"Filter.1.Value=*ap*&"

就是这样!