首页 > 解决方案 > Firebase 云功能部署 - 无效的内存属性

问题描述

我的 firebase 云函数(TypeScript)通过参考官方文档 https://firebase.google.com/docs/functions/manage-functions#set_timeout_and_memory_allocation包含了 runtimeOption

const runtimeOpts = {
  timeoutSeconds: 540,
  memory: "1GB"
}
..
export const GCPSpeech2TranscriptLRR = functions.runWith(runtimeOpts).https.onRequest((req, res) => {

它返回部署错误

src/index.ts:145:58 - error TS2345: Argument of type '{ timeoutSeconds: number; memory: string; }' is not assignable to parameter of type 'RuntimeOptions'.
  Types of property 'memory' are incompatible.
    Type 'string' is not assignable to type '"128MB" | "256MB" | "512MB" | "1GB" | "2GB" | undefined'.

145 export const GCPSpeech2TranscriptLRR = functions.runWith(runtimeOpts).https.onRequest((req, res) => {

我已经尝试了两个内存:“1GB”,内存:“1GB”,但我得到了同样的错误。如果我删除了“内存:...”行,它将正确部署。CF 部署成功后,2 分钟内仍会返回以下错误。据我所知,代码应该运行 9 分钟

Subscriber.js:192 Error: deadline-exceeded
    at new HttpsErrorImpl (index.cjs.js:58)
    at index.cjs.js:373
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
    at push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask (zone.js:503)
    at ZoneTask.invoke (zone.js:492)
    at timer (zone.js:3034)

标签: firebasegoogle-cloud-functions

解决方案


这看起来像是 Typescript 编译器推断的问题。尝试:

memory: "1GB" as "1GB"

推荐阅读