Я пытаюсь создать конечную точку API для получения входа в систему с помощью ecr-докера, каждый раз, когда я запускаю код на своей локальной машине, логин позволяет мне извлекать данные из репозитория изображений.Однако всякий раз, когда я обращаюсь к конечной точке API, вход в систему не позволяет мне извлекать данные из репозитория.
Я обращался к исходному коду aws cli «get-login», и мой код конечной точки практически идентичен.Я понятия не имею, почему логин работает только при создании на моем локальном компьютере.
@get
def get_docker_login(event, context, session):
client = boto3.client('ecr')
response = client.get_authorization_token(registryIds=[<registry_id>])
token = response['authorizationData'][0]['authorizationToken']
pre_decode = base64.b64decode(token)
user, password = pre_decode.decode("utf-8").split(':')
endpoint = response['authorizationData'][0]['proxyEndpoint']
login_cmd = f"docker login -u {user} -p {password} {endpoint}"
return {"login": login_cmd}
Независимо от того, сгенерирован ли логин на моем локальном компьютере или через API, я получаю успешный вход в докер.Разница возникает, когда я вызываю Docker Pull.Всякий раз, когда я выполняю извлечение после входа в систему с помощью имени входа API, я получаю следующее сообщение: «Ошибка ответа от демона: отказано в доступе по запросу, хранилище не существует или может потребоваться« вход в докер »'