我正试图通过App的灵活env来实现部署Google的nginx hello world示例。我使用的设置与快速启动指南中详细介绍的相同,但添加到app.yaml中的网络设置除外(以下文件内容):
runtime: custom
env: flex
network:
name: my_network
subnetwork_name: my_subnet对于复制,我的确切过程是(从GCP云shell中):
cd进入nginx目录,app.yaml以反映正确的网络设置(见上文),gcloud app deploy .或gcloud beta app deploy .。结果是一个错误13:
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.我尝试使用不同的健康检查选项进行部署,但收到以下信息:
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我想这样做的建议已经过时了。
该应用程序本身运行良好,从一个码头容器。欢迎提出任何建议。
发布于 2022-04-04 09:24:29
谷歌支持公司提供了一个对我有用的解决方案。然而,错误13是相对普遍的,所以YMMV。在您的部署环境中,运行以下命令:
gcloud config set interactive/hidden truegcloud app update --service-account=PROJECT_DEFAULT_APP_ENGINE_SAgcloud app deploy1 公开隐藏的命令/标志和2设置应用程序的主动服务帐户。
,,一个项目的默认应用程序引擎SA,是非常宽容的,所以它可能值得将App隔离到它自己的项目中,以最小化风险。
发布于 2022-03-11 00:43:35
我还尝试复制您提到的相同场景,但没有向我抛出错误。当将网络添加到您的app.yaml时,您必须确保使用网络的短名称,这就是这里。
app.yaml中的网络设置应该如下所示:
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/udpname的位置:
柔性环境中的每个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共享网络,这将帮助您完成它,您所需要做的就是一步一步地遵循给定这里的步骤。
https://stackoverflow.com/questions/71339443
复制相似问题