Amazon ec2 如何使用shell脚本在ec2.amazonaws.com上调用RunInstances操作?

Amazon ec2 如何使用shell脚本在ec2.amazonaws.com上调用RunInstances操作?,amazon-ec2,Amazon Ec2,每次我遇到错误时: 我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅维修文档 这是我的剧本: #!/bin/bash dt=$(date +%FT%TZ | sed 's/:/%3A/g') echo "$dt" q="GET elasticmapreduce.amazonaws.com / AWSAccessKeyId=652387uyt56182&Action=DescribeJobFlows&SignatureMetho

每次我遇到错误时:

我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅维修文档

这是我的剧本:

#!/bin/bash

dt=$(date +%FT%TZ | sed 's/:/%3A/g')
echo "$dt"

q="GET
elasticmapreduce.amazonaws.com
/
AWSAccessKeyId=652387uyt56182&Action=DescribeJobFlows&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=$dt&Version=2009-03-31"
 sig=$(echo -n "$q" | openssl dgst -sha256 -hmac q65272/ui5878/t62989231232 - binary| openssl enc -base64)

echo "the signature without url encoding is $sig"


curl --get --url  "https://ec2.amazonaws.com/?Action=StartInstances&AWSAccessKeyId=ty76476587yt4756&InstanceId.1=t-76wergf&MaxCount=1&MinCount=1&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=$dt&Signature=$sig&Version=2012-07-20"
谁能告诉我代码中有什么错误吗?为了保密,我更改了我的秘密凭证。
谢谢。

要签名的字符串和实际请求中有不同的操作参数。您可能需要考虑使用awscli@frederick-我的shell脚本中是否有任何错误??你能给我推荐一个链接或站点,让我获得最佳结果吗..就像我说的,你正在签名的字符串中的操作参数与你正在发出的请求不匹配。您还需要在要签名的字符串中包含其他参数(InstanceId等)