如何指定Google Cloud功能的区域?

时间:2017-06-09 15:08:01

标签: google-cloud-functions gcloud latency regions

我目前正在使用Google Cloud Function来构建我的restful API。 但是,我发现它很慢,因为我的Google-Cloud-Function服务器位于" us-central",而我的服务是在亚洲。

我尝试将我的Google项目的默认区域更改为" asia-west-1"并重新启动云功能 - 我按照here概述的步骤进行了操作 - 但不幸的是,它仍处于" us-central"中。 如何更改功能区域?

3 个答案:

答案 0 :(得分:6)

Google Cloud Functions目前似乎仅在us-central1区域提供。如果我转到“创建函数”(https://console.cloud.google.com/functions/add),区域下拉列表只有一个选项,它是us-central1。

答案 1 :(得分:4)

没有“ asia-west-1”这样的区域

在Google Cloud Platform上没有“ asia-west-1”这样的区域。在撰写本文时,GCP provides the following regions in Asia

  • asia-east1
  • asia-northeast1
  • asia-south1
  • asia-southeast1

但是,asia-northeast1当前是亚洲唯一可用于Google Cloud Functions的GCP区域:

$ gcloud functions regions list
NAME
projects/xxxxxxxx/locations/europe-west1
projects/xxxxxxxx/locations/us-east1
projects/xxxxxxxx/locations/us-central1
projects/xxxxxxxx/locations/asia-northeast1

如何指定Google Cloud Function的区域

使用Google Cloud Console

区域设置很容易错过。它实际上隐藏在名为“ More”的手风琴后面:

accordion

点击它会显示一个 Region 下拉列表(以及其他高级设置):

dropdowns

使用gcloud

使用--region标志仅指定四个可用区域之一。

最小的工作示例

假设您拥有

$ tree .
.
└── index.js

0 directories, 1 file
$ cat index.js 
exports.hello = (req, res) => {

  res.send(`Hello World!`); 

}

然后跑步

gcloud functions deploy hello --region asia-northeast1 --trigger-http

应将功能hello部署到区域asia-northeast1

asia-northeast1

答案 2 :(得分:0)

摘自文档-https://firebase.google.com/docs/functions/manage-functions#modify

// before
const functions = require('firebase-functions');

exports.webhook = functions
    .https.onRequest((req, res) => {
            res.send("Hello");
    });

// after
const functions = require('firebase-functions');

exports.webhookAsia = functions
    .region('asia-northeast1')
    .https.onRequest((req, res) => {
            res.send("Hello");
    });