使用两种环境的Google云平台php应用程序部署(标准和灵活)
通过分别为标准和灵活的环境配置app.yaml,我能够在谷歌云中部署php应用程序 标准环境的“app.yaml:使用两种环境的Google云平台php应用程序部署(标准和灵活),php,google-app-engine,google-cloud-platform,yaml,app-engine-flexible,Php,Google App Engine,Google Cloud Platform,Yaml,App Engine Flexible,通过分别为标准和灵活的环境配置app.yaml,我能够在谷歌云中部署php应用程序 标准环境的“app.yaml: runtime: php55 api_version: 1 threadsafe: true handlers: - url: /.* script: helloworld.php - url: /fileUpload.php script: fileUpload.php runtime: php55 env: flex # flexible e
runtime: php55
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: helloworld.php
- url: /fileUpload.php
script: fileUpload.php
runtime: php55
env: flex # flexible env
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: helloworld.php
- url: /fileUpload.php
script: fileUpload.php
dispatch:
- url: "*/fileupload/*"
service: flex-module
- url: "/.*"
service: default
'app.yaml'用于灵活的环境:
runtime: php55
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: helloworld.php
- url: /fileUpload.php
script: fileUpload.php
runtime: php55
env: flex # flexible env
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: helloworld.php
- url: /fileUpload.php
script: fileUpload.php
dispatch:
- url: "*/fileupload/*"
service: flex-module
- url: "/.*"
service: default
现在我想在单个应用程序中同时使用这两种环境。1.helloworld.php URL的标准环境
2.灵活的fileUpload.php URL环境 因此,请向我推荐此应用程序的结构
提前感谢 我尝试了以下结构,但不起作用。
|-dispatch.yaml
|-standard
|-app.yaml
|-helloworld.php
|-flexible
|-app.yaml
|-fileUpload.php
如何在单个应用程序中同时利用标准和灵活的环境 示例:
域名:example.com
是否有可能处理上述两种情况?是的,有可能:您将有一个GAE应用程序(即一个GCP项目),包含两个服务、一个标准和一个flex。你基本上是从这个方向开始的,但你错过了一些东西 运行时不正确,您缺少(非默认)
flex模块的服务命名
app.yaml
。发件人:
运行时:php
此设置是必需的。它是应用程序引擎语言的名称
此应用程序使用的运行时。要指定PHP,请使用PHP。其他
运行时可用;有关详细信息,请参阅每种语言的文档
更多信息
服务:服务名称
如果创建服务,则为必需。对于默认服务是可选的。每个
服务和每个版本必须有一个名称。名称可以包含数字,
字母和连字符。长度不能超过63个字符,并且
不能以连字符开头或结尾。为每个项目选择一个唯一的名称
服务和每个版本。不要在服务和服务之间重用名称
版本
你也可以把它们放在这个文件中——它们现在被忽略了,只是以防万一以后的检查会变得更严格)。也许你可以偷看一下
您也应该检查该部分,它似乎是强制性的,但我不是PHP用户,我不知道在这里建议什么:
您必须在runtime\u config
部分中配置document\u root
,
比如上面的例子
您需要小心处理dispatch.yaml
内容。flex服务的模式与您为该服务选择的URL不匹配,它需要匹配。您还可以在末尾删除默认服务模式-任何与指定路由模式不匹配的内容都会转到默认服务
dispatch:
- url: "*/fileUpload.php"
service: flex-module
注意:我总是在dispatch.yaml
中使用一个目录模式,即-url:“*/some_dir/*”
-绝不仅仅是一个特定的文件,我不是100%肯定上面的方法会起作用,如果不起作用,可能需要一些调整
在默认服务的app.yaml
中,您可以删除上传的处理程序-这将由flex模块处理。只是化妆而已
在部署时也要小心-您有3个可部署项:2个服务(通过部署相应的app.yaml
文件进行部署)和必须专门部署的dispatch.yaml
文件。3个.yaml
文件的任意组合都可以包含在一个部署命令中(但这只是为了方便起见,实际上每个文件都是单独部署的):
谷歌云上的环境是基于每个应用的。如果要在不同的环境中部署,它们必须是独立的应用程序,或者至少是不同微服务上的相同副本。没有针对两种不同环境的单一部署
这适用于stantard环境,但概念相同
每个模块或微型设备本身就是一个应用程序。因为除了数据库等共享资源外,它还管理自己的资源。感谢@Mangu的回复,它只是一个应用程序,而不是两个子应用程序。示例:域:Example.com 1。如果我们访问url“example.com/”或“example.com/helloworld.php”:那么它将使用标准环境。2.如果我们访问url“example.com/fileupload.php”:那么它将使用灵活的环境。有没有可能,处理上述两个条件?请看看这一个也很抱歉,但我不是一个PHP用户。