Khẳng định rằng App Engine Standard không thể đến cơ sở dữ liệu riêng qua Cloud VPN là tàn dư từ thế hệ trước của nền tảng. Các phiên bản Standard không nhận địa chỉ gốc VPC như một số môi trường chạy khác, nhưng chúng có thể gửi egress qua một trình kết nối Serverless VPC Access nằm trong mạng của bạn. Khi đường đi đó tồn tại, Cloud VPN và tường lửa từ xa nhìn lưu lượng của trình kết nối như bất kỳ nguồn nào khác. Thứ thất bại hiếm khi là chính khả năng. Đó là một trong ba cài đặt chưa bao giờ được căn chỉnh.

Câu trả lời cũ đến từ đâu

Trước khi có trình kết nối, câu trả lời thực tế đúng là Standard chỉ nói chuyện được với điểm cuối công khai, và các nhóm chuyển sang VM proxy hoặc môi trường chạy khác để lách điều đó. Nền tảng đã thay đổi, truyền thuyết thì không. Nhiều lời khuyên trực tuyến vẫn phản ánh thời kỳ chưa hề có tùy chọn egress.

Bản sửa hẹp hơn vẻ ngoài của nó. Standard có thể đến mạng riêng, nhưng chỉ qua một tích hợp egress được hỗ trợ, và chỉ cho những đích mà tích hợp đó thực sự bắt được.

Chọn đường egress trước

Trình kết nối gắn với dịch vụ là thứ đưa lưu lượng của nó vào VPC. Tài liệu trình kết nối liệt kê điều kiện tiên quyết theo khu vực và các cài đặt egress; trình kết nối phải tồn tại trong khu vực của dịch vụ và có thể được dùng bởi danh tính triển khai.

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

private-ranges-only gửi các đích riêng vào VPC và để mọi thứ khác trên đường internet bình thường, thường là thứ một kết nối cơ sở dữ liệu cần. all-traffic đẩy lưu lượng đi ra qua VPC một cách rộng rãi, nên các cuộc gọi internet thông thường cũng thừa hưởng tư thế NAT và tường lửa của VPC.

Sửa tệp cục bộ không thay đổi gì cho đến khi bạn triển khai. Một phiên bản đang chạy giữ cấu hình mà nó được tạo ra.

Địa chỉ nguồn là trình kết nối, không phải laptop của bạn

Phần lớn thời gian gỡ lỗi nằm ở đây. Cổng VPN từ xa và tường lửa cơ sở dữ liệu phải cho phép dải được cấp cho trình kết nối bên trong VPC, không phải địa chỉ văn phòng của bạn và không phải địa chỉ egress công khai của dịch vụ. Hãy tra dải đó trong bảng điều khiển trước khi viết dù chỉ một quy tắc.

Hai nơi nữa phải đồng ý. Bảng định tuyến VPC cần một tuyến đến mạng cơ sở dữ liệu từ xa, và phía từ xa cần một tuyến trả về cho dải của trình kết nối. Nếu đường hầm dùng bộ chọn lưu lượng, hãy xác nhận dải của trình kết nối nằm trong phạm vi đã thương lượng. Một tuyến chỉ tồn tại theo hướng từ xa đến cục bộ là thiếu sót phổ biến, và nó cho ping đi qua nhưng không bao giờ hoàn tất bắt tay TCP.

Đường hầm chỉ chấp nhận một mạng con VM sẽ bỏ gói của trình kết nối mà không có thông báo lỗi hữu ích, đó là lý do vì sao hết thời gian chờ cơ sở dữ liệu trông như vấn đề thông tin đăng nhập.

DNS đi theo đường khác

Tên máy chủ của cơ sở dữ liệu riêng phải được phân giải bên trong mạng mà trình kết nối đến được, qua Cloud DNS peering hoặc vùng chuyển tiếp mà VPC có thể dùng. Phân giải nó trên máy trạm của bạn không chứng minh gì về dịch vụ đã triển khai, vì laptop của bạn không dùng trình phân giải đó.

Nếu tên phân giải thành địa chỉ công khai từ bên trong VPC, bạn sắp gỡ lỗi nhầm tường lửa.

URL Fetch không dùng trình kết nối

Cài đặt egress bao gồm các socket đi ra bình thường của môi trường chạy, và dịch vụ URL Fetch cũ không thuộc đường đi đó. Yêu cầu phát qua urlfetch bỏ qua trình kết nối bất kể cấu hình nói gì. Khi cuộc gọi thất bại nằm trong một thư viện cũ vẫn dùng URL Fetch, cách sửa là chuyển cuộc gọi đó sang ứng dụng HTTP tiêu chuẩn.

Với trình điều khiển cơ sở dữ liệu, đây hiếm khi là vấn đề, nhưng đó là lý do kinh điển khiến một điểm cuối hoạt động còn điểm khác thì không từ cùng một dịch vụ.

Xác minh bằng một truy vấn hẹp

Triển khai, rồi chạy một thao tác cơ sở dữ liệu được phép từ phiên bản đã triển khai trong khi quan sát phía từ xa. Địa chỉ nguồn do cơ sở dữ liệu hoặc cổng VPN ghi lại phải là của trình kết nối. Nếu không, yêu cầu chưa bao giờ vào VPC và không cấu hình đường hầm nào sửa được. So sánh nó với dải bạn đã tra trong bảng điều khiển; sự không khớp thường có nghĩa là một trình kết nối thứ hai đang phục vụ phiên bản.

Một truy vấn thành công từ VM bên trong VPC chứng minh tuyến tồn tại. Nó không chứng minh dịch vụ đã chọn tuyến đó.

Bài viết liên quan