dopy.manager.Ошибка выполнения: не удается аутентифицировать вас

#python #vagrant #ansible

#python #бродяга #ansible

Вопрос:

Я пытаюсь настроить виртуальную машину (с Vagrant и Ansible), для которой нужен файл.для полной правильной конфигурации этого компьютера (согласно книге, которую я изучаю), я использовал DigitalOcean API V2, но поскольку у меня нет действительной кредитной карты, моя учетная запись заблокирована, поэтому мне пришлось сменить DigitalOcean на AWS, поскольку компания, в которой я работаю, имеетучетная запись в AWS, теперь я беру «идентификатор клиента» и «ключ api» из AWS VM, поэтому вышеупомянутые проблемы вернулись…когда я пытаюсь использовать «python file.py » команда, выводящая сообщение, повторяется:

dopy.manager.Ошибка выполнения: не удается аутентифицировать вас.

 **the file.py:** 

    """
    dependencias: 
        sudo pip install dopy pyopenssl ndg-httpsclient pyasn1
    """

    import os
    from dopy.manager import DoManager
    import urllib3.contrib.pyopenssl
    urllib3.contrib.pyopenssl.inject_into_urllib3()


    api_version = os.getenv("DO_API_VERSION")
    api_token=os.getenv("DO_API_KEY")

    #do = DoManager(cliend_id, api_key)
    do = DoManager(None, api_token, api_version=2)

    keys = do.all_ssh_keys()
    print "ssh key nametid"
    for key in keys:
        print "%st%d" % (key["name"], key["id"])

    print "Image nametid"
    imgs = do.all_images()
    for img in imgs:
        if img["slug"] == "ubuntu-14-04-x64":
            print "%st%d" % (img["name"], img["id"])

    print "Region nametid"
    regions = do.all_regions()
    for region in regions:
        if region["slug"] == "nyc2":
            print "%st%d" % (region["slug"], region["id"])

    print "Size nametid"
    sizes = do.sizes()
    for size in sizes:
        if size["slug"] == "512mb":
            print "%st%d" % (size["slug"], size["id"])
  

Я ценю любую помощь.

Ответ №1:

Попробуйте удалить кавычки из api_token:

 do = DoManager(None, api_token, api_version=2)
  

В противном случае ваш токен всегда является буквальной строкой api_token, а не переменной api_token .

Комментарии:

1. Итак, чувак, я внес изменения, но это не сработало хорошо .. вывод продолжает возвращаться: raise DoError(json[‘message’]) dopy.manager . Ошибка выполнения: не удается аутентифицировать вас.

2. Я не могу передать свой токен API, чувак, если ты имеешь в виду… .Чувак, я только что понял ошибку: в файле. py Я написал «api_token= os.getenv («DO_API_KEY»)» и в команде «экспорт» в терминале я пишу «экспортировать DO_API_TOKEN =» вместо «экспортировать DO_API_KEY» в … Прошу прощения за недостаток внимания.. Я собираюсь изменить код и выходные данные в вопросе.