0

我对谷歌云平台比较陌生,我能够创建应用服务和管理数据库。我正在尝试在 Google Cloud Tasks 中创建一个处理程序(类似于本文档中的 NodeJS 示例。

但是,文档未能清楚地说明如何将部署的服务与请求的内容连接起来。必要性要求我的项目中有多个服务(一个在 Node 中用于管理休息,另一个在 Python 中用于将地理空间数据作为异步任务进行管理)。

我的问题:运行多个服务时,Google Cloud Tasks 如何知道将任务导向哪个服务?

下面的屏幕截图证明我能够向队列请求任务。

在队列中运行的示例任务

4

2 回答 2

5

为您的任务使用 App Engine 路由时,它会将其路由到“默认”服务。但是,您可以通过定义AppEngineRouting、选择您的服务、实例和版本、AppEngineHttpRequest字段来覆盖它。

示例显示了一个路由到默认服务/log_payload端点的任务。

const task = {
  appEngineHttpRequest: {
    httpMethod: 'POST',
    relativeUri: '/log_payload',
  },
};

您可以将其更新为:

const task = {
  appEngineHttpRequest: {
    httpMethod: 'POST',
    relativeUri: '/log_payload',
    appEngineRouting: {
      service: 'non-default-service'
    }
  },
};

了解有关配置路由的更多信息。

于 2019-09-27T18:00:53.370 回答
0

我想知道您在谈论哪些“服务”,因为它始终是当前服务。这些 HTTP 请求基本上是由 HTTP 标头HTTP_X_APPENGINE_QUEUENAMEHTTP_X_APPENGINE_TASKNAME... 分派的,就像您在屏幕截图中使用sample-tasks和一样some random numbers。如果您想为其他服务分配任务,这些服务必须有自己的任务队列。

于 2019-09-27T00:28:58.083 回答