6

Mein Ziel ist es, googles Orchestrator und die Rechner-Engine API zu testen, indem zuerst eine Liste aktiver Instanzen abgerufen wird Servlet-Datei wird in einem Jar gespeichert.Die Ressource 'projects/<my project>' wurde nicht gefunden Fehler beim Versuch, eine Liste laufender Instanzen zu erhalten

Ich versuche, die Java-Google-Compute-Engine-Client-API zu testen. Ich habe einen Cron-Job, der das Orchestrator-Servlet aufruft. Das Ziel für die Cron ist ein Backend Ich versuche, die Liste der Instanzen zu bekommen:

Dort Fehlerantwort bekomme ich ist (Ich habe meinen Projektnamen f rom die Antwort, bestätigte ich, dass ich mit dem richtigen Projekt-ID in meinem Code):

com.google.cloud.solutions.sampleapps.orchestration.orchestrator.server.GceClientApiUtils  
getInstances: com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 OK 
{ 
    "code" : 404, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "The resource 'projects/<project-name-here>' was not found", 
    "reason" : "notFound" 
    } ], 
    "message" : "The resource 'projects/<project-name_here>' was not found" 
} 

Ich habe dies auch durch Abrufen eines Zugriffstoken versucht und machen eine RESTful Aufruf der Liste der Instanzen zu erhalten und Ich erhielt die exakt gleiche Antwort. Ich habe bestätigt, dass die erstellte URL korrekt war, indem ich sie mit einer erfolgreichen Abfrage der Instanzen verglichen habe, die den API-Explorer verwenden.

EDIT: Ich habe die Lösung für das Problem mit Hilfe eines anderen Postens bestimmt: war ich endlich in der Lage, die Lösung in der Post Compute Engine API call fails with http 404

ich mit meinem app Engine-Dienstkonto als Teammitglied hinzuzufügen, benötigt zu finden Bearbeitungsfunktionen, die es nicht standardmäßig hat. Sobald ich das getan hatte, funktionierte der Code wie erwartet. Ich musste dies über cloud.google.com/console tun, als würde dies über appengine.google.com geschehen. Der Status "ausstehend" wird dem Dienstkonto zugewiesen und hat keinen Zugriff.

Antwort

2

Haben Sie Zugriff auf die Entwicklerkonsole https://console.developers.google.com? Es scheint, dass das Benutzerkonto @ appspot.gserviceaccount.com keinen Zugriff auf die Compute Engine hat. In meinem Fall sehe ich @ developer.gserviceaccount.com.

Wenn Sie noch kein Konto haben, besuchen https://developers.google.com/console/help/new/#generatingoauth2 eine neue Client-ID

+0

Ich konnte endlich die Lösung in der Post http://stackoverflow.com/questions/21062286/compute-engine-api-call-fails-with-http-404 finden. Ich musste mein App-Engine-Dienstkonto als Teammitglied mit Bearbeitungsfunktionen hinzufügen, die es standardmäßig nicht hat. Sobald ich das getan hatte, funktionierte der Code wie erwartet. Ich musste dies über http://cloud.google.com/console tun, als würde dies über appengine.google.com geschehen. Der Status "ausstehend" wird dem Dienstkonto zugewiesen und hat keinen Zugriff. – jKimo

1

Stellen Sie sicher, Sie in dem richtigen Projekt ist, können Sie diesen Befehl auf dem vm laufen, um zu sehen, wenn Sie in dem richtigen Projekt sind: gcloud Konfigurationsliste

in diesem Beitrag Werfen Sie einen Blick in Google Groups

+0

Der Code läuft in einem Jar innerhalb der App-Engine-Anwendung. Ich habe überprüft, indem ich getServiceAccountName() aufgerufen habe. Das Ergebnis war @ appspot.gserviceaccount.com – jKimo

+0

Ich habe das Token mit AppIdentityCredential erfolgreich abgerufen. Wenn ich jedoch über diese Berechtigung einen Aufruf zum Berechnen ausfühle, wird zurückgegeben, dass die Ressource nicht gefunden wurde. – jKimo

4

für mich zu schaffen i sicher, dass ich Berechtigung hatte machen musste. Versuchen Sie dies im Terminal gcloud auth login

Verwandte Themen