Ich baue eine Beam-Pipeline auf Google Cloud-Datenfluss.GoogleCloud DataFlow konnte eine Datei nicht in den temporären Speicherort schreiben
Ich erhalte einen Fehler, dass Cloud-Datenfluss nicht berechtigt ist, in ein temporäres Verzeichnis zu schreiben.
Dies ist verwirrend, da klar Datenfluß die Fähigkeit, den Eimer zu schreiben hat, erstellt er einen Testordner.
Warum sollte ich in der Lage sein, einen Testordner zu schreiben, aber keine Temp-Ordner?
Ich bin in einem Andock-Container auf einer Computer-Engine ausgeführt. Ich bin vollständig mit meinem Dienstkonto authentifiziert.
PROJECT=$(gcloud config list project --format "value(core.project)")
BUCKET=gs://$PROJECT-testing
python tests/prediction/run.py \
--runner DataflowRunner \
--project $PROJECT \
--staging_location $BUCKET/staging \
--temp_location $BUCKET/temp \
--job_name $PROJECT-deepmeerkat \
--setup_file tests/prediction/setup.py
EDIT
Als Reaktion auf @ Alex Amato
Ist der Eimer zum Projekt gehören oder wird sie von einem anderen Projekt im Besitz? Ja, wenn ich den Startbildschirm für das Projekt gehe, ist dies einer der vier aufgeführten Buckets. Ich lade regelmäßig Daten hoch und interagiere mit anderen Google Cloud-Diensten (Cloud Vision API) aus diesem Bereich.
Würden Sie bitte die vollständige Fehlermeldung angeben.
„(8d8bc4d7fc4a50bd): Fehler, eine Datei zu temporären Speicherort schreiben‚gs: //api-project-773889352370-testing/temp/api-project-773889352370-deepmeerkat.1498771638.913123‘. Bitte stellen Sie sicher, dass der Eimer für Dieses Verzeichnis existiert, und das Projekt, unter dem der Workflow ausgeführt wird, verfügt über die erforderlichen Berechtigungen, um darauf zu schreiben. "
„8d8bc4d7fc4a5f8f): Workflow fehlgeschlagen Ursachen:. (8d8bc4d7fc4a526c):.. Eine oder mehr Zugangskontrollen für temporären Speicherort oder inszenierten Dateien failed Bitte lesen Sie andere Fehlermeldungen für Details Weitere Informationen zu Sicherheit und Berechtigungen finden Sie https://cloud.google.com/dataflow/security-and-permissions . "
Können Sie bestätigen, dass noch kein vorhandenes GCS-Objekt vorhanden ist, das mit dem Namen des GCS-Ordnerpfads übereinstimmt, den Sie verwenden möchten?
Ja, es gibt keinen Ordner namens temp im Bucket.
- Könnten Sie die Berechtigungen überprüfen Sie haben Sie die Mitglieder laufen Sie passen als
Bucket Berechtigungen global Admin
haben, die meine Spiele gcloud auth
Gehört der Bucket zum Projekt oder gehört er einem anderen Projekt? Würden Sie bitte die vollständige Fehlermeldung angeben. Können Sie bestätigen, dass noch kein vorhandenes GCS-Objekt vorhanden ist, das mit dem Namen des GCS-Ordnerpfads übereinstimmt, den Sie verwenden möchten? Könnten Sie bitte überprüfen, ob die Berechtigungen den Mitgliedern entsprechen, die Sie ausführen? Verwenden Sie den Abschnitt Speicher in der Benutzeroberfläche der Google Cloud-Konsole, suchen Sie den Pfad und klicken Sie auf das Symbol ... und klicken Sie auf Berechtigungen bearbeiten, und erweitern Sie die Mitgliedergruppen –
Können Sie auch Zugriff auf cloudservices account ( @ cloudservices.gserviceaccount .com) wie in https://cloud.google.com/dataflow/security-and-permissions erwähnt. –
chamikara
das hat es getan, danke, das cloudservices account zu Storage admin zu ändern funktioniert. Es hat bereits die Anmeldeinformationen des Dienstkontos von der Compute-Engine geerbt, ich hätte gedacht, es hätte Zugriff gehabt. Als Antwort hinzufügen? – bw4sz