Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase云功能部署错误,错误代码为“;“无钥匙”;_Firebase_Google Cloud Functions - Fatal编程技术网

Firebase云功能部署错误,错误代码为“;“无钥匙”;

Firebase云功能部署错误,错误代码为“;“无钥匙”;,firebase,google-cloud-functions,Firebase,Google Cloud Functions,我试图从firebase CLI(版本8.12.1)部署我的一个功能,但它一直失败。 这个功能几周没变了,所以我有点困惑为什么它现在会失败 来自CLI的错误 函数[http api-(europe-west1)]:部署错误。 生成失败:生成错误详细信息不可用。请检查&advancedFilter=resource处的日志。类型%3Dbuild%0Aresource.labels.build\u id%3Dfeb2697d-29b4-4ab7-9b84-90d9f847be42%0AlogName

我试图从firebase CLI(版本8.12.1)部署我的一个功能,但它一直失败。 这个功能几周没变了,所以我有点困惑为什么它现在会失败

来自CLI的错误

函数[http api-(europe-west1)]:部署错误。 生成失败:生成错误详细信息不可用。请检查&advancedFilter=resource处的日志。类型%3Dbuild%0Aresource.labels.build\u id%3Dfeb2697d-29b4-4ab7-9b84-90d9f847be42%0AlogName%3Dprojects%2Vestico dev%2Flogs%2Fcloudbuild

来自云控制台的日志

第3步-“恢复者”:从缓存中恢复“google.nodejs.functions framework:functions framework”的数据

步骤3-“恢复程序”:\u001b[31;1mERROR:\u001b[0还原失败:还原数据:获取https://storage.googleapis.com/eu.artifacts..appspot.com/containers/images/sha256:484d08dfc6a8f356c34a86fa4440fedf86f4fc398967eea66e4aab4e9ee81e3d?access_token=REDACTED: 不支持的状态代码404;正文:
NoSuchKey
指定的密钥不存在。没有此类对象:eu.artifacts..appspot.com/containers/images/sha256:484d08dfc6a8f356c34a86fa4440fedf86f4fc398967eea66e4aab4e9ee81e3d

已完成步骤#3-“恢复器”

错误:生成步骤3“eu.gcr.io/fn img/BuildPack/nodejs10/builder:nodejs10\u 20201005\u 20\u RC00”失败:步骤退出,状态为非零:46

有趣的一点可能是上面的错误:

<Error>
  <Code>NoSuchKey</Code>
  <Message>The specified key does not exist.</Message>
  <Details>No such object: eu.artifacts.<project-id>.appspot.com/containers/images/sha256:484d08dfc6a8f356c34a86fa4440fedf86f4fc398967eea66e4aab4e9ee81e3d</Details>
</Error>
builder所指的键是什么?
@appspot.gserviceaccount.com
可以通过角色
cloud Functions Admin
Editor
访问云函数

编辑 通过
firebase部署进行部署--仅功能:

该函数使用
@googlecloud/storage
获取存储资源的公共url

我正在加载如下配置的服务帐户:


const devServiceAccount=require(“../../service accounts/dev.json”);
const prodServiceAccount=require(“../../service accounts/prod.json”);
导出常量getAdminConfig=():(AppOptions |未定义)=>{
const baseConfigEnv=process.env.FIREBASE\u CONFIG;
如果(!baseConfigEnv){
console.error(“无firebase配置环境”);
返回未定义;
}
const app=functions.config().app;
如果(应用===未定义){
控制台错误(“无firebase应用程序配置”);
返回未定义;
}
const serviceAccount=app.environment=='dev'?devServiceAccount:prodServiceAccount;
const adminConfig=JSON.parse(baseConfigEnv)作为AppOptions;
adminConfig.credential=credential.cert(serviceAccount);
返回adminConfig;
}
这里使用云存储

const选项={
行动:“读”,
过期日期:Date.now()+1000*60*60//1小时
}作为GetSignedUrlConfig;
const file=bucket.file(路径);
filePathPromises.push(file.getSignedUrl(选项))
});
我的文件夹结构如下

+ functions
  + lib
    + function.js
  + service-accounts
    + dev.json
    + prod.json
  + src
    + function.ts
考虑到项目中所有函数的文件都加载在
getAdminConfig()
中,我排除了服务帐户文件是问题所在

更新10/13/20
我已经验证了上载到GCF存储容器的文件。JSON密钥在那里并且位于正确的位置。路径匹配,因此应该在GCF运行时找到它们。

Firebase云函数或GCF中似乎存在间歇性问题。我刚刚再次运行了
Firebase部署--仅函数
,并且部署成功失败。

为下一个遇到此问题的灵魂添加提示。这似乎是由于还原/回滚过程中缺少/无法访问文件造成的

我通过以下方法成功地解决了该问题:

  • 使用web firebase控制台删除我的函数
  • 再次正常部署
    >firebase部署

  • 您好@bhr通常
    NoSuchKey
    错误与系统中不存在的文件有关-在这种情况下,与您的功能有关。考虑到这一点,您可以分享您用于部署功能的命令以及该功能应该执行的操作吗?@gso_grabriel:我也是这么想的。我不确定哪个文件不能执行但是被发现。我为上述问题添加了更多上下文。我也有同样的问题。你确定你除了等待之外什么都没做吗?:)我刚刚重新部署,它对我有效。检查后,找不到与关键文件相关的任何更改。部署函数对你有用吗?是的,几天前工作过,现在我无法重新部署相同的代码,但是我们遇到了上述问题(我又遇到了另一个函数的问题。这是因为trickI在为我的容器映像创建生命周期删除规则后,在部署Google云函数时遇到了NoSuchKey错误。我需要删除我的实际云函数吗?这会不会破坏我的应用程序?是的,删除你的函数会加快速度。)在新部署完成之前,很少会中断功能。抱歉,我不知道还有其他解决方案。您是否从Firebase存储中删除了旧工件?问题可能与此有关。