0
我有一个Node.js应用程序,它可以在本地主机上正常运行,但不在计算引擎虚拟机中运行。这里是一个片段:无法在Google Compute Engine虚拟机中运行应用程序
try {
gcloud = require('gcloud');
var storage = gcloud.storage({ projectId: 'project-id' });
var bucket = storage.bucket('my-bucket');
bucket.file(src_file).createReadStream().pipe(fs.createWriteStream(src_file));
} catch (e) {
e = 'Error loading required classes for gcloud: '+gcloud+ ': '+e
console.log(e)
res.status(200).send(e);
}
当我运行这段代码
undefined: Error: /app/node_modules/gcloud/node_modules/hash-stream-validation/node_modules/sse4_crc32/build/Release/sse4_crc32.node: invalid ELF header
它看起来像我不能导入gcloud类,但我不明白为什么它工作在本地主机,但不在GCE服务器?
我已阅读https://cloud.google.com/nodejs/getting-started/run-on-compute-engine的说明,但是是否真的需要执行所有此配置才能部署我的应用程序?这个例子如何:https://cloud.google.com/nodejs/getting-started/using-cloud-datastore在“结构化数据”示例中,“gcloud预览应用程序部署app.yaml --set-default”命令是足以将应用程序部署到GCE服务器。我已经安装了这个例子,我可以在本地主机和GCE服务器上运行它,只需这个简单的部署命令 – Kwame
@Kwame - 有不同的部署机制,需要不同的配置量并提供不同的权衡。如果您使用的是“gcloud预览应用程序”,则使用的是正在GCE上运行的[托管虚拟机](https://cloud.google.com/appengine/docs/managed-vms/),但环境稍微受到限制。如果您想以更灵活的方式运行原始GCE虚拟机,则需要更多的工作和配置。 –
谢谢米莎。自从我上次评论以来,我已经取得了一些进展。我发现“无效的ELF标题”指的是“可执行和可链接的格式”:https://community.oracle.com/thread/3749710这与eclipse(我的IDE)有关,所以我将我的代码移出的Eclipse,并且我能够将其上传到GCE服务器,并且现在需要适当的gcloud类没有任何错误。该应用程序仍然没有运行,但我猜这是一个不同的问题。再次感谢。 – Kwame