Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Vị trí của Chức năng đám mây

Chức năng đám mây mang tính khu vực , có nghĩa là cơ sở hạ tầng chạy Chức năng đám mây của bạn được đặt tại các khu vực cụ thể và được Google quản lý để có sẵn dự phòng trên tất cả các khu vực trong các khu vực đó .

Khi chọn vùng nào để chạy các chức năng của bạn, cân nhắc chính của bạn phải là độ trễ và tính khả dụng. Nói chung, bạn có thể chọn các khu vực gần với người dùng của mình, nhưng bạn cũng nên xem xét vị trí của các sản phẩm và dịch vụ khác mà ứng dụng của bạn sử dụng. Việc sử dụng dịch vụ trên nhiều khu vực có thể ảnh hưởng đến thời gian chờ của ứng dụng cũng như giá cả .

Chức năng đám mây khả dụng ở các khu vực sau với mức giá Cấp 1 :

  • us-central1 (Iowa)
  • us-east1 (South Carolina)
  • us-east4 (Bắc Virginia)
  • europe-west1 (Bỉ)
  • europe-west2 (London)
  • asia-east2 (Hồng Kông)
  • asia-northeast1 (Tokyo)
  • asia-northeast2 (Osaka)

Chức năng đám mây có sẵn ở các khu vực sau với giá Cấp 2 :

  • us-west2 (Los Angeles)
  • us-west3 (Thành phố Salt Lake)
  • us-west4 (Las Vegas)
  • europe-west3 (Frankfurt)
  • europe-west6 (Zurich)
  • northamerica-northeast1 (Montreal)
  • southamerica-east1 (Sao Paulo)
  • australia-southeast1 (Sydney)
  • asia-south1 (Mumbai)
  • asia-southeast2 (Jakarta)
  • asia-northeast3 (Seoul)

Các chức năng trong một vùng nhất định trong một dự án nhất định phải có tên duy nhất (không phân biệt chữ hoa chữ thường), nhưng các chức năng giữa các vùng hoặc giữa các dự án có thể có cùng tên.

Các phương pháp hay nhất để thay đổi khu vực

Theo mặc định, các hàm chạy trong vùng us-central1 . Lưu ý rằng vùng này có thể khác với vùng của nguồn sự kiện, chẳng hạn như nhóm Bộ nhớ. Nếu bạn cần thay đổi khu vực nơi một chức năng chạy, hãy làm theo các đề xuất trong phần này cho từng loại trình kích hoạt chức năng.

Để đặt vùng nơi một hàm chạy, hãy đặt tham số region trong định nghĩa hàm như được hiển thị:

exports.myStorageFunction = functions
    .region('europe-west1')
    .storage
    .object()
    .onFinalize((object) => {
      // ...
    });

Bạn có thể chỉ định nhiều vùng bằng cách chuyển nhiều chuỗi vùng được phân tách bằng dấu phẩy trong functions.region() . Xem thay đổi vùng của chức năng để biết thêm thông tin về các quy trình được đề xuất.

HTTP và các chức năng khách hàng có thể gọi

Đối với các chức năng HTTP và có thể gọi, chúng tôi khuyên bạn trước tiên nên đặt chức năng của mình thành vùng đích hoặc gần nhất với nơi khách hàng mong đợi nhất đang ở, sau đó thay đổi chức năng ban đầu của bạn để chuyển hướng yêu cầu HTTP của nó đến chức năng mới (chúng có thể có cùng Tên). Nếu các ứng dụng khách của chức năng HTTP của bạn hỗ trợ chuyển hướng, bạn có thể chỉ cần thay đổi chức năng ban đầu của mình để trả về trạng thái chuyển hướng HTTP (301) cùng với URL của chức năng mới. Nếu khách hàng của bạn không xử lý tốt các chuyển hướng, bạn có thể ủy quyền yêu cầu từ chức năng ban đầu sang chức năng mới bằng cách bắt đầu một yêu cầu mới từ chức năng ban đầu sang chức năng mới. Bước cuối cùng là đảm bảo rằng tất cả các máy khách đang gọi hàm mới.

Lựa chọn vị trí phía máy khách cho các chức năng có thể gọi

Về chức năng có thể gọi, các thiết lập có thể gọi của ứng dụng khách phải tuân theo các nguyên tắc tương tự như các chức năng HTTP. Máy khách cũng có thể chỉ định một vùng và phải làm như vậy nếu hàm chạy ở bất kỳ vùng nào khác ngoài us-central1 .

Để đặt các vùng trên máy khách, hãy chỉ định vùng mong muốn khi khởi tạo:

Nhanh

lazy var functions = Functions.functions(region:"europe-west1")

Objective-C

@property(strong, nonatomic) FIRFunctions *functions;
// ...
self.functions = [FIRFunctions functionsWithRegion:@"europe-west1"];

Web


var functions = firebase.app().functions('europe-west1');

Android

private FirebaseFunctions mFunctions;
// ...
mFunctions = FirebaseFunctions.getInstance("europe-west1");

C ++

firebase::functions::Functions* functions;
// ...
functions = firebase::functions::Functions::GetInstance("europe-west1");

Thống nhất

firebase.Functions.FirebaseFunctions functions;

functions = Firebase.Functions.FirebaseFunctions.GetInstance("europe-west1");

Các chức năng nền

Các hàm nền sử dụng ngữ nghĩa phân phối sự kiện ít nhất một lần, có nghĩa là trong một số trường hợp, chúng có thể nhận được các sự kiện trùng lặp. Vì vậy, bạn nên triển khai các hàm để trở thành idmpotent . Nếu hàm của bạn đã là không quan trọng, thì bạn có thể triển khai lại hàm trong vùng mới với cùng một trình kích hoạt sự kiện và xóa hàm cũ sau khi bạn xác minh rằng hàm mới đang nhận lưu lượng truy cập chính xác. Trong quá trình chuyển đổi này, cả hai chức năng sẽ nhận được các sự kiện. Xem thay đổi vùng của một chức năng để biết chuỗi lệnh được khuyến nghị để thay đổi vùng cho các chức năng.

Nếu hàm của bạn hiện không phải là idmpotent, hoặc iđêan của nó không vượt ra ngoài vùng, thì chúng tôi khuyên bạn trước tiên nên triển khai iđêan trước khi di chuyển hàm.

Các đề xuất vùng tối ưu khác nhau tùy theo loại trình kích hoạt sự kiện:

Loại kích hoạt Đề xuất khu vực
Cloud Firestore Khu vực gần nhất với vị trí phiên bản Cloud Firestore (xem phần tiếp theo)
Cơ sở dữ liệu thời gian thực Luôn luôn là trung tâm của us-central1
Lưu trữ Khu vực gần nhất với vị trí Thùng lưu trữ (xem phần tiếp theo)
Khác Nếu bạn đang tương tác với phiên bản Cơ sở dữ liệu thời gian thực, phiên bản Cloud Firestore hoặc nhóm lưu trữ bên trong hàm, thì vùng được đề xuất sẽ giống như khi bạn có một hàm được kích hoạt bởi một trong các tài nguyên đó. Nếu không, hãy sử dụng vùng mặc định của us-central1 . Cũng lưu ý rằng các chức năng được kết nối với Lưu trữ Firebase phải được đặt trong us-central1 .

Chọn khu vực dựa trên Cloud Firestore và vị trí lưu trữ

Các vùng khả dụng cho các chức năng không phải lúc nào cũng khớp chính xác với các vùng có sẵn cho cơ sở dữ liệu Cloud Firestore và nhóm Bộ nhớ trên đám mây của bạn.

Lưu ý rằng nếu chức năng và tài nguyên của bạn (phiên bản cơ sở dữ liệu hoặc Nhóm lưu trữ) ở các vị trí khác nhau, thì bạn có thể gặp phải thời gian chờ và chi phí thanh toán tăng lên.

Dưới đây là bản đồ các khu vực hỗ trợ chức năng gần nhất cho Cloud Firestore và Cloud Storage, đối với các trường hợp không hỗ trợ cùng một khu vực:

Vùng / Đa vùng cho Cloud Firestore và Storage Vùng gần nhất cho các chức năng
nam5 hoặc us-central (đa vùng) us-central1
eur3 hoặc europe-west (đa khu vực) europe-west1
asia-south1 (Mumbai) asia-east2