gpt4 book ai didi

node.js - 如何将Node.js应用程序部署到Google Cloud?

转载 作者:行者123 更新时间:2023-12-04 14:26:05 27 4
gpt4 key购买 nike

我正在尝试将一个nodejs应用程序部署到Google Cloud,我已经发布了几个关于我所遇到的错误以及如何修复它们的问题。让我说明一下我的努力...

problem 1)我尝试跟随hello world应用程序部署tutorial进行操作。当我输入要部署的命令时,

$ gcloud preview app deploy app.yaml --set-default

这给了我一个错误,说托管的虚拟机不适用于您的应用程序所在的区域。我与Google的技术支持代表Google的某人联系,说他的名字叫Ling,他说他“不知道印度不支持托管虚拟机”,他想让我指出在哪里找到这些信息。因此,我给他发送了 this,请注意其中一个答案。好的.....

problem 2)所以,我被困住了,真的不知道该怎么办。搜索“如何在Google云端上部署Node.js应用”,并找到了 video,其中Google开发人员告知我“有两种主要方法可以在云中运行您的应用,即基础架构即服务和平台即服务”。在应用程序引擎上运行它是平台即服务,这不在列表之列,所以我只剩下了我唯一的选择。还有一个教程,也是google的 bookshelf app教程,最后一部分描述了如何在计算引擎上运行您的应用程序。我试图遍历本教程,但是当我输入命令时
git push cloud 7-gce:master

要将代码推送到存储库,它要求我提供用户名和密码,但从未在本教程中提到,我不知道要输入什么。我找到了 this question,但不确定它是否适用于我的情况。因此,接下来我看了Zachary Newman建议的一些教程,但我无法在他们使用ubuntu的地方关注 the tutorial,因为当他们告诉你hello.js文件时,这真的很奇怪,因为我不得不ssh进入ubuntu镜像虚拟机我创建了之后,一切真的很慢,我对Linux上的命令并不熟悉,因此我不得不在创建hello.js文件后查找如何“保存并退出”。我运行了“Web服务器”,它是反向代理Nginx服务器,但是由于我不知道APP_PRIVATE_IP_ADDRESS是什么,因此当我访问该页面时,我可以看到nginx页面,但是看不到“hello world”消息应该显示。请参阅先决条件标题,以了解本教程试图教给我的内容。好的....

problem 3)在google开发人员控制台上,登录后,左侧会出现一个导航部分,其中有一个指向“Cloud Launcher”的链接。在这里,我找到了一个由Bitnami创建的,用于创建安装了nodejs的虚拟机的链接。我单击它,我的虚拟机正在运行,我转到提供的外部ip地址,并看到Bitnami的祝贺页面(ugh ...)。我真的不知道该怎么办,所以我提出了另一个SO问题。一位位经验丰富的开发人员告诉我,“需要将文件复制到远程存储库,创建配置文件,然后,您必须将该配置包含在Apache的配置中才能为应用程序提供服务”。如何?!?!他也刚刚发布了指向bitnami wiki page的链接。我使用filezilla连接到虚拟机,然后尝试将应用程序文件上传到虚拟机。我能够上载除 Node 模块以外的所有内容(上载时间太长,并且由于某种原因,FTP客户端在上载10分钟左右后一直失去与服务器的连接)。所以我想我只是将ssh插入实例并尝试npm安装我的依赖项。但这给了我更多的错误...

problem 4)我不知道为什么这个帖子被搁置了,但是我找到了 this。我现在无法找到确切的页面,但是我在google文档中读到了某个地方,根据设计,我们无法以root/administrator身份进入一个实例,并且我们必须执行一些高级配置才能执行该操作这。问题是,除非以管理员身份ssh进入,否则我将无法安装依赖项....:'(所以,我只是使用filezilla上传了我的 Node 模块。一切看起来都很顺利,我将ssh放入实例,然后CD我的应用程序目录并输入命令
node app.js

并且几乎要 mock 我,它的控制台注销了“connected to mongo ....”和“listen on port 3000 ...”。我很兴奋,我认为它正在工作.....

problem 4)我认为服务器从未真正开始运行,它无法连接到我正在运行的mongodb数据库(另一个实例),这是连接到我的app.js文件中的mongodb实例的命令
mongoose.connect('mongodb://****/myappdatabase');

****表示我的mongodb实例的外部IP。大约5分钟后,我在ssh浏览器上收到错误消息
Error: connect ETIMEDOUT ****:27017

但是谁有时间阅读所有这些权利?

我不是开发人员,我没有太多的编程经验(实际上接近于零)。我是一个业余爱好者。我读了斯蒂芬·克(Stephen G)撰写的有关C编程的书。 kochan大约在5个月或6个月前,从那时起,我一直在关注Internet上的教程,Java程序设计以及一些引用资料。我想创建一个网站。

我从 w3schools学习了一些html,css,javascript和jquery,并经历了一些有关创建基本 Node 服务器和服务某些html页面的教程,这实际上是我的应用程序所做的全部工作。这就是我要做的。

我使用了用于 Node 的express框架,并使用mongoose连接到本地运行的mongodb。 Socket.io用于一点点联网。我创建这个网站是为了娱乐,我真的很想托管它并与我的 friend 们分享,到目前为止,我做这件事真的很尴尬,因为我无法托管该网站而现在退出。顺便说一句,我完成的工作比我在这个问题上发布的要多得多。

现在,我将非常感谢您的帮助,甚至对我需要了解的内容提供一些指导,也许我应该阅读的书或应该变得更加熟悉网站托管的文档也将是很棒的。我将在2天之内悬赏这个问题,但是直到那时,如果有任何人经历了这个问题并且不想帮助自己而没有个人利益,那您就可以挽救我的生命。我已经走了大约四天了,没有运气。谢谢,让我知道您是否想了解我的应用程序。我的意思是说认真,这有多难,我正在做某件事(或所有事情)非常错误。

最佳答案

哇,伙计我曾考虑过举报此问题,但您似乎真的想学习编程并需要帮助。该网站的宗旨是教新手编码员的经验丰富的编码员。所以,我们开始。

首先,Linux是您的 friend 。学习吧。用它。我不使用Ubuntu,但您应该使用。请使用14.04,因为它是一种宽容的音乐,并且在您刚学习时就塞满了您需要的东西。

是时候解决您的问题了:

问题1:您正在使用gcloud preview产品。这些功能很棒,但对于初学者而言却不是,因为您不知道自己在做什么。只需将一个Ubuntu实例置于n1标准上并摇晃它即可。没有钟声。没有哨声。以与您自己教如何编程网站相同的热情来学习Ubuntu linux。

问题2:不要使用git。我每天都使用git,它很棒,但是您还有很长的路要走,git令人困惑。拿起您的工作区,对其进行tar/gzip处理,然后将整个shebang都切入云中即可。然后将其解压缩,即可在服务器上找到完整的代码。注意:切勿专业从事此工作。但是对于只是学习……小叮咬……小叮咬的人。

问题3:不要使用Bitnami预制图像。它使您失去了从头开始学习如何执行此操作的机会,这是非常宝贵的经验。这是您必须学习的两个命令:

apt-get update
apt-get install <insert thing you want to install>

就是这样。不是火箭科学,而是您将发现Linux上软件包管理的强大功能。

问题4:您对此考虑过多。实际上,请学习 apt-get。它可以带您到现在为止,您会骂自己不要早点使用它。 apt-get Node 。 apt-get mongo。并一锤定音。那是我的专业吗?一定不行。但是,当您将开发人员操作与编程结合在一起时,这一切都是关于婴儿的步骤,您需要执行这些步骤。

勘误表:您希望有人推荐一本书或网站或指南。您只需要在Ubuntu上就可以知道。它们被称为 man页面。它是手册的缩写。您可以在Amazon之外购买世界上所有的书籍,并观看无限的youtube页面。它不会与 man编码命令相提并论。你一定要相信我。

总结:只需创建一个Ubuntu实例。 targzip您的所有代码,然后 scp将其添加到您的实例。学习 apt-get,实际上,您已经设置好了。您将彻底破坏您的实例很多次。因此,只需删除它,重新创建它,然后继续重新开始即可。每次,您都会比以前更明智,更聪明。我一直在指导新手开发人员。您必须从小处着手,逐步提高自己的水平。最终,您将了解为什么要使用git。为什么要扩展。为什么LXC很棒。为什么GCE的托管实例和VM疯狂,为什么为部署编写脚本是最佳实践。但是首先,您必须了解如何构建实例并以任何可能的方式在此处获取代码。您将从那里成长。祝你好运,哥们。

关于node.js - 如何将Node.js应用程序部署到Google Cloud?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32810514/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com