`` curl: (52) Пустой ответ от сервера``ОШИБКА, ответ от aws ECR

Я пытаюсь сделать запрос curl для получения токена авторизации ECR вместо использования aws cli. Я сослался на https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_GetAuthorizationToken.html

А чтобы сгенерировать подпись, я сослался на это: https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html

curl -v --location --request POST 'https://ecr.us-east-1.amazonaws.com:443' -H 'Accept-Encoding: identity' -H 'Content-Length: 1590' -H 'X-Amz-Target: AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken' -H 'X-Amz-Date: 20151129T221940Z' -H 'User-Agent: aws-cli/1.17.14 Python/2.7.5 Linux/3.10.0-957.1.3.el7.x86_64 botocore/1.14.14' -H 'Content-Type: application/x-amz-json-1.1' -H 'Authorization: AUTHPARAMS {AWS4-HMAC-SHA256 Credential=AKIA*******/20200514/ap-south-1/ecr/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=ffe96d25bba760d7502993a1dbf0*********************}'

Ответ, полученный через несколько минут:

* Empty reply from server
* Connection #0 to host ecr.ap-south-1.amazonaws.com left intact
curl: (52) Empty reply from server

Я в основном хочу использовать этот токен для создания запроса curl для возврата тегов изображений ECR:

curl -i -s -H "Authorization: Basic TOKEN" https://90********.dkr.ecr.ap-south-1.amazonaws.com/v2/image-name/tags/list

Если я могу запросить теги изображений с помощью приведенной выше команды без генерации токена ... пожалуйста, предоставьте ответ.


person Tanya    schedule 14.05.2020    source источник


Ответы (1)


эта ошибка означает, что вы получаете 502 response error, плохой шлюз. У меня было подобное, когда я пытался запустить команду curl через ssh внутри экземпляра, размещенного на EC2, поэтому я понял, что неправильно развернул свой образ с сопоставлением портов. Я бы порекомендовал вам проверить следующее:

  • Проверьте, разрешает ли ваша группа безопасности трафик на порт 433.
  • Проверьте, правильно ли вы развернули свой контейнер с сопоставлением портов в ECR, например:

предположим, у вас есть изображение под названием список

Для запуска на вашем локальном компьютере вы должны выполнить следующую команду

docker run -d -p 80:433 list

убедитесь, что вы правильно сопоставили эти порты в своем Dockerfile, затем отметьте свое изображение

docker tag list 90********.dkr.ecr.ap-south-1.amazonaws.com/v2/image-name/tags/list

и нажмите на ECR

docker push 90********.dkr.ecr.ap-south-1.amazonaws.com/v2/image-name/tags/list

как только ваше изображение будет загружено в ECR, вы можете запустить его

docker run -d -p 80:433 90********.dkr.ecr.ap-south-1.amazonaws.com/v2/image-name/tags/list

а затем вы можете скрутить свое изображение

curl http://ecr-image/your/path

person Augusto Accorsi    schedule 24.03.2021