Dav*_* W. 5 google-app-engine continuous-integration vpc google-cloud-platform google-cloud-build
我在将带有 Cloud Build 和 VPC 连接器的 App Engine 应用程序部署到我的 MongodDB Atlas 数据库时遇到问题。
当我使用 gcloud 部署它时,它与以下命令完美配合:gcloud beta app deploy
但我希望通过 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
Run Code Online (Sandbox Code Playgroud)
我的 app.yaml 文件:
runtime: nodejs10
service: nodeapi
vpc_access_connector:
name: "projects/visifingc/locations/europe-west1/connectors/app-engine"
network:
name: default
Run Code Online (Sandbox Code Playgroud)
和 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"]
Run Code Online (Sandbox Code Playgroud)
当我在 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: {}
Run Code Online (Sandbox Code Playgroud)
如您所见,网络出现问题,因为它是空的。
你能帮我找到解决办法吗?我认为这可能是权限问题,因此我尝试授予所有帐户对 VPC 的访问权限,但 id 没有帮助。大多数情况下,我遵循此处描述的 VPC 网络的定义设置:https : //cloud.google.com/appengine/docs/standard/nodejs/connecting-vpc
小智 9
我遇到了同样的问题,结果证明这毕竟是一个权限问题。对我们来说,修复是授予 CI/CD 进程“计算网络管理员”权限。
小智 1
我之前就遇到过这个问题,并为此苦苦挣扎了一段时间。解决了从“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"]
Run Code Online (Sandbox Code Playgroud)
后:
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"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
798 次 |
| 最近记录: |