В качестве предисловия я могу успешно подключиться к базе данных MySQL при локальном запуске API, а БД mysql и механизм приложений являются частью одного проекта в GCP.
После развертывания моего API в механизм приложений,API не может подключиться к моему экземпляру MySQL в Cloud SQL - я получаю следующую ошибку:
ERR_SPDY_PROTOCOL_ERROR
Это файл app-settings.json:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "server=XX.XXX.XXX.XXX;port=3306;database=Development;uid=root;password=XXXXXX"
}
}
Этомой файл app.yaml:
runtime: aspnetcore
env: flex
service: dtp-api
env_variables:
# Replace user, password, database, and instance connection name with the values obtained
# when configuring your Cloud SQL instance.
SQLALCHEMY_DATABASE_URI: >-
mysql+pymysql://USER:PASSWORD@/development?unix_socket=/cloudsql/mydb-1183:europe-north1:development
beta_settings:
cloud_sql_instances: mydb-1183:europe-north1:development
USER установлен в значение «root», а PASSWORD - пароль root.
Контекст вводится следующим образом:
services.AddDbContext<DTPContext>(options =>
options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));
И называется так:
[HttpGet, Route("topics")]
public IEnumerable<forum_topic> Index()
{
return _forumRepo.GetTopics();
}
Удар по вышеуказанной конечной точке приводит к ошибке, я следовал инструкциям, предоставленным Google онлайн, но безуспешно, может ли кто-нибудь указать мне правильное направление?
Спасибо