Cloud Run 函数位置

Cloud Run functions 是区域级的,这意味着运行 Cloud Run functions 函数的基础设施位于特定区域,由 Google 托管,以便在该区域内的所有可用区以冗余方式提供。

选择在其中运行 Cloud Run functions 函数的区域时,应主要考虑延迟和可用性。通常,您可以选择离您的 Cloud Run functions 函数用户最近的区域,但您还应考虑应用使用的其他 Google Cloud 产品和服务的位置。跨多个位置使用服务可能会影响应用的延迟时间和价格

下面列出了 Cloud Run functions 的可用区域。不同的 Cloud Run functions 版本的区域可用性也不尽相同;有关详情,请参阅表中的“支持的产品版本”列。

层级 1 价格

Cloud Run functions 在以下区域中以层级 1 价格提供:

区域 位置 二氧化碳排放量
asia-east1 台湾
asia-northeast1 东京
asia-northeast2 大阪
europe-north1 芬兰 叶形图标 二氧化碳排放量低
europe-southwest1 马德里
europe-west1 比利时 叶形图标 二氧化碳排放量低
europe-west4 荷兰
europe-west8 米兰
europe-west9 巴黎 叶形图标 二氧化碳排放量低
me-west1 特拉维夫
us-central1 艾奥瓦 叶形图标 二氧化碳排放量低
us-east1 南卡罗来纳
us-east4 北弗吉尼亚
us-east5 哥伦布
us-south1 达拉斯
us-west1 俄勒冈 叶形图标 二氧化碳排放量低

层级 2 价格

Cloud Run functions 在以下区域中以层级 2 价格提供:

区域 位置 二氧化碳排放量
asia-east2 香港
asia-northeast3 首尔
asia-southeast1 新加坡
asia-southeast2 雅加达
asia-south1 孟买
asia-south2 德里(印度)
australia-southeast1 悉尼
australia-southeast2 墨尔本
europe-central2 华沙
europe-west2 伦敦
europe-west3 法兰克福 叶形图标 二氧化碳排放量低
europe-west6 苏黎世 叶形图标 二氧化碳排放量低
europe-west10 柏林
europe-west12 都灵
me-central1 多哈
me-central2 Dammam
northamerica-northeast1 蒙特利尔 叶形图标 二氧化碳排放量低
northamerica-northeast2 多伦多 叶形图标 二氧化碳排放量低
southamerica-east1 圣保罗 叶形图标 二氧化碳排放量低
southamerica-west1 智利圣地亚哥
us-west2 洛杉矶
us-west3 盐湖城
us-west4 拉斯维加斯

选择区域

您可以在部署期间为函数选择区域。

gcloud

如果您在使用 Google Cloud CLI,则可以使用 --region 标志指定区域。

gcloud functions deploy FUNCTION_NAME --region=REGION ...

其中,REGION 是上面列出的一个区域。

控制台

如果您使用的是 Google Cloud 控制台,则可以在创建和部署函数时选择区域。

  1. 在 Google Cloud 控制台中,前往 Cloud Run functions 函数的“概览”页面。

    前往 Cloud Run functions 概览页面

    请务必选择启用了 Cloud Run functions 函数的项目。

  2. 点击创建函数

  3. 区域字段中,选择一个区域。

您可以将函数部署到项目中的不同区域,但是一旦为函数选择了区域,就无法再进行更改。

给定项目中的函数的名称在给定区域内必须独一无二(区分大小写),但不同区域或不同项目的函数可以重名。

设置默认区域

您可以使用 Google Cloud CLI 设置默认区域,方法如下:

gcloud config set functions/region REGION

例如:

gcloud config set functions/region europe-west1

数据驻留

Cloud Run functions 在函数执行范围(范围 A 合规性 - 函数执行)内提供数据驻留保证,其中给定函数为函数调用/执行提供数据驻留。

这种合规性适用于 HTTP 函数和事件驱动的函数。对于事件驱动的函数,从上游产品(触发产品)将事件传递到 Cloud Run functions 开始,Cloud Run functions 就是符合数据驻留要求的。因此,请务必确保上游产品(例如 Cloud Storage 或 Pub/Sub)本身符合数据驻留的要求。

更改区域的最佳做法

如果您需要更改函数的部署区域,请遵循以下建议。

HTTP 函数

对于 HTTP 函数,我们建议您首先将 HTTP 函数重新部署到目标区域(可以使用相同名称),然后更改原始函数以将其 HTTP 请求重定向到新函数。如果 HTTP 函数的客户端支持重定向,那么您只需更改原始函数,使其返回 HTTP 重定向状态 (301) 以及新函数的网址即可。如果您的客户端无法很好地处理重定向,则您可以从原始函数发起指向新函数的新请求,以便将请求从原始函数(代理)转发到新函数。最后一步是确保所有客户端都调用新函数。

事件驱动的函数

事件驱动的函数采用“至少传送一次事件”语义,这意味着在某些情况下它们可能会收到重复事件,因此在实现此类函数时应始终遵循幂等原则。如果您的函数已遵循幂等原则,那么您只需采用相同的事件触发器在新区域中重新部署该函数,并在验证新函数能正确接收流量后移除旧函数。在此过渡期间,两个函数都将收到事件。

如果您的函数目前不遵循幂等原则,或者它的幂等性只在其所在区域内有效,我们建议您在移动该函数之前先实现幂等性。