Я создал инфраструктуру своей организации в GCP в соответствии с Cloud Foundation Toolkit с использованием модулей Terraform, предоставленных Google. .
В следующей таблице перечислены диапазоны IP-адресов для всех сред:
Сейчас я развертываю свое приложение, которое состоит в основном из сервисов Cloud Run и экземпляра Cloud SQL (Postgres). Экземпляр Cloud SQL был создан с частным IP-адресом из нераспределенного диапазона IP-адресов, зарезервированного для одноранговых служб (например, Cloud SQL).
Чтобы установить соединение между Cloud Run и Cloud SQL, я также создал бессерверный соединитель VPC (диапазон IP 10.1.0.16/28) и настроил прокси Cloud SQL.
Когда я пытаюсь подключиться к базе данных из службы Cloud Run, я получаю эту ошибку через ~ 10 секунд:
Ошибка подключения к CloudSQL. См. https://cloud.google.com/sql/docs/mysql/connect-run для получения дополнительных сведений: разместите https://www.googleapis.com/sql/v1beta4/projects/[my-project ]/instances/platform-db/createEphemeral?alt=json&prettyPrint=false: крайний срок контекста. превышен
Я предоставил roles/vpcaccess.user
как для Cloud Run SA по умолчанию, так и для приложения, используемого в основном проекте.
Я предоставил roles/compute.networkUser
для обоих SA в сервисном проекте. Я также предоставил roles/cloudsql.client
для обоих SA.
Я включил servicenetworking.googleapis.com
и vpcaccess.googleapis.com
в сервисном проекте.
У меня закончились идеи, и я не могу понять, в чем проблема.
Это похоже на ошибку тайм-аута, когда Cloud Run пытается создать запрос POST к Cloud SQL API. Таким образом, похоже, что соединитель VPC (10.1.0.16/28) не может подключиться к экземпляру Cloud SQL (10.0.80.0/20).
Кто-нибудь сталкивался с этой проблемой раньше?