Właśnie zreplikowałem Twój scenariusz przypadku użycia i udało mi się połączyć bazę danych Cloud SQL z projektu z Cloud App Engine z innego projektu.
Kroki, aby to odtworzyć, są następujące:
-
Utworzono bazę danych Cloud SQL Postgresql z publicznym adresem IP.
-
Utworzyłem tabele dla mojej aplikacji
-
Włącz interfejs Cloud SQL API w drugim projekcie, w którym chcę hostować stronę App Engine.
-
Wdrożyłem aplikację App Engine w drugim projekcie przy użyciu tego Repozytorium Google Cloud
-
Przyznaj uprawnienia kontu usługi projektu za pomocą App Engine w projekcie z Cloud SQL, postępując zgodnie z tym Przewodnik korzystania z Cloud SQL dla PostgreSQL
Podczas mojej reprodukcji natrafiłem na możliwy problem, z którym się spotkałeś. Prawdopodobnie nie włączyłeś API drugiego projektu (tego, który obsługuje tylko App Engine).
Aby to sprawdzić, wystarczy ssh na maszynie hostującej silnik aplikacji, a następnie uruchomić docker ps -a
aby uzyskać identyfikator kontenera dockera, w którym znajduje się cloud-sql-proxy
. Następnie używając tego identyfikatora uruchom docker logs -f ID_OF_THE_CONTAINER
i zobaczysz, czy wystąpił błąd w serwerze proxy Cloud SQL. Jeśli interfejs API jest wyłączony, po prostu włącz go i wdróż ponownie.