Cloud Run 函数位置(第 1 代)
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-east2 |
香港 | |
asia-northeast1 |
东京 | |
asia-northeast2 |
大阪 | |
europe-west1 |
比利时 | 二氧化碳排放量低 |
europe-west2 |
伦敦 | |
us-central1 |
艾奥瓦 | 二氧化碳排放量低 |
us-east1 |
南卡罗来纳 | |
us-east4 |
北弗吉尼亚 | |
us-west1 |
俄勒冈 | 二氧化碳排放量低 |
层级 2 价格
Cloud Run functions 在以下区域中以层级 2 价格提供:
区域 | 位置 | 二氧化碳排放量 |
---|---|---|
asia-northeast3 |
首尔 | |
asia-southeast1 |
新加坡 | |
asia-southeast2 |
雅加达 | |
asia-south1 |
孟买 | |
australia-southeast1 |
悉尼 | |
europe-central2 |
华沙 | |
europe-west3 |
法兰克福 | 二氧化碳排放量低 |
europe-west6 |
苏黎世 | 二氧化碳排放量低 |
northamerica-northeast1 |
蒙特利尔 | 二氧化碳排放量低 |
southamerica-east1 |
圣保罗 | 二氧化碳排放量低 |
us-west2 |
洛杉矶 | |
us-west3 |
盐湖城 | |
us-west4 |
拉斯维加斯 |
选择区域
您可以在部署期间为函数选择区域。
gcloud
如果您在使用 Google Cloud CLI,则可以使用 --region
标志指定区域。
gcloud functions deploy --no-gen2 FUNCTION_NAME --region=REGION ...
其中,REGION
是上面列出的一个区域。
控制台
如果您使用的是 Google Cloud 控制台,则可以在创建和部署函数时选择区域。
在 Google Cloud 控制台中,前往 Cloud Run functions 函数的“概览”页面。
前往 Cloud Run functions 函数的“概览”页面
请务必选择启用了 Cloud Run functions 函数的项目。
点击创建函数。
在区域字段中,选择一个区域。
您可以将函数部署到项目中的不同区域,但是一旦为函数选择了区域,就无法再进行更改。
给定项目中的函数的名称在给定区域内必须独一无二(区分大小写),但不同区域或不同项目的函数可以重名。
设置默认区域
您可以使用 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
) 以及新函数的网址即可。如果您的客户端无法很好地处理重定向,则您可以从原始函数发起指向新函数的新请求,以便将请求从原始函数(代理)转发到新函数。最后一步是确保所有客户端都调用新函数。
事件驱动的函数
事件驱动的函数采用“至少传送一次事件”语义,这意味着在某些情况下它们可能会收到重复事件,因此在实现此类函数时应始终遵循幂等原则。如果您的函数已遵循幂等原则,那么您只需采用相同的事件触发器在新区域中重新部署该函数,并在验证新函数能正确接收流量后移除旧函数。在此过渡期间,两个函数都将收到事件。
如果您的函数目前不遵循幂等原则,或者它的幂等性只在其所在区域内有效,我们建议您在移动该函数之前先实现幂等性。