# #google-app-engine #go #google-cloud-storage
#google-app-engine #Вперед #google-облачное хранилище
Вопрос:
Я разрабатываю API в golang непосредственно в «гибкой среде App Engine» (ранее известной как «Управляемые виртуальные машины»).
До сих пор я использовал этот вид импорта в своих файлах .go :
import (
"appengine"
"appengine/datastore"
...)
Недавно я решил использовать облачное хранилище Google для хранения изображений. Для этого требуется импорт «cloud.google.com/go/storage «. Моя проблема в том, что я не могу развернуть приложение с помощью этого импорта (не найден) или любой другой короткой версии («go / storage»), которую я использую для импорта appengine.
После долгих исследований я обнаружил следующее: https://github.com/golang/appengine#user-content-3-update-code-using-deprecated-removed-or-modified-apis
В нем указывается, как перенести приложение с помощью короткого импорта (устаревшего, как у меня) на полный импорт (с явным репозиторием, например «google.golang.org/appengine «)
Я выполнил процедуру и использовал скрипт, который они предоставляют, для обновления моего кода (aefix). Они также говорят, чтобы добавить эту строку в мой файл app.yaml :
vm : true
Если я это сделаю, я получу это сообщение об ошибке «развертывание приложения gcloud» :
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.
Если я этого не сделаю, ни один из моих импортных файлов не работает, и я получаю следующую ошибку :
can't find import: "google.golang.org/appengine/datastore"
Вот мой файл app.yaml :
runtime: go
api_version: go2
#vm : true
handlers:
- url: /.*
script: _go_app
Конечно, весь импорт находится на сервере под $ GOPATH / src/, так что на самом деле они не отсутствуют, я думаю, на них больше ссылок.
Я застрял в этой проблеме уже несколько дней, буду признателен за любую помощь любого рода!
Спасибо
Ответ №1:
Извините, нам нужно обновить некоторые документы. Вы не можете использовать пакет golang / appengine с гибкой средой App Engine. Инструмент aefix здесь также не будет работать. Вместо SDK App Engine Go вы хотите использовать здесь клиентскую библиотеку Go:
https://github.com/GoogleCloudPlatform/google-cloud-go
Если вы ранее использовали vm:true
, вам нужно будет перейти на env:flex
— инструкции (и примечание к библиотеке go app engine) находятся здесь:
https://cloud.google.com/appengine/docs/flexible/go/upgrading
Дайте мне знать, если у вас возникнут какие-либо вопросы!