2016-04-24 18 views
0

Ich versuche, dynamische Miniaturansicht Service thumbor einzurichten und s3 als Speicher zu unterstützen, muss ich diese Community powered pip library for aws einrichten.aws keine Anmeldeinformationen Fehler

Es funktioniert gut auf meiner lokalen Umgebung, aber wenn ich versuche, es auf einem unserer Server zu hosten, bekomme ich NoCredentialsError. Ich gehe davon aus, dass dies wegen der verschiedenen Versionen von botocore ist (die neueste und eine, die von pip library installiert wurde). Hier ist Fehlerprotokoll:

File "/usr/local/lib/python2.7/dist-packages/botocore/session.py", line 774, in get_component 
    # client config from the session 
    File "/usr/local/lib/python2.7/dist-packages/botocore/session.py", line 174, in <lambda> 
    self._components.lazy_register_component(
    File "/usr/local/lib/python2.7/dist-packages/botocore/session.py", line 453, in get_data 
    - agent_version is the value of the `user_agent_version` 
    File "/usr/local/lib/python2.7/dist-packages/botocore/loaders.py", line 119, in _wrapper 
    data = func(self, *args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/loaders.py", line 364, in load_data 
DataNotFoundError: Unable to load data for: _endpoints 







2016-04-24 12:14:34 tornado.application:ERROR Future exception was never retrieved: Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 230, in wrapper 
    yielded = next(result) 
    File "/usr/local/lib/python2.7/dist-packages/thumbor/handlers/imaging.py", line 31, in check_image 
    exists = yield gen.maybe_future(self.context.modules.storage.exists(kw['image'][:self.context.config.MAX_ID_LENGTH])) 
    File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 455, in wrapper 
    future.result() 
    File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 215, in result 
    raise_exc_info(self._exc_info) 
    File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 443, in wrapper 
    result = f(*args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/tc_aws/aws/storage.py", line 107, in exists 
    self.storage.get(file_abspath, callback=return_data) 
    File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 455, in wrapper 
    future.result() 
    File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 215, in result 
    raise_exc_info(self._exc_info) 
    File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 443, in wrapper 
    result = f(*args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/tc_aws/aws/bucket.py", line 44, in get 
    Key=self._clean_key(path), 
    File "/usr/local/lib/python2.7/dist-packages/tornado_botocore/base.py", line 97, in call 
    return self._make_api_call(operation_name=self.operation, api_params=kwargs, callback=callback) 
    File "/usr/local/lib/python2.7/dist-packages/tornado_botocore/base.py", line 60, in _make_api_call 
    operation_model=operation_model, request_dict=request_dict, callback=callback) 
    File "/usr/local/lib/python2.7/dist-packages/tornado_botocore/base.py", line 54, in _make_request 
    request_dict=request_dict, operation_model=operation_model, callback=callback) 
    File "/usr/local/lib/python2.7/dist-packages/tornado_botocore/base.py", line 32, in _send_request 
    request = self.endpoint.create_request(request_dict, operation_model) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/endpoint.py", line 126, in create_request 
    operation_name=operation_model.name) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/hooks.py", line 226, in emit 
    return self._emit(event_name, kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/hooks.py", line 209, in _emit 
    response = handler(**kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/signers.py", line 90, in handler 
    return self.sign(operation_name, request) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/signers.py", line 124, in sign 
    signer.add_auth(request=request) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/auth.py", line 626, in add_auth 
    raise NoCredentialsError 
NoCredentialsError: Unable to locate credentials 

Konnte es mit der richtigen Reihenfolge behoben werden, in der ich Bibliotheken installiere? Weil die Pip-Bibliothek eine neuere Version von Botocore entfernt und eine ältere Version installiert.

EDIT:

Ich bin Prozesse mit Supervisor laufen und es scheint Prozess kippe Zugang aws Credentials

EDIT 2:

Das Problem mit der richtigen Konfiguration des Betreuers wurde aufgelöst. Der Benutzer für den Prozess von Supervisor gestartet hatte keinen Zugriff auf die Konfigurationsdatei

+0

Offenbar haben Ihre Server keine ordnungsgemäß konfigurierten Anmeldeinformationen. Wie richten Sie Ihre Anmeldeinformationen auf Ihrem Server gegenüber Ihrem Entwicklungscomputer ein? Was die Versionen anbelangt, sieht es so aus, als ob tc_aws eine starke Abhängigkeit von botocore 1.2.0 hat, und so funktioniert es möglicherweise nicht, wenn Sie darüber hinaus aktualisieren. –

+0

Ja tc_aws stuft Botocore auf 1.2.0 herunter. Mit der aktuellen Konfiguration habe ich versucht, eine Verbindung zu S3 Eimer von der Kommandozeile mit Boto3 und es funktioniert. Ich weiß nicht, was die richtige Reihenfolge der Installation dieser Bibliotheken ist. – pratsJ

+0

@JordonPhillips Ich denke, ich habe das Problem herausgefunden. Ich führe Prozesse mit Supervisor und dann Prozess cant Zugriff aws Anmeldeinformationen – pratsJ

Antwort

0

Das Problem wurde mit der richtigen Konfiguration des Supervisors gelöst. Der Benutzer für den Subprozess, der vom Supervisor gestartet wurde, hatte keinen Zugriff auf die Konfigurationsdatei von aws. Es funktionierte also mit der lokalen Umgebung oder dem Erstellen von Prozessen separat, aber nicht mit dem Supervisor.

Verwandte Themen