404 beim Erstellen einer Sicherung in einem Google App Engine-Projekt

8

Einrichtung

Ich habe das 404-Problem festgestellt, nachdem ich die nicht akzeptierten Antworten der Frage AppEngine verfolgt habe Datenspeicher - Programmgesteuertes Sichern

Ich habe den Datastore-Administrator aktiviert, wie von einem der Antwortanbieter vorgeschlagen. Ich kann manuell eine Datenspeichersicherung in der Google App Engine-Konsole auslösen und die Sicherung wird ohne Fehler ausgeführt.

Der Code in dieser Frage lebt in einem Modul namens "app". Nicht 'Standard'.

Das 404 Problem

Dies ist der Cron-Job in cron.yaml.

%Vor%

Der Handler der URL wird eine Backup-Aufgabe in eine Warteschlange stellen, die ihrerseits einen Aufruf an

macht %Vor%

(Ich habe hier meine App-ID durch 'test' ersetzt) ​​

Dies zeigt einen 404 Fehler im Protokoll.

Wenn ich die obige URL mit meinem App-Host-Namen in einem Browser verwende (d. h. https://test.appspot.com/_ah/datastore_admin/backup.create? gs_bucket_name=%2Fgs%2Ftest.appspot.com%2F21-06-2015&kind=Test&kind=TestContent &kind=TestDocument&filesystem=gs ), erhalte ich auch einen 404.

Hier ist der relevante Code im Handler der Route /_backup/fullbackup

%Vor%

Fragen:

  • Was ist die Ursache des Problems?
  • Benötige ich einen Warteschlangennamen im taskqueue.add -Teil des Python-Codes?
  • Muss ich in meinem cron.yaml das Ziel auf ah-builtin-python-bundle ?
  • setzen?

BEARBEITEN

Der eingebaute datastore-admin wurde aktiviert, wie in diesem Screenshot zu sehen ist.

Und es gibt kein dispatch.yaml

    
Anthony Kong 22.06.2015, 00:35
quelle

2 Antworten

2

Es hängt mit einem Warteschlangenkonfigurationsproblem zusammen.

In der Datei app.yaml war vor der Implementierung der regulären Sicherung eine 'standardmäßige' Warteschlangendefinition vorhanden. Die Sicherungsaufgaben erreichen dadurch nicht das Ziel 'ah-builtin-python-bundle'

Wenn ich eine neue Warteschlange definiere

%Vor%

Verwenden Sie dann diesen Code, um die Aufgabe einzufügen,

%Vor%

Dann kann die Google App Engine einen Backup-Satz erstellen

    
Anthony Kong 30.06.2015, 21:40
quelle
6

Haben Sie den Datastore-Administrator aktiviert? Sie müssen dies getan haben, damit das Modul ah-builtin-python-bundle existieren kann. Dies ist ein spezielles Modul, das in Ihrer App "bereitgestellt" wird, wenn Sie den Datastore-Administrator aktivieren, der wirklich für Anfragen auf /_ah/datastore_admin und Launch verantwortlich ist MapReduce Jobs, die aus dem Datenspeicher lesen und die Backup-Dateien in Cloud Storage (oder wo auch immer Sie senden) erstellen.

Eine weitere Möglichkeit besteht darin, dass Sie test.appspot.com fest codiert in Ihre App verwendet haben. Besitzt du diese App-ID, "test"? Aus dem Screenshot des Fehlers, den Sie im Browser sehen, scheint es so zu sein, als würden Sie versuchen, den Bucket " test.appspot.com " zu sichern, der der Standard-Bucket für die App mit der App-ID "test" wäre. In dem Log-Screenshot, den Sie anzeigen, wird jedoch auch versucht, den Bucket " example.appspot.com " zu sichern. Stellen Sie sicher, dass Ihre App diese Buckets besitzt.

Eine andere Möglichkeit ist, dass das Modul, das die Anfrage bearbeitet, nicht ah-builtin-python-bundle , sondern ein anderes ist. Dies kann auch dann auftreten, wenn Sie in der Methode zum Hinzufügen von Aufgaben ein anderes Ziel angeben, wenn Sie eine Nachricht senden Regel , die die Anfrage umleitet.

    
Nick 24.06.2015 23:35
quelle