第三方使用普通上传云函数后,再获取列表时显示更新失败,可能是什么原因呢?
发布于 4 年前 作者 yangguiying 5118 次浏览 来自 问答

服务端nodejs, 普通上传云函数正常,但是再获取列表时显示如下错误。请问是啥原因? 下面是上传部分的代码。

{
	"errcode": 0,
	"errmsg": "ok",
	"total_count": 1,
	"functions": [{
		"mod_time": "2021-01-14 17:45:26",
		"add_time": "2021-01-13 12:11:14",
		"runtime": "Nodejs8.9",
		"name": "transfile",
		"status": "UpdateFailed"
	}]
}
    const API = wxComponent.getWxOpenAppApi();
    const accessToken = await API.getAuthorizerAccessToken(appId);

    // 获取代码保护密钥
    const respData1 = await rp.post({
      url: `${WECHAT_HOST}/tcb/getcodesecret?access_token=${accessToken}`,
      body: {},
      json: true,
    });

    // 获取云环境信息
    const respData2 = await rp.post({
      url: `${WECHAT_HOST}/tcb/getenvinfo?access_token=${accessToken}`,
      body: {},
      json: true,
    });

    const ZipFile = await fsPromises.readFile(CLOUD_FUNCTION_FILE_PATH, 'base64');

    const params = {
      'CodeSecret': respData1.codesecret,
      'EnvId': respData2.info_list[0].env,
      'FunctionName': 'transfile',
      'Handler': 'index.main',
      'InstallDependency': 'TRUE',
      ZipFile,
    };

    const uploadBody = JSON.stringify(params);
    const hashedPayload =
      crypto.createHash('sha256').update(uploadBody).digest('hex').toLowerCase();

    // 获取上传凭证
    const respData3 = await rp.post({
      url: `${WECHAT_HOST}/tcb/getuploadsignature?access_token=${accessToken}`,
      body: {
        hashed_payload: hashedPayload,
      },
      json: true,
    });

    // 上传云函数
    const respData4 = await rp.post({
      url: `https://scf.tencentcloudapi.com`,
      body: params,
      headers: parseHeaders(respData3.headers),
      json: true,
    });
回到顶部