首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署Google的deploying时出错[nginx示例]

部署Google的deploying时出错[nginx示例]
EN

Stack Overflow用户
提问于 2022-03-03 15:12:21
回答 2查看 199关注 0票数 1

我正试图通过App的灵活env来实现部署Google的nginx hello world示例。我使用的设置与快速启动指南中详细介绍的相同,但添加到app.yaml中的网络设置除外(以下文件内容):

代码语言:javascript
复制
runtime: custom
env: flex
network:
  name: my_network
  subnetwork_name: my_subnet

对于复制,我的确切过程是(从GCP云shell中):

  1. 克隆谷歌的回购示例
  2. cd进入nginx目录,
  3. 更新app.yaml以反映正确的网络设置(见上文),
  4. 运行gcloud app deploy .gcloud beta app deploy .

结果是一个错误13:

代码语言:javascript
复制
53db376e88c7: Layer already exists
3baebd9b50ad: Layer already exists
1401df2b50d5: Layer already exists
57a9a0cdd450: Layer already exists
latest: digest: sha256:96324cd5dd0571fa98e461ecfc844cefc74c1bad7d621273f11f94e7676cde86 size: 2605
DONE
----------------------------------------------------------------------------------------------------
Updating service [default] (this may take several minutes)...failed.                                                                                                       
ERROR: (gcloud.app.deploy) Error Response: [13] An internal error occurred.

我尝试使用不同的健康检查选项进行部署,但收到以下信息:

代码语言:javascript
复制
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: Legacy health checks are no longer supported for the App Engine Flexible environment. Please remove the 'health_check' section from your app.yaml and configure updated health checks. For instructions on migrating to split health checks see https://cloud.google.com/appengine/docs/flexible/java/migrating-to-split-health-checks

我想这样做的建议已经过时了。

该应用程序本身运行良好,从一个码头容器。欢迎提出任何建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-04 09:24:29

谷歌支持公司提供了一个对我有用的解决方案。然而,错误13是相对普遍的,所以YMMV。在您的部署环境中,运行以下命令:

  1. gcloud config set interactive/hidden true
  2. gcloud app update --service-account=PROJECT_DEFAULT_APP_ENGINE_SA
  3. gcloud app deploy

1 公开隐藏的命令/标志和2设置应用程序的主动服务帐户。

,一个项目的默认应用程序引擎SA,是非常宽容的,所以它可能值得将App隔离到它自己的项目中,以最小化风险。

票数 1
EN

Stack Overflow用户

发布于 2022-03-11 00:43:35

我还尝试复制您提到的相同场景,但没有向我抛出错误。当将网络添加到您的app.yaml时,您必须确保使用网络的短名称,这就是这里

app.yaml中的网络设置应该如下所示:

代码语言:javascript
复制
network:
  instance_tag: TAG_NAME
  name: NETWORK_NAME
  subnetwork_name: SUBNETWORK_NAME
  session_affinity: true
  forwarded_ports:
    - PORT
    - HOST_PORT:CONTAINER_PORT
    - PORT/tcp
    - HOST_PORT:CONTAINER_PORT/udp

name的位置:

柔性环境中的每个VM实例在创建时都会分配给网络。使用此设置可指定网络名称。给出短名称,而不是资源路径(例如,默认名称而不是https://www.googleapis.com/compute/v1/projects/my-project/global/networks/default)。如果不指定网络名称,则将实例分配给项目的默认网络(该网络具有默认名称)。如果要指定子网络名称,则必须指定网络名称。

对于subnetwork_name

可选。您可以分割您的网络并使用自定义子网。确保指定了网络名称。给出短名称,而不是资源路径(例如,默认的,而不是https://www.googleapis.com/compute/v1/projects/my-project/global/networks/default/subnetworks/default),.The子网络必须与应用程序位于同一区域。

如果您正在为您的项目使用VPC共享网络,这将帮助您完成它,您所需要做的就是一步一步地遵循给定这里的步骤。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71339443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档