Cloud Functions 位置
Cloud Functions 是区域级的,这意味着运行 Cloud Functions 函数的基础架构位于特定区域,由 Google 托管,以便在该区域内的所有可用区以冗余方式提供。
选择在其中运行 Cloud Functions 函数的区域时,应主要考虑延迟和可用性。通常,您可以选择离您的 Cloud Functions 函数用户最近的区域,但您还应考虑应用使用的其他 Google Cloud 产品和服务的位置。跨多个位置使用服务可能会影响应用的延迟时间和价格。
下面列出了 Cloud Functions 的可用区域。不同的 Cloud Functions 版本的区域可用性也不尽相同;有关详情,请参阅表中的“支持的产品版本”列。
层级 1 价格
Cloud Functions 函数在采用层级 1 价格的以下区域提供:
区域 | 位置 | 支持的产品版本 | 二氧化碳排放量 |
---|---|---|---|
asia-east1 |
中国台湾 | 第 1 代、第 2 代 | |
asia-east2 |
香港 | 第 1 代 | |
asia-northeast1 |
东京 | 第 1 代、第 2 代 | |
asia-northeast2 |
大阪 | 第 1 代、第 2 代 | |
europe-north1 |
芬兰 | 第 2 代 | 二氧化碳排放量低 |
europe-southwest1 |
马德里 | 第 2 代 | |
europe-west1 |
比利时 | 第 1 代、第 2 代 | 二氧化碳排放量低 |
europe-west2 |
伦敦 | 第 1 代 | |
europe-west4 |
荷兰 | 第 2 代 | |
europe-west8 |
米兰 | 第 2 代 | |
europe-west9 |
巴黎 | 第 2 代 | 二氧化碳排放量低 |
me-west1 |
特拉维夫 | 第 2 代 | |
us-central1 |
爱荷华 | 第 1 代、第 2 代 | 二氧化碳排放量低 |
us-east1 |
南卡罗来纳 | 第 1 代、第 2 代 | |
us-east4 |
北弗吉尼亚 | 第 1 代、第 2 代 | |
us-east5 |
哥伦布 | 第 2 代 | |
us-south1 |
达拉斯 | 第 2 代 | |
us-west1 |
俄勒冈 | 第 1 代、第 2 代 | 二氧化碳排放量低 |
层级 2 价格
Cloud Functions 可在采用层级 1 价格的以下地区使用:
区域 | 位置 | 支持的产品版本 | 二氧化碳排放量 |
---|---|---|---|
asia-east2 |
香港 | 第 2 代 | |
asia-northeast3 |
首尔 | 第 1 代、第 2 代 | |
asia-southeast1 |
新加坡 | 第 1 代、第 2 代 | |
asia-southeast2 |
雅加达 | 第 1 代、第 2 代 | |
asia-south1 |
孟买 | 第 1 代、第 2 代 | |
asia-south2 |
德里(印度) | 第 2 代 | |
australia-southeast1 |
悉尼 | 第 1 代、第 2 代 | |
australia-southeast2 |
墨尔本 | 第 2 代 | |
europe-central2 |
华沙 | 第 1 代、第 2 代 | |
europe-west2 |
伦敦 | 第 2 代 | |
europe-west3 |
法兰克福 | 第 1 代、第 2 代 | 二氧化碳排放量低 |
europe-west6 |
苏黎世 | 第 1 代、第 2 代 | 二氧化碳排放量低 |
europe-west10 |
柏林 | 第 2 代 | |
europe-west12 |
都灵 | 第 2 代 | |
me-central1 |
多哈 | 第 2 代 | |
me-central2 |
达曼 | 第 2 代 | |
northamerica-northeast1 |
蒙特利尔 | 第 1 代、第 2 代 | 二氧化碳排放量低 |
northamerica-northeast2 |
多伦多 | 第 2 代 | 二氧化碳排放量低 |
southamerica-east1 |
圣保罗 | 第 1 代、第 2 代 | 二氧化碳排放量低 |
southamerica-west1 |
智利圣地亚哥 | 第 2 代 | |
us-west2 |
洛杉矶 | 第 1 代、第 2 代 | |
us-west3 |
盐湖城 | 第 1 代、第 2 代 | |
us-west4 |
拉斯维加斯 | 第 1 代、第 2 代 |
选择区域
您可以在部署期间为函数选择区域。
gcloud
如果您在使用 Google Cloud CLI,则可以使用 --region
标志指定区域。
gcloud functions deploy FUNCTION_NAME --region=REGION ...
其中,REGION
是上面列出的一个区域。
控制台
如果您使用的是 Google Cloud 控制台,则可以在创建和部署函数时选择区域。
在 Google Cloud 控制台中,转到 Cloud Functions 概览页面。
请务必选择启用了 Cloud Functions 的项目。
点击创建函数。
在区域字段中,选择一个区域。
您可以将函数部署到项目中的不同区域,但是一旦为函数选择了区域,就无法再进行更改。
给定项目中的函数的名称在给定区域内必须独一无二(区分大小写),但不同区域或不同项目的函数可以重名。
设置默认区域
您可以使用 Google Cloud CLI 设置默认区域,方法如下:
gcloud config set functions/region REGION
例如:
gcloud config set functions/region europe-west1
数据驻留
Cloud Functions 在函数执行范围(范围 A 合规性 - 函数执行)内提供数据驻留保证,其中给定函数为函数调用/执行提供数据驻留。
这种合规性适用于 HTTP 函数和事件驱动的函数。对于事件驱动的函数,从上游产品(触发产品)将事件传递到 Cloud Functions 开始,Cloud Functions 就是符合数据驻留要求的。因此,请务必确保上游产品(例如 Cloud Storage 或 Pub/Sub)本身符合数据驻留的要求。
更改区域的最佳做法
如果您需要更改函数的部署区域,请遵循以下建议。
HTTP 函数
对于 HTTP 函数,我们建议您首先将 HTTP 函数重新部署到目标区域(可以使用相同名称),然后更改原始函数以将其 HTTP 请求重定向到新函数。如果 HTTP 函数的客户端支持重定向,那么您只需更改原始函数,使其返回 HTTP 重定向状态 (301
) 以及新函数的网址即可。如果您的客户端无法很好地处理重定向,则您可以从原始函数发起指向新函数的新请求,以便将请求从原始函数(代理)转发到新函数。最后一步是确保所有客户端都调用新函数。
事件驱动的函数
事件驱动的函数采用“至少传送一次事件”语义,这意味着在某些情况下它们可能会收到重复事件,因此在实现此类函数时应始终遵循幂等原则。如果您的函数已遵循幂等原则,那么您只需采用相同的事件触发器在新区域中重新部署该函数,并在验证新函数能正确接收流量后移除旧函数。在此过渡期间,两个函数都将收到事件。
如果您的函数目前不遵循幂等原则,或者它的幂等性只在其所在区域内有效,我们建议您在移动该函数之前先实现幂等性。