Dakwaan bahawa App Engine Standard tidak boleh mencapai pangkalan data peribadi melalui Cloud VPN ialah sisa daripada generasi platform yang lebih awal. Instans Standard tidak mendapat alamat asli VPC seperti sesetengah runtime lain, tetapi ia boleh menghantar egress melalui penyambung Serverless VPC Access yang berada dalam rangkaian anda. Sebaik sahaja laluan itu wujud, Cloud VPN dan tembok api jauh melihat trafik penyambung seperti mana-mana sumber lain. Yang gagal jarang-jarang keupayaan itu sendiri. Ia salah satu daripada tiga tetapan yang tidak pernah diselaraskan.

Dari mana jawapan lama datang

Sebelum penyambung wujud, jawapan praktikal memang bahawa Standard hanya boleh bercakap dengan titik akhir awam, dan pasukan berpindah ke VM proksi atau runtime lain untuk mengelakkannya. Platform berubah, cerita rakyat tidak. Banyak nasihat dalam talian masih mencerminkan zaman apabila tiada pilihan egress sama sekali.

Pembetulan itu lebih sempit daripada bunyinya. Standard boleh mencapai rangkaian peribadi, tetapi hanya melalui integrasi egress yang disokong, dan hanya untuk destinasi yang benar-benar ditangkap oleh integrasi itu.

Pilih laluan egress dahulu

Penyambung yang dipasang pada perkhidmatan itulah yang memasukkan trafiknya ke dalam VPC. Dokumentasi penyambung menyenaraikan prasyarat serantau dan tetapan egress; penyambung mesti wujud di rantau perkhidmatan dan boleh digunakan oleh identiti yang menggunakan deployment.

vpc_access_connector:
  name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
  egress_setting: private-ranges-only

private-ranges-only menghantar destinasi peribadi ke dalam VPC dan membiarkan segala-galanya pada laluan internet biasa, yang biasanya diperlukan oleh sambungan pangkalan data. all-traffic menolak trafik keluar melalui VPC secara meluas, jadi panggilan internet biasa juga mewarisi NAT dan pendirian tembok api VPC.

Menyunting fail secara tempatan tidak mengubah apa-apa sehingga anda menggunakan deployment. Versi yang berjalan mengekalkan konfigurasi semasa ia dicipta.

Alamat sumber ialah penyambung, bukan komputer riba anda

Di sinilah sebahagian besar masa nyahpepijat pergi. Get laluan VPN jauh dan tembok api pangkalan data mesti membenarkan julat yang diperuntukkan kepada penyambung di dalam VPC, bukan alamat pejabat anda dan bukan alamat egress awam perkhidmatan. Cari julat itu dalam konsol sebelum menulis satu peraturan pun.

Dua lagi tempat mesti bersetuju. Jadual laluan VPC memerlukan laluan ke rangkaian pangkalan data jauh, dan pihak jauh memerlukan laluan balik untuk julat penyambung. Jika terowong menggunakan pemilih trafik, sahkan bahawa julat penyambung berada dalam skop yang dirundingkan. Laluan yang hanya wujud dalam arah jauh ke tempatan ialah kecuaian biasa, dan ia meloloskan ping tanpa pernah melengkapkan jabat tangan TCP.

Terowong yang hanya menerima subnet VM akan menggugurkan paket penyambung tanpa mesej ralat yang berguna, itulah sebabnya tamat masa pangkalan data kelihatan seperti masalah kelayakan.

DNS melalui laluan yang berbeza

Nama hos pangkalan data peribadi mesti diselesaikan di dalam rangkaian yang dicapai oleh penyambung, melalui peering Cloud DNS atau zon pemajuan yang boleh digunakan oleh VPC. Menyelesaikannya pada stesen kerja anda tidak membuktikan apa-apa tentang perkhidmatan yang digunakan, kerana komputer riba anda tidak menggunakan penyelesai itu.

Jika nama itu diselesaikan kepada alamat awam dari dalam VPC, anda akan menyahpepijat tembok api yang salah.

URL Fetch tidak menggunakan penyambung

Tetapan egress meliputi soket keluar biasa runtime, dan perkhidmatan URL Fetch lama bukan sebahagian daripada laluan itu. Permintaan yang dikeluarkan melalui urlfetch mengabaikan penyambung apa pun kata konfigurasi. Apabila panggilan yang gagal berada dalam pustaka lama yang masih menggunakan URL Fetch, pembetulannya ialah memindahkan panggilan itu ke klien HTTP standard.

Bagi pemacu pangkalan data ini jarang menjadi masalah, tetapi ia sebab klasik mengapa satu titik akhir berfungsi dan satu lagi tidak daripada perkhidmatan yang sama.

Sahkan dengan satu pertanyaan sempit

Gunakan deployment, kemudian jalankan satu operasi pangkalan data yang dibenarkan daripada versi yang digunakan sambil memerhati pihak jauh. Alamat sumber yang direkodkan oleh pangkalan data atau get laluan VPN sepatutnya milik penyambung. Jika tidak, permintaan itu tidak pernah masuk ke VPC dan tiada konfigurasi terowong akan membetulkannya. Bandingkan dengan julat yang anda cari dalam konsol; ketidakpadanan biasanya bermaksud penyambung kedua melayani versi itu.

Pertanyaan berjaya daripada VM di dalam VPC membuktikan laluan itu wujud. Ia tidak membuktikan bahawa perkhidmatan memilihnya.

Artikel berkaitan