Подключите Cloud SQL для MySql из Cloud Run - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь подключиться к Google Cloud SQL для MySql через Google Cloud Run. Я прошел через много сообщений в SO, а также в документации Google. Но, похоже, это не работает для меня. Я признаю, что никогда не создавал контейнеров для каких-либо приложений и являюсь в основном человеком данных.

Примечание. У меня уже есть созданный экземпляр Cloud SQL, к которому я могу подключиться через оболочку Cloud.

1) Мой код основан на документации Google на

https://cloud.google.com/sql/docs/mysql/connect-run

и коде github на

https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/cloud-sql/mysql/sqlalchemy/main.py

2) Построить образ

gcloud builds submit --tag gcr.io/my-project/my-test-image

3) Развернуть образ

gcloud run deploy --image gcr.io/my-project/my-test-image

4) Когда я пытаюсь вызвать службу в Cloud Shell с помощью следующего, я получить вывод как «Сервис недоступен»

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" https://my-service.run.app

Может кто-нибудь, пожалуйста, помогите мне решить эту проблему?

Изменения - я не предоставил mysql имя экземпляра. Я исправил это, и теперь я получаю ошибку, как показано ниже -

[INFO] Прослушивание: http://0.0.0.0: 8080 (1) "

" Трассировка (последний вызов был последним): файл "/usr/local/lib/python3.8/site-packages/pymysql/connections.py", строка 571, в файле connect sock.connect (self.unix_socket) FileNotFoundError: [ Errno 2] Нет такого файла или каталога "

Я не понимаю, почему он слушает в 0.0.0.0:8080. Я удалил хост и порт из своего кода, и я все еще получаю эту" информацию " и я получаю сообщение об ошибке «FileNotFoundError». Я не уверен, какой файл ему нужен. Нужен ли ему какой-нибудь файл подключений? Если да, то какой формат файла?

1 Ответ

0 голосов
/ 03 марта 2020

Я написал учебник о том, как подключить Cloud SQL (MySql) из Cloud Run (Java), но процесс такой же. ссылка

Пожалуйста, убедитесь, что вы понимаете пункт 13, где вы должны передать имя соединения экземпляра с флагом --add-cloudsql-instances, это запустит облако sql proxi для вас.

13.Настройка службы для использования с Cloud Run

   gcloud run services update run-mysql --add-cloudsql-instances run-to-sql:europe-west2:database-external --set-env-vars CLOUD_SQL_CONNECTION_NAME=run-to-sql:europe-west2:database-external  DB_USER=user_name,DB_PASS=user_password,DB_NAME=user_database

SO ссылка

...