Boto3 ECR авторизационный токен не работает при генерации в лямбда-функции - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь создать конечную точку 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, я получаю следующее сообщение: «Ошибка ответа от демона: отказано в доступе по запросу, хранилище не существует или может потребоваться« вход в докер »'

...