Как выполнить простой вызов API AWS / EC2 rest с помощью Curl - PullRequest
0 голосов
/ 02 апреля 2020

Кто-нибудь использовал cUrl для управления AWS (EC2) rest API? Здесь я выбрал самый простой из возможных вызовов, перечисляя запущенные экземпляры. Я что-то упускаю или я явно показываю незнание правильного использования cUrl? Единственное реальное преимущество, которое у меня есть, - это сообщение от 2014 года, кроме разбросанных AWS документов, которые не показывают фактический полный пример. (Я понимаю, что есть SDK). Мне нужен эксперт по скручиванию ... Думаю, и кто-то, кто поможет мне преодолеть чрезмерное использование слова "канонический" техническим писателем AWS.

Rest API Действие DescribeImages Создание канонического запроса

Bash:

amz_access_key_ID="????"
amz_ec2_secret="????"
amz_host=ec2.amazonaws.com
amz_date8=`date -u "+%Y%m%d"`
amz_date_http=`date -uR`
amz_date_rfc8601=`date -u "+%Y%m%dT%H%M%SZ"`
amz_content_type="application/json"
amz_credential="${amz_access_key_ID}/${amz_date8}/us-west-2/ec2/aws4_request"
amz_signed_headers="${amz_host};${amz_date_rfc8601};${amz_content_type}"
amz_signature=`echo -en ${amz_signed_headers} | openssl sha256 -hmac ${amz_ec2_secret} -binary | base64`
params="Action:DescribeInstances;Version:2016-11-15;X-Amz-Algorithm:AWS4-HMAC-SHA256;X-Amz-Credential:${amz_credential};X-Amz-Date:${amz_date_rfc8601};X-Amz-SignedHeaders:${amz_signed_headers};X-Amz-Signature:${amz_signature}"
curl -X POST -H "Content-Type:${amz_content_type}" -H "Date:${amz_date_http}" -H "Host:${amz_host}" -F "${params}" http://ec2.amazonaws.com/

Результат от Amazon:

<!doctype html><html...HTTP Status 500 – Internal Server Error</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Message</b> Encountered an Internal Error</p><p><b>Description</b> The server encountered an unexpected condition that prevented it from fulfilling the request.</p><hr class="line" /></body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...