使用Cloud Build和VPC连接器将Node app自动部署到App Engine

问题描述 投票:0回答:1

我在将具有Cloud Build和VPC连接器的App Engine应用程序部署到我的MongodDB Atlas数据库时遇到问题。

[当我使用gcloud部署它时,它可以与以下命令完美配合:gcloud beta应用部署]

但是我希望通过Cloud Build实施CI(持续集成)。在云构建期间,出现以下错误:

Step #3: #============================================================#
Step #3: #= Uploading 2 files to Google Cloud Storage                =#
Step #3: #============================================================#
Step #3: File upload done.
Step #3: Updating service [nodeapi]...
Step #3: .......................................................................................................................................................................................failed.
Step #3: ERROR: (gcloud.beta.app.deploy) Error Response: [7] Error attaching GCE network to app.
Step #3: 
Step #3: Details: [
Step #3:   [
Step #3:     {
Step #3:       "@type": "type.googleapis.com/google.rpc.ResourceInfo",
Step #3:       "resourceName": "projects/visifingc/global/networks/default",
Step #3:       "resourceType": "Network"
Step #3:     }
Step #3:   ]
Step #3: ]
Step #3: 
Finished Step #3
ERROR
ERROR: build step 3 "gcr.io/cloud-builders/gcloud" failed: exit status 1

我的app.yaml文件:

runtime: nodejs10
service: nodeapi
vpc_access_connector:
  name: "projects/visifingc/locations/europe-west1/connectors/app-engine"

network:
  name: default

和cloudbuild.yaml:

steps:
  - name: node:10.15.1
    entrypoint: npm
    args: ["install"]
  - name: node:10.15.1
    entrypoint: npm
    args: ["run", "build"]
  - name: "gcr.io/cloud-builders/gcloud"
    args: ["beta","app","deploy"]

[当我在App Engine中查看已部署的实例的配置时(但由于存在错误,因此未真正部署)可以看到以下App Engine实例配置:

runtime: nodejs10
env: standard
instance_class: F1
handlers:
  - url: .*
    script: auto
automatic_scaling:
  min_idle_instances: automatic
  max_idle_instances: automatic
  min_pending_latency: automatic
  max_pending_latency: automatic
network: {}

如您所见,网络出了问题,因为它是空的。

您能帮我找到解决方案吗?我认为这可能是一个权限问题,因此我尝试授予所有帐户对VPC的访问权限,但id并没有帮助。通常,我遵循的是VPC网络的定义设置,在此进行描述:https://cloud.google.com/appengine/docs/standard/nodejs/connecting-vpc

google-app-engine google-cloud-platform continuous-integration vpc google-cloud-build
1个回答
0
投票

我早些时候遇到这个问题,并为此苦了一段时间。解决了将其从“ gcloud beta应用程序部署”更改为“ gcloud应用程序部署”的问题。不知道为什么beta版无法正常运行(尤其是从CLI正常运行时)。

我知道这不是令人满意的答案,但希望它能使您走上正确的轨道!

之前:

steps:
  - name: "gcr.io/google-containers/busybox"
    args: ["sed", "-i", "s/PROJECT_ID/${PROJECT_ID}/g", "app.yaml"]
  - name: "gcr.io/cloud-builders/gcloud"
    args: ["beta", "app", "deploy"]

之后:

steps:
  - name: "gcr.io/google-containers/busybox"
    args: ["sed", "-i", "s/PROJECT_ID/${PROJECT_ID}/g", "app.yaml"]
  - name: "gcr.io/cloud-builders/gcloud"
    args: ["app", "deploy"]
© www.soinside.com 2019 - 2024. All rights reserved.