Я делаю свой первый проект движка приложения, используя Go
.У меня есть облачный экземпляр sql и механизм приложений в одном проекте внутри облачной консоли.
В моем файле app.yaml
есть следующее:
service: myservice
runtime: go
api_version: go1
env_variables:
#for deploying
#POSTGRES_CONNECTION: "user=postgres password=<redacted> dbname=my_database host=/cloudsql/myproject:us-west1:myserver"
#for testing locally via cloud proxy
POSTGRES_CONNECTION: "user=postgres password=<redacted> dbname=mydatabase sslmode=disable"
beta_settings:
cloud_sql_instances: myproject:us-west1:myserver
handlers:
# All URLs are handled by the Go application script
- url: /.*
script: _go_app
В коде, который я открываю, соединениекак это:
datastoreName := os.Getenv("POSTGRES_CONNECTION")
db, err := sql.Open("postgres", datastoreName)
На моей локальной машине у меня есть настройка cloud_sql_proxy
, например:
./cloud_sql_proxy -instances=passio-nutrition-develop-bcb6:us-west1:nutrition-sqlite-source=tcp:5432
И с POSTGRES_CONNECTION
, настроенным для локального тестирования, все работает отлично.
Однако, когда я устанавливаю POSTGRES_CONNECTION
для развертывания и запускаю gcloud app deploy
, я получаю сообщение об ошибке при попытке достичь конечной точки:
{"Op":"dial","Net":"unix","Source":null,"Addr":{"Name":"/cloudsql/myproject:us-west1:myserver/.s.PGSQL.5432","Net":"unix"},"Err":{"Syscall":"socket","Err":1}}
Я пробовал разныеверсии POSTGRES_CONNECTION
, включая добавление =tcp:5432
в конец host
и cloud_sql_instances
, но я не могу подключиться к работе.
Если кто-нибудь может дать мне несколько советов, которые были бы хорошими