Cloud Functions 位置

Cloud Functions 為「區域性」,也就是說,執行應用程式的基礎架構 位於特定區域,並由 Google 管理 可在多個可用區中備援 「各個區域中的所有可用區」

選取要執行函式的區域時,您的主要 考慮因素包括延遲時間和可用性你可以 通常選取使用者附近的區域 也應考量 其他產品和服務 應用程式使用的架構在多個區域使用服務可能會影響 查看延遲時間與定價

根據預設,函式會在 us-central1 區域執行。請注意 例如 Cloud Storage 值區等事件來源所在區域 瞭解詳情 指定函式的執行區域

支援的地區

在本章節的清單中, power_savings_leaf 圖示表示此區域的電力是由 低碳排放若需更多資訊,請參閲 Google Cloud 區域的無碳能源

Cloud Functions 適用於以下具備 級別 1 定價

  • asia-east1 (台灣)
  • asia-east2 (香港) 僅限第 1 代
  • asia-northeast1 (東京)
  • asia-northeast2 (大阪)
  • europe-north1 (芬蘭) power_savings_leaf 僅限第 2 代
  • europe-west1 (比利時) power_savings_leaf
  • europe-west2 (倫敦) 僅限第 1 代
  • us-central1 (愛荷華州) power_savings_leaf
  • us-east1 (南卡羅來納州)
  • us-east4 (北���吉尼亞州)
  • us-west1 (奧勒岡州) power_savings_leaf

Cloud Functions 適用於以下具備 級別 2 定價

  • asia-east2 (香港) 第 2 代
  • asia-northeast3 (首爾)
  • asia-southeast1 (新加坡)
  • asia-southeast2 (雅加達)
  • asia-south1 (孟買) 僅限第 2 代
  • australia-southeast1 (雪梨)
  • australia-southeast2 (僅限墨爾本) 第 2 代
  • europe-central2 (華沙)
  • 僅限 europe-west2 (倫敦) 第 2 代
  • europe-west3 (法蘭克福)
  • europe-west6 (蘇黎世) power_savings_leaf
  • northamerica-northeast1 (蒙特婁) power_savings_leaf
  • northamerica-northeast2 (多倫多) power_savings_leaf 僅限第 2 代
  • southamerica-east1 (聖保羅) power_savings_leaf
  • southamerica-west1 (僅限智利、智利) 第 2 代
  • us-west2 (洛杉磯)
  • us-west3 (鹽湖城)
  • us-west4 (拉斯維加斯)

指定專案內指定地區中的函式必須擁有唯一 (不區分大小寫) 名稱,但跨地區或跨專案的函式可能會共用相同名稱。

指定區域的最佳做法

根據預設,函式會在 us-central1 區域執行。請注意 例如 Cloud Storage 值區等事件來源所在區域如果 您需要指定函式的執行區域,請按照 本節中各函式觸發條件類型的建議。

如要設定函式的執行區域,請在region 函式定義,如下所示:

Node.js

exports.firestoreAsia = onDocumentCreated(
  {
    document: "my-collection/{docId}",
    region: "asia-northeast1",
  },
  (event) => {},
);

Python

# Before
@firestore_fn.on_document_created("my-collection/{docId}")
def firestore_trigger(event):
    pass

# After
@firestore_fn.on_document_created("my-collection/{docId}",
                                  region="asia-northeast1")
def firestore_trigger_asia(event):
    pass

如要指定多個區域,您可以傳送多個以半形逗號分隔的區域。 region中的字串。此外請注意,如果為 背景觸發條件類型,請視需求 以及區域在上述範例中,這是 Cloud Firestore document 發出事件針對 Cloud Storage 觸發事件篩選器 可能為 bucket;如果是 Pub/Sub 觸發條件,則會是 topic,依此類推

詳情請見 變更函式的區域 進一步瞭解如何變更處理中函式的區域 實際工作環境流量

HTTP 和可呼叫的函式

對於 HTTP 和可呼叫函式,建議您先將函式設為 或最接近預期客戶所在地的位置,以及 然後修改原始函式,���其 HTTP 要求重新導向至新的 函式 (可以使用相同的名稱)。如果您的 HTTP 函式用戶端支援 只需變更原始函式,即可傳回 重新導向狀態 (301),以及新函式的網址。如果客戶 無法有效處理重新導向,您可以透過Proxy 傳送要求的原始內容 函式,方法是從原始函式發出新要求,以便向新函式傳送 函式新增至新函式最後一個步驟是確保 呼叫新函式

為可呼叫函式選擇用戶端位置

就可呼叫函式而言,用戶端可呼叫的設定應遵循相同的 做為 HTTP 函式用戶端也可以指定地區 如果函式是在 us-central1 以外的任何區域執行,則必須執行此操作。

如何設定 請在初始化時指定所需的區域:

Swift

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

Objective-C

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

網路


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

Unity

firebase.Functions.FirebaseFunctions functions;

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

背景函式

背景函式採用至少一次的事件傳遞語意, 在某些情況下,可能會收到重複的事件。因此, 導入函式 冪等。如果您的函式 已是冪等的,則您可以在新的區域中,以 使用相同的事件觸發條件,並在您確認 新函式正確接收流量。在此過渡期間, 函式會收到事件。詳情請見 變更函式的區域 ,瞭解變更函式區域的建議序列。

如果您的函式目前並非冪等,或其冪等未延伸到地區之外,則我們建議您先實作冪等,再移動函式。

最佳區域建議會因事件觸發條件類型而異:

觸發條件類型 區域建議
Cloud Firestore 最靠近 Cloud Firestore 執行個體位置的區域 (請參閱下一節)
即時資料庫 一律為 us-central1
Cloud Storage 最靠近 Cloud Storage 值區位置的區域 (請參閱下一節)
其他 如要與即時資料庫執行個體 (即 Cloud Firestore) ���動 或������式內的 Cloud Storage 值區 區域就是您在其中一個區域 再複習一下,機構節點 是所有 Google Cloud Platform 資源的根節點否則,請使用 us-central1 的預設區域。 已連線至 Firebase 託管的函式皆可位於任何區域,但 瞭解如何取得建議。

根據 Cloud Firestore 和 Cloud Storage 位置選取區域

函式的可用區域與 Cloud Firestore 資料庫和 Cloud Storage 的可用區域 Cloud Storage 也提供目錄同步處理功能 方便您同步處理 VM 目錄與值區

請注意,如果您的函式和資源 (資料庫執行個體或 Cloud Storage) 多個不同位置的資料 延遲時間變長 帳單費用

下表為 Cloud Firestore 中最近支援函式支援的區域 和 Cloud Storage 搭配使用,以「不」支援同一區域的情況:

Cloud Firestore 和 Cloud Storage 的區域/多區域 最接近函式的區域
nam5us-central (多區域) us-central1
eur3europe-west (多區域) europe-west1
europe-west4 (荷蘭) europe-west1
asia-south1 (孟買) asia-east2
asia-south2 (德里) asia-east2
australia-southeast2 (墨爾本) australia-southeast1