Автоматическое развертывание приложения Node в App Engine с помощью Cloud Build и разъема VPC - PullRequest
0 голосов
/ 02 ноября 2019

У меня проблема при развертывании приложения App Engine с Cloud Build и соединителем VPC в моей базе данных MongodDB Atlas.

Когда я развертываю его с помощью gcloud, он отлично работает с этой командой: развертывание бета-версии gcloud

Но я хочу, чтобы CI (непрерывная интеграция) была реализована с помощью Cloud Build. Во время сборки облака появляется следующая ошибка:

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

1 Ответ

0 голосов
/ 04 ноября 2019

У меня раньше была эта проблема, и я некоторое время боролся с ней. Было решено перейти от «развертывания бета-приложения gcloud» к простому «развертыванию приложения gcloud». Не знаю, почему бета-версия не работает (особенно если она работала из вашего 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"]
...