部署Cloud SQL Proxy作为Cloud Run边车时的参数配置问题
问题分析与修正方案
你的配置存在三个关键问题:
- args参数未拆分:将Cloud SQL Proxy的所有参数打包成单个字符串,gcloud会把整个字符串当作一个参数传递,导致Proxy无法解析。
- 容器名称拼写错误:
clousql-proxy应为cloudsql-proxy。 - 冗余参数:实例字符串
shop:europe-west1:shophost-db=tcp:0.0.0.0:5432已经指定了监听端口,无需额外添加--port=5432。
修正后的完整配置
- name: 'gcr.io/cloud-builders/gcloud' args: [ 'beta', 'run', 'deploy', "${_SERVICE_NAME}", '--region', 'europe-west1', '--platform', 'managed', '--allow-unauthenticated', '--execution-environment', 'gen1', '--container', 'nginx', '--image', "${_IMAGE_NAME}-nginx", '--port', '8080', '--memory', '128Mi', '--container', 'cloudsql-proxy', '--image', "gcr.io/cloudsql-docker/gce-proxy:latest", '--memory', '128Mi', '--args', '--instances=shop:europe-west1:shophost-db=tcp:0.0.0.0:5432' ]
关键说明
- 边车容器的
--args后,每个命令参数必须作为单独的元素放在gcloud的args数组中,不能合并成一个字符串。 - Cloud SQL Proxy的核心参数仅需
--instances指定实例地址和监听端口格式,格式为PROJECT_ID:REGION:INSTANCE_NAME=tcp:0.0.0.0:PORT,其中0.0.0.0允许容器内其他服务访问Proxy。
内容的提问来源于stack exchange,提问作者Pentium10
相关产品推荐
相关产品推荐

