5

ich eine App mit gcloud app deploy bereitstellen. Es läuft für ein paar Stunden in Ordnung und dann die Jobs stecken mit folgenden Informationen log:GAE Refreshing aufgrund einer 401 (Versuch 1/2)

03:54:59.748 Refreshing due to a 401 (attempt 1/2) 
03:58:44.816 Refreshing due to a 401 (attempt 1/2) 
03:58:55.781 Refreshing due to a 401 (attempt 1/2) 
03:58:56.317 Refreshing due to a 401 (attempt 1/2) 

Scheint, wie es aus dem internen service protokolliert wird: „appengine.googleapis.com“

Die eingesetzte App liest einige Dateien von GCS und veröffentlicht einige berechnete Metriken mit Google Pubsub. Ich benutze Google Client API-Bibliothek, die Anmeldeinformationen verwendet, um zu authentifizieren.

credentials = GoogleCredentials.get_application_default() 
    if credentials.create_scoped_required(): 
     credentials = credentials.create_scoped(['https://www.googleapis.com/auth/devstorage.read_only) 
    http = httplib2.Http() 
    credentials.authorize(http) 
    return discovery.build('storage', 'v1', http=http) 

Ähnliche Schnipsel für Pubsub auch. Hat jemand ein ähnliches Problem, wo die Anfrage für immer mit Info-Protokolle mit 401 Status-Code festgefahren scheint. Nicht sicher, warum die Anfrage nicht einfach abläuft und zu einem Fehler führt. irgendwelche Problemumgehungen?

+0

Gibt es einen bestimmten Grund dafür, dass Sie die empfohlenen [Google Cloud idiomatischen Bibliotheken] nicht verwenden (https://cloud.google.com/apis/docs/cloud-client-libraries)? – Jofre

Antwort

0

401 ist ein nicht autorisierter Fehler. Dies bedeutet, dass das OAuth-Beamtoken nicht mehr gültig ist und mit dem Aktualisierungstoken aktualisiert werden muss. Die Zeitachsen, die Sie erklären, stimmen mit the duration of the bearer tokens überein.

Ich würde die cloud idiomatic libraries verwenden, oder wenn Sie GAE-Standard verwenden, the appengine libraries directly. Diese Bibliotheken behandeln die Authentifizierung selbst (einschließlich der Aktualisierung der Token nach deren Ablauf) und enthalten weitere Optimierungen für die Verwendung in App Engine.