如何从WebIDE Full Stack将node.js应用程序构建到Cloud Foundry?

2020-09-12 12:35发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的社区,

当我在WebIDE Full-Stack中构建HDB模块时,由于我已经在工作区中配置了CF设置,因此可以成功地在Cloud Foundry上构建它。

但是在尝试构建或运行node.js应用程序时并不相同。 它以SCP Neo为目标,并在Neo中创建了一个实例。 当我尝试直接运行它时,它也会保持暂停状态,并且没有响应。

是否可以像SAP HDB模块一样运行通过SAP CF在WebIDE Full-stack中开发的node.js模块?

谢谢

Ceyhun

(32.5 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的社区,

当我在WebIDE Full-Stack中构建HDB模块时,由于我已经在工作区中配置了CF设置,因此可以成功地在Cloud Foundry上构建它。

但是在尝试构建或运行node.js应用程序时并不相同。 它以SCP Neo为目标,并在Neo中创建了一个实例。 当我尝试直接运行它时,它也会保持暂停状态,并且没有响应。

是否可以像SAP HDB模块一样运行通过SAP CF在WebIDE Full-stack中开发的node.js模块?

谢谢

Ceyhun

(32.5 kB)
付费偷看设置
发送
6条回答
SAP小黑
1楼 · 2020-09-12 13:10.采纳回答

嗨,Ceyhun,

只是为了澄清有关WebIDE为您创建的临时应用程序实例的另一件事。 它是经过创建的,因此单个开发人员可以独立于同一组织/空间中的其他开发人员在WebIDE上测试其工作。 通过WebIDE停止应用程序后,它将从组织/空间中删除实例。

无论何时构建整个MTA项目,它都会生成一个mtar文件,您可以将其部署到组织/空间。 此处的区别在于,此mtar文件将在一次运行中部署所有模块。 从这种意义上讲,如果您选择除了运行NodeJS模块之外还部署mtar文件,则最终可能会使用同一软件的两个实例,这些实例占用宝贵的资源,例如路由和内存。

除此之外,mtar文件可能会代表成为生产软件的候选人。 而且,如果您拥有使用持续集成软件的开发人员/运营人员,则可以提取mtar文件,以通过CF CLI自动将其部署在另一个组织/空间(可能是测试空间)上,然后再通过一个生产性的组织/空间进行部署。 您还可以研究此类用例的蓝/绿部署。

关于IDE,我认为没有正确的方法,甚至没有最佳实践。 有些人会说必须使用Eclipse或IntelliJ IDEA来进行认真的本机云开发,而另一些人可能会说VS-Code是必经之路,而且像您这样的人可能更喜欢Web工具。 我坚信所有工具在某些特定领域都是有价值的资产,而其他工具在某些方面却更胜一筹。

对于WebIDE,我可以说的是,您应该使用Git和CI/CD工具进行大量工作。 为此,您可以阅读以下与我们有关的文档 彻底

最好的问候,
伊万

me_for_i
2楼-- · 2020-09-12 13:02

伊万,嗨,

非常感谢您的贡献。 如您所说,我在Cloud Foundry实例中看到具有应用程序名称的唯一标识符。 我了解Cloud Foundry如何提供独立的开发环境。

因此,正如我所见,测试还部署了具有唯一名称的应用程序实例。 但是从技术上讲,它也是一个应用程序,就像我们部署原始应用程序一样。 我们可以这样说吗?

谢谢

Ceyhun

浮生未央
3楼-- · 2020-09-12 13:07

嗨Ceyhun,

我认为您在这里使事情感到困惑。 Neo不运行NodeJS应用程序-它没有该类型的运行时容器作为选项。

但是,在某些情况下,运行命令会提示您使用Neo环境中的用户凭据。 更具体地说,当您尝试运行使用目标的html5应用程序时。 您必须输入neo凭据,以便WebIDE可以在Neo中创建必要的目的地-仅仅是因为Web测试功能使用了neo的目的地(而不是CF的目的地)。 暂时还是如此,因为CF目的地是一项相当新的功能,它比WebIDE Full-Stack晚得多。 随着时间的流逝,我相信WebIDE将开始使用CF的目的地而不是Neo的目的地-让我们拭目以待吧。

要检查NodeJS应用程序是否已在CF上部署,请发出以下CLI命令或打开您的空间下的座舱以在"应用程序"菜单下进行检查:

 cf apps 

您必须登录CF实例,并使目标与组织/空间相同。

请记住,在测试时,NodeJS模块将以动态名称进行部署, 由唯一标识符加上应用程序名称组成。 因此,仅在将应用程序部署到CF之后才可以在应用程序列表中看到每个应用程序模块(微服务)的纯全名,而不是在测试时。

许多开发人员可以使用Git存储库中的源代码控制,同时在同一模块上工作,并使用相同的org/space。 因此,CF需要允许他们独立测试每个人的版本。

最好的问候,
伊万

绿领巾童鞋
4楼-- · 2020-09-12 13:10

嗨马里乌斯,

谢谢。

因此,您的意思是NodeJS的" build"和" run"行为不同? 实际上,我期望的"运行"执行相同的构建过程,而且它只是运行它。 对于HDB模块,我们只需构建它,然后它就可以在DB中进行更改。

此致

Ceyhun

打个大熊猫
5楼-- · 2020-09-12 12:53

嗨Ceyhun,

您能详细解释一下您的问题吗?

您将始终在CF中运行节点模块(Neo无法运行节点模块)。 当您单击"运行"时,SAP Web IDE将"部署您的工作区",并能够在您进行更改并再次单击"运行"后更新代码库。

单击"构建"将启动

关于此,

Marius

clever101
6楼-- · 2020-09-12 13:08

Hi Ceyhun,

您是对的,Web IDE是Neo环境中提供的一项服务。 但是,归根结底,这并没有什么不同,您可以将其视为一个独立的基于Web的IDE,能够将您的应用程序部署到CF和Neo。

我们的团队发布了一个 新版本的构建器(非常棒!),因此,您可能使用了在某些极端情况下不起作用的版本。

无论如何,很高兴您能够解决该问题。 祝您在Web IDE上开发愉快!

感谢您的回复。 让我尝试澄清这个问题。

实际上,我对Neo不运行NodeJS应用程序感到满意。 我正在尝试寻找运行和构建由Neo服务WebIDE Full-Stack开发的应用程序/微服务的方法。 但是我想在Cloud Foundry目的地而不是Neo中运行它们,因为NodeJS仅在Cloud Foundry上工作。

我同时拥有Neo和CF帐户。 但是首先,我使用Neo进行开发,因为WebIDE Full-stack仅包含在Neo中,CF不提供任何IDE作为服务。 目前是对的,对吧? 我也不喜欢使用桌面IDE,原因是WebIDE自动为每个模块创建文件夹结构并使开发变得容易。 我认为手动创建所有文件夹和文件结构真的很困难。 顺便说一句,如果您有最佳实践来使用哪种开发工具以及如何构建和部署,我欢迎任何建议。

我正在开发著名的tinyworld应用程序。 我创建了一个MTA项目,然后将HDB和Node.js模块都添加到该项目中。 工作区上的CF配置也已完成。

那天我问了这个问题,尽管我单击了"运行>以Node.js应用程序运行",但它试图在Neo目标位置运行它。 我能够在Neo应用程序中看到该应用程序实例。

但是令人惊讶的是,今天,在再次尝试之前,它通知我说建造者已经过时了。 我更新了构建器,再次创建了node.js模块。 右键单击tinyjs文件夹,"运行>以Node.js应用程序运行",现在它可以在CF目标上运行! 这就是我想要看到的:)

最后,我认为这是一个制造商的问题,因为事情发展的速度非常快。 但是,我愿意接受任何建议。

希望这次我更清楚!

谢谢

Ceyhun

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答