不同 Google 不同存储的云函数调用?
Different Google Cloud Function Call For Different Storage?
我目前正在做一个项目,其中有两个不同的存储桶(一个在美国中部,另一个在韩国)。
将用于更新存储使用情况的函数定位在与存储相同的位置,在成本方面和速度方面都会更有效率。
但是,现在我想在两个不同的位置管理该功能。此函数用于在存储中上传新图像时更新 Firestore。
这是我认为可行的代码(但实际上行不通)
exports.incrementUsedSize = functions.region('us-central1').storage.object().onFinalize
exports.incrementUsedSizeKr = functions.region('asia-northeast3').storage.object().onFinalize
但是每当更新美国或韩国的存储时都会调用这两个。
有没有办法让这些功能在两个地方同时工作而不互相干扰?
我的意思是,有没有办法将函数的范围限制在特定位置的存储?
根据文档:
To set the region where a function runs, set the region parameter in the function
definition as shown:
exports.incrementUsedSize = functions
.region('us-central1')
.storage
.object()
.onFinalize((object) => {
// ...
});
.region()
设置云函数的位置,与存储桶无关。
但是,正如您所说的存储桶不同,而不是单个“双区域”存储桶,您应该能够以这种方式部署:
gcloud functions deploy incrementUsedSize \
--runtime nodejs10 \
--trigger-resource YOUR_TRIGGER_BUCKET_NAME \
--trigger-event google.storage.object.finalize
通过指定触发器桶,您应该能够限制调用触发器。 documentation here
中有更多详细信息
如果您的问题涉及 Firebase Cloud Function,那么您可以指定存储桶名称 here:
exports.incrementUsedSize = functions.storage.bucket('bucketName').object().onFinalize(async (object) => {
// ...
});
我目前正在做一个项目,其中有两个不同的存储桶(一个在美国中部,另一个在韩国)。
将用于更新存储使用情况的函数定位在与存储相同的位置,在成本方面和速度方面都会更有效率。
但是,现在我想在两个不同的位置管理该功能。此函数用于在存储中上传新图像时更新 Firestore。
这是我认为可行的代码(但实际上行不通)
exports.incrementUsedSize = functions.region('us-central1').storage.object().onFinalize
exports.incrementUsedSizeKr = functions.region('asia-northeast3').storage.object().onFinalize
但是每当更新美国或韩国的存储时都会调用这两个。
有没有办法让这些功能在两个地方同时工作而不互相干扰?
我的意思是,有没有办法将函数的范围限制在特定位置的存储?
根据文档:
To set the region where a function runs, set the region parameter in the function definition as shown:
exports.incrementUsedSize = functions
.region('us-central1')
.storage
.object()
.onFinalize((object) => {
// ...
});
.region()
设置云函数的位置,与存储桶无关。
但是,正如您所说的存储桶不同,而不是单个“双区域”存储桶,您应该能够以这种方式部署:
gcloud functions deploy incrementUsedSize \
--runtime nodejs10 \
--trigger-resource YOUR_TRIGGER_BUCKET_NAME \
--trigger-event google.storage.object.finalize
通过指定触发器桶,您应该能够限制调用触发器。 documentation here
中有更多详细信息如果您的问题涉及 Firebase Cloud Function,那么您可以指定存储桶名称 here:
exports.incrementUsedSize = functions.storage.bucket('bucketName').object().onFinalize(async (object) => {
// ...
});