将不同的语言服务部署到同一应用程序[Google App Engine]

将不同的语言服务部署到同一应用程序[Google App Engine],第1张

将不同的语言服务部署到同一应用程序[Google App Engine]

appspot.com
由于url路由规则,结果应用程序的命名与您提到的命名略有不同。从通过URL路由:

将请求发送到命名服务默认版本的可用实例:

https://service-dot-app-id.appspot.comhttp://service.my-custom-domain.com

因此,假设您的服务已命名

python
java
而您的应用程序已命名,
app
则您的
appspot.com
URL为:

python-dot-app.appspot.comjava-dot-app.appspot.com

但是您可以根据需要使用自定义域将它们映射。

至于构建这样的应用程序:

  • 请记住,其中一项服务 需要 我命名

    default
    (或保持未命名)

  • 为每个服务创建应用子目录(以下是在文档中不再找到但在Google App Engine应用程序中的默认服务/模块可以作为非同类产品的同级产品中找到的曾经被推荐的多服务应用程序结构图)默认的文件夹结构之一?)

  • 将每个服务代码的全部内容复制到相应的子目录中

  • 识别应用程序级配置文件(

    cron.yaml
    dispatch.yaml
    queue.yaml
    index.yaml
    在应用级目录或它们的Java等价物),你必须和移动它们的上一级,(你可能需要合并他们,如果这样的配置文件存在于两个服务)。您可能需要为这些文件选择一种语言,我会选择python。Cron作业需要配置目标(请参阅Cron作业定义中的
    target
    行)。

请记住,部署一个/所有模块 可能 不一定像您习惯的那样更新这些文件,而是可能需要显式部署它们-
请查看相应的服务配置文档。在部署服务时,您应格外注意可能会覆盖这些配置,您可能需要提出特定的部署顺序。

  • 添加
    dispatch.yaml
    文件并重新访问/调整服务的请求路径名称空间,以确保将每个请求正确地定向到各自的服务,可能是一个好主意(可能是强制性的)。cron作业特别注意,从Cron作业定义的
    target
    行开始:

如果使用调度文件,则可能会重新路由您的作业。例如,给定以下
cron.yaml*dispatch.yaml 文件,即使作业的目标是 module1 ,该作业也将在
module2中 运行:
*

# cron.yamlcron:- description: "test dispatch vs target"  url: /tasks/hello_module2  schedule: every 1 mins  target: module1# dispatch.yaml:dispatch:- url: '*/tasks/hello_module2'  module: module2

https://cloud.google.com/appengine/docs/python/config/cronref#cron_job_definitions



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5490708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存