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
Fragen:
taskqueue.add
-Teil des Python-Codes? ah-builtin-python-bundle
? BEARBEITEN
Der eingebaute datastore-admin wurde aktiviert, wie in diesem Screenshot zu sehen ist.
Und es gibt kein dispatch.yaml
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
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.
Tags und Links python google-app-engine cron backup