0

この質問は、 EC2 API への REST API 呼び出しを機能させるという以前の質問のフォローアップです。

それがうまくいったので、私はそれを一般化したいと思い、いくつかのことを試しました. たとえば、地域名でフィルタリングしてリクエストを作成しようとしました

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

ドキュメントに表示されます。

署名は簡単でした。RegionName を署名要求のアルファベット順に貼り付けて、それらがない場合と同じようにすべてに署名します。それはうまくいきました。

そこで、ドキュメントで提供されている 2 番目の例に進みました。

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

OK、必要に応じて、アルファベット順に並べ替えられた場所にある署名パラメーターにフィルターを入れようとしました...

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";

そしてそれに署名します。署名が一致しないというエラーが表示されます。私はこれのバリエーションをたくさん試しましたが、うまくいきません。

フィルターを含むリクエストに署名するにはどうすればよいですか?

4

1 に答える 1

0

フィルターの「*」をエスケープする必要があります

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

それでおしまい!

于 2013-09-23T11:29:10.553 に答える