Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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 những khu vực để chạy các chức năng của bạn, những 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 độ trễ cũng như giá của ứng dụng của bạn.

Các khu vực được hỗ trợ

Trong các danh sách ở phần này, biểu tượng energy_saves_leaf cho biết rằng điện cho khu vực này được sản xuất với lượng khí thải carbon thấp. Để biết thêm thông tin, hãy xem Năng lượng không carbon cho các vùng Google Cloud .

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

  • asia-east1 (Đài Loan)
  • asia-east2 (Hồng Kông)
  • asia-northeast1 (Tokyo)
  • asia-northeast2 (Osaka)
  • europe-west1 (Bỉ) energy_saves_leaf
  • europe-west2 (London)
  • us-central1 (Iowa) energy_saves_leaf
  • us-east1 (Nam Carolina)
  • us-east4 (Bắc Virginia)
  • us-west1 (Oregon) energy_saves_leaf

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

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

Các hàm 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 hàm giữa các vùng hoặc giữa các dự án có thể có cùng tên.

Thực tiễn tốt 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ư bộ chứa Cloud Storage. Nếu bạn cần thay đổi khu vực mà 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 mà hàm chạy, hãy đặt tham số region trong định nghĩa hàm như minh họa:

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 có thể gọi được của máy khách

Đối với HTTP và các chức năng 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 ở khu vực đích hoặc gần nhất với nơi có nhiều khách hàng mong đợi nhất, 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ó sang chức năng mới (chúng có thể có cùng chức năng Tên). Nếu các máy khách của chức năng HTTP của bạn hỗ trợ chuyển hướng, thì bạn 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ý chuyển hướng tốt, 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 chức năng 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 được

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

Để đặt 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")

Mục tiêu-C

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

mạng


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");

Đoàn kết

firebase.Functions.FirebaseFunctions functions;

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

chức năng nền

Các hàm nền áp 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 sự kiện trùng lặp. Vì vậy, bạn nên triển khai các chức năng thành idempotent . Nếu chức năng của bạn đã ở trạng thái tạm thời, thì bạn có thể triển khai lại chức năng trong khu vực mới với cùng một trình kích hoạt sự kiện và xóa chức năng cũ sau khi bạn xác minh rằng chức năng mới đang nhận lưu lượng truy cập một cách 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 chức năng để biết chuỗi lệnh được đề xuất để thay đổi vùng cho chức năng.

Nếu chức năng của bạn hiện không ở trạng thái tạm thời hoặc tính năng tạm thời của nó không vượt ra ngoài khu vực, thì chúng tôi khuyên bạn trước tiên nên triển khai tính năng tạm thời trước khi di chuyển chức năng.

Đề xuất khu vực 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 Khuyến nghị khu vực
Cửa hàng lửa trên đám mây 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 us-central1
Lưu trữ đám mây Khu vực gần nhất với vị trí bộ chứa Cloud Storage (xem phần tiếp theo)
Khác Nếu bạn đang tương tác với một phiên bản Cơ sở dữ liệu thời gian thực, một phiên bản Cloud Firestore hoặc một bộ chứa Cloud Storage bên trong chức năng, thì khu vực được đề xuất sẽ giống như khi bạn có một chức năng đượ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 Firebase Hosting phải được đặt trong us-central1 .

Chọn vùng dựa trên vị trí Cloud Firestore và Cloud Storage

Các vùng có sẵn 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à bộ chứa Cloud Storage 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 bộ chứa Lưu trữ đám mây) ở các vị trí khác nhau thì bạn có thể gặp phải tình trạng độ trễ và chi phí thanh toán tăng lên .

Dưới đây là ánh xạ các khu vực đượ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à Cloud Storage Khu vực 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
australia-southeast2 (Melbourne) australia-southeast1