2016-10-05 5 views
0

Ich entwickle eine API in Golang direkt auf der "flexiblen App Engine-Umgebung" (früher bekannt als "Managed VMs ").Google App Engine-Importproblem (Golang) in "Flexible App Engine-Umgebung" (ehemals "Managed VMs")

Bisher habe ich in meiner .go Dateien diese Art von Import wurde mit:

import ( 
     "appengine" 
     "appengine/datastore" 
     ...) 

Vor kurzem habe ich beschlossen, Google Cloud Storage zu verwenden, um Bilder zu speichern. Es erfordert den Import von "cloud.google.com/go/storage". Mein Problem ist, dass ich die App nicht mit diesem Import (nicht gefunden) oder einer anderen Kurzversion ("go/storage"), wie ich sie für den appengine Import verwende, bereitstellen kann.

Nach viel Forschung, fand ich dies: https://github.com/golang/appengine#user-content-3-update-code-using-deprecated-removed-or-modified-apis

Es gibt an, wie eine Anwendung mit kurzen Importe zu migrieren (veraltet, wie bei mir) auf volle Importe (mit Repository explizit wie „google.golang.org/appengine“)

Ich folgte der Prozedur und verwendete das Skript, das sie zur Verfügung stellen, um meinen Code (aefix) zu aktualisieren. Sie sagen auch, diese Linie zu meiner app.yaml Datei hinzufügen:

vm : true 

Wenn ich das tue, habe ich diese Fehlermeldung ‚gcloud App deploy‘ ausgeführt wird:

ERROR: (gcloud.app.deploy) Your application does not satisfy all of the requirements for a runtime of type [go]. Please correct the errors and try again. 

Wenn ich dies nicht tun, keiner meiner Importe arbeiten und ich bekomme die folgende Fehlermeldung:

can't find import: "google.golang.org/appengine/datastore" 

Hier meine app.yaml Datei:

runtime: go 
api_version: go2 
#vm : true 

handlers: 
    - url: /.* 
    script: _go_app 

Natürlich sind alle Importe auf dem Server unter $ GOPATH/src/so fehlen sie nicht wirklich, schlechter referenziert, denke ich.

Ich bin auf dieses Problem seit mehreren Tagen fest, jede Hilfe jeder Art wäre willkommen!

Danke

Antwort

0

Es tut uns leid - wir haben ein paar Dokumente zu aktualisieren. Sie können das Paket golang/appengine nicht in der flexiblen App Engine-Umgebung verwenden. Das Aefix-Tool wird auch hier nicht funktionieren. Anstelle der App Engine Go SDK, möchten Sie die Go-Client-Bibliothek verwenden hier:

https://github.com/GoogleCloudPlatform/google-cloud-go

Wenn Sie zuvor vm:true verwendet haben, müssen Sie env:flex aktualisieren - die Anweisungen (und der Hinweis auf die gehen App Engine-Bibliothek) sind hier:

https://cloud.google.com/appengine/docs/flexible/go/upgrading

Lassen Sie mich wissen, wenn Sie irgendwelche Fragen haben!

Verwandte Themen