Тайм-аут соединения с базой данных в экземпляре Google Cloud SQL при использовании обработчика очереди задач
Что я делаю? Я работаю над обработчиком очереди задач облака Google. Очереди сдвинуты успешно. Google cloud выполнил эти очереди внутренне. Я создал файл app.yaml, где я написал следующие строки:
handlers:
- url: /click_queue
script : click_queue_result.php
Теперь я открыл командную строку и запустил эту команду "gcloud app deploy". Затем мой проект развертывается на облачном сервере Google. Теперь я пытаюсь установить соединение с БД, но постоянно выдает ошибку подключения к базе данных.
Я хочу получить доступ к Google Cloud Sql Instance в click_queue_result.php
Пожалуйста, дайте мне предложение, как я могу решить это??
<?php
$servername = "IP_ADDRESS";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
Когда я нажимаю этот URL-адрес https://google-cloud-project-id.appspot.com/click_queue возникает следующая ошибка:-
Connection failed: Connection timed out
1 ответ
Как описано в документации по подключению из App Engine и на странице github GoogleCloudPlatform / php-docs-samples, для использования Cloud SQL в App Engine для PHP необходимо либо использовать предоставленный сокет домена Unix, либо соединение TCP (в случае App Engine Flex).
В вашем случае вы не сможете соединиться с IP-адресом экземпляра, вместо этого вам нужно будет указать имя соединения в качестве переменной среды в файле app.yaml. Вы можете обратиться к файлу index.php в репозитории github для примера использования PDO.