1

我是GoogleCloud的新手。 我跟着教程(对Node.js的)这些步骤:Google AppEngine Node.js:部署API和WepApp

  1. 建立自己的我 - 你好 - 世界 Web应用程序
  2. 部署到AppEngine上
  3. 它工作正常,为https://My-Hello-World.appspot.com

  4. 建立自己的端点与项目-ID的API为我 - 你好 - 世界

  5. 部署到AppEngine上
  6. 它也可以细如https://My-Hello-World.appspot.com/api/test/ *

我的问题是我部署端点的API的那一刻,我的My-Hello-World.appspot.com不运行作为Web应用程序,它作为API响应。部署到AppEngine时如何配置以使我的项目同时运行于webapp和api?

https://My-Hello-World.appspot.com - >运行为webapp的

https://My-Hello-World.appspot.com/api/test/ * - >运行的API

谢谢。

回答

1

所以假设

  • 您的终端API和的webapp在同一个GCP项目
  • 每个人都有自己app.yaml

您可以将它们部署到同一项目的App Engine和有他们作为单独的服务一起运行。所有你需要做的是在添加服务标签您app.yaml

service: api 
runtime: nodejs 
env: flex 

env_variables: 
    NODE_ENV : staging 

这就是我的样子了ExpressJS RESTAPI我部署到分期。

您可以保持web应用程序的app.yaml相同,因为它将用作默认的服务。

然后,你将能够访问

  • 的webapp
    • HTTPS ==> my-hello-world.appspot.com
    • HTTP ==>我的问候,world.appspot .COM
  • API
    • HTTPS ==> API -dot-my-hello-world.appspot.com
    • http ==> api.my -hello-world.appspot。COM

参考

+0

把他们都变成1个项目和部署确实工作。但我试图做的是将我的webapp和我的端点分别部署到GAE,所以稍后如果我修改我的API并重新部署,它将不会影响正在运行的webapp –

+0

您可以完全独立于彼此部署多个服务到同一个项目。当您在app.yaml中设置服务名称时,它们将作为单独的微服务进行管理。所以你可以更新你的API并且你的Webapp将保持不变。 –

+0

app.yaml中的“service_name”确实有效,但我必须设置不同的名称!感谢您的帮助 :) –