不同的谷歌云功能需要不同的存储



我目前正在进行一个项目,其中有两个不同的存储桶(一个在美国中部,另一个在韩国(。

在成本和速度方面,将用于更新存储使用情况的功能定位在与存储相同的位置将更有效。

但是,现在我想在两个不同的位置管理功能。此函数用于在存储中上传新图像时更新Firestore。

这是我认为可以工作(但实际上没有(的代码

exports.incrementUsedSize = functions.region('us-central1').storage.object().onFinalize
exports.incrementUsedSizeKr = functions.region('asia-northeast3').storage.object().onFinalize

但每当美国或韩国的存储更新时,这两个都会被调用。

有没有一种方法可以使这些功能在两个位置工作而不会相互干扰?

我的意思是,有没有办法将功能范围限制在特定位置的存储?

根据文档:

若要设置函数运行的区域,请在函数中设置区域参数定义如图所示:

exports.incrementUsedSize = functions
    .region('us-central1')
    .storage
    .object()
    .onFinalize((object) => {
      // ...
    });

.region()为您的云功能设置位置,与bucket无关。

然而,正如你所说,桶是不同的,不是一个"桶";双区域";bucket,您应该能够以这种方式部署:

gcloud functions deploy incrementUsedSize 
--runtime nodejs10 
--trigger-resource YOUR_TRIGGER_BUCKET_NAME 
--trigger-event google.storage.object.finalize

通过指定触发器桶,您应该能够限制调用触发器。文档中的更多详细信息

如果您的问题涉及Firebase云功能,那么您可以指定此处提到的存储桶名称:

exports.incrementUsedSize = functions.storage.bucket('bucketName').object().onFinalize(async (object) => {
  // ...
});

相关内容

  • 没有找到相关文章

最新更新