Строка, которую вы пытаетесь получить, пуста, потому что журналы генерируют немного больше времени.Несмотря на то, что облачная функция Google завершила работу, вам придется подождать несколько секунд, пока журналы не будут готовы.
Читая ваш код, вы не позволяете этому случиться, поэтому вы получаете пустую строку.
Первое, что я заметил при чтении вашего кода, была эта часть:
const executionId = executeResultOutput.split(': ')[1];
Я понимаю, что вы хотите извлечь идентификатор выполнения функции Google Cloud Function.У меня были проблемы, потому что строка не была ограничена идентификатором выполнения, она также включала символ новой строки и слово «результат».Я удостоверился, что нужно просто извлечь необходимый код выполнения со следующим кодом:
const executionId = executeResultOutput.split(':')[1]; //We get the GCP ID.
const executionId2 = executionId.split("\n")[0].toString(); //removing the right part of the string.
Если вы нашли способ получить идентификатор выполнения без проблем, тогда игнорируйте мой код.
Ниже вы можете найти код, который работал для меня, реализуя функции.
let cloudFunctionLog ='';
function getLogs(){
console.log('Trying to get logs...');
const logs = cp
.execSync(`gcloud beta functions logs read ${cloudFunctionName} --execution-id ${executionId2}`);
return logs;
}
do{
cloudFunctionLog=getLogs();
if(!cloudFunctionLog){
console.log('Logs are not ready yet...');
}else{
console.log(`${cloudFunctionLog}`);
}
}while(!cloudFunctionLog);//Do it while the string comes empty.
Когда журналы больше не пусты, они будут отображаться в вашей консоли.