【问题标题】:Google AppEngine Node.js: Deploying API and WepAppGoogle App Engine Node.js:部署 API 和 Web 应用程序
【发布时间】:2017-03-31 10:39:54
【问题描述】:

我是 GoogleCloud 的新手。 我已经按照教程(针对 Node.js)进行了以下步骤:

  1. 构建我自己的 My-Hello-World 网络应用
  2. 部署到 AppEngine
  3. 作为 https://My-Hello-World.appspot.com

  4. 可以正常工作
  5. 构建我自己的 EndPoints API,项目 ID 为 My-Hello-World

  6. 部署到 AppEngine
  7. 它也可以作为 https://My-Hello-World.appspot.com/api/test/* 正常工作

我的问题是,在我部署 EndPoints API 的那一刻,我的 My-Hello-World.appspot.com 不再作为 webapp 运行,而是作为 API 响应。部署到 AppEngine 时如何配置让我的项目同时运行 webapp 和 api?

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

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

谢谢。

【问题讨论】:

    标签: node.js google-app-engine google-cloud-platform google-cloud-endpoints


    【解决方案1】:

    所以假设

    • 您的 Endpoints API 和 Webapp 位于同一个 GCP 项目中
    • 每个人都有自己的app.yaml

    您可以将它们部署到同一个项目的应用引擎,并让它们作为单独的服务一起运行。您需要做的就是在您的app.yaml 中添加一个服务标签

    service: api
    runtime: nodejs
    env: flex
    
    env_variables:
      NODE_ENV : staging
    

    这就是我部署到 staging 的 ExpressJS RestAPI 的样子。

    您可以保持网络应用的app.yaml 不变,因为它将被用作默认服务。

    然后你就可以访问了

    • Web 应用程序
      • https ==> my-hello-world.appspot.com
      • http ==> my-hello-world.appspot.com
    • API
      • https ==> api-dot-my-hello-world.appspot.com
      • http ==> api.my-hello-world.appspot.com

    参考

    【讨论】:

    • 将它们全部放入 1 个项目中,部署即可。但我想做的是将我的 webapp 和我的端点分别部署到 GAE,所以以后,如果我修改我的 API 并重新部署,它不会影响正在运行的 webapp
    • 您可以将多个彼此完全独立的服务部署到同一个项目中。当您在 app.yaml 中设置服务名称时,它们将作为单独的微服务进行管理。因此,您可以更新您的 API,而您的 Web 应用程序将保持不变。
    • app.yaml 中的“service_name”确实有效,但我必须设置不同的名称!谢谢你的帮助:)
    猜你喜欢
    • 2019-04-22
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 2014-07-27
    相关资源
    最近更新 更多