我只是想了解一下google cloud,以便开始获得证书。我已经从谷歌的官方github repo下载了示例python应用程序,这是一个:link我刚刚更改了app.yml,如下所示:
runtime: python27
api_version: 1
threadsafe: yes
service: practica
handlers:
- url: /
script: main.app
libraries:
- name: MySQLdb
version: "latest"
# [START gae_python_mysql_env]
env_variables:
CLOUDSQL_CONNECTION_NAME: practica-final-297818:europe-west3:practica-sql
CLOUDSQL_USER: root
CLOUDSQL_PASSWORD: 123456
# [END gae_python_mysql_env]
但在尝试访问应用程序时,我收到一个错误消息:“错误:服务器错误服务器遇到错误,无法完成您的请求。请在30秒后重试。”
我已经检查了应用程序的日志,我得到了这个日志,但老实说,我没有从中得到任何东西(可能是因为我是GCP或任何其他云的新手……)
ispatch()
File "/base/alloc/tmpfs/dynamic_runtimes/python27g/dd89b7af809b5e76/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 547, in dispatch
return self.handle_exception(e, self.app.debug)
File "/base/alloc/tmpfs/dynamic_runtimes/python27g/dd89b7af809b5e76/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch
return method(*args, **kwargs)
File "/base/data/home/apps/h~practica-final-297818/practica:version-1-0-0.431541023169113748/main.py", line 66, in get
db = connect_to_cloudsql()
File "/base/data/home/apps/h~practica-final-297818/practica:version-1-0-0.431541023169113748/main.py", line 46, in connect_to_cloudsql
passwd=CLOUDSQL_PASSWORD)
File "/base/alloc/tmpfs/dynamic_runtimes/python27g/dd89b7af809b5e76/python27/python27_lib/versions/third_party/MySQLdb-1.2.5/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/base/alloc/tmpfs/dynamic_runtimes/python27g/dd89b7af809b5e76/python27/python27_lib/versions/third_party/MySQLdb-1.2.5/MySQLdb/connections.py", line 193, in __init__
super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (2062, 'Cloud SQL socket open failed with error: No such file or directory')
这就是云SQL的配置
settings:
activationPolicy: ALWAYS
availabilityType: REGIONAL
backupConfiguration:
backupRetentionSettings:
retainedBackups: 7
retentionUnit: COUNT
binaryLogEnabled: true
enabled: true
kind: sql#backupConfiguration
location: eu
startTime: 11:00
transactionLogRetentionDays: 7
dataDiskSizeGb: '100'
dataDiskType: PD_SSD
ipConfiguration:
authorizedNetworks:
- kind: sql#aclEntry
name: practica
value: 111.111.111.111
ipv4Enabled: true
kind: sql#settings
locationPreference:
kind: sql#locationPreference
zone: europe-west3-b
maintenanceWindow:
day: 0
hour: 0
kind: sql#maintenanceWindow
pricingPlan: PER_USE
settingsVersion: '25'
storageAutoResize: true
storageAutoResizeLimit: '0'
tier: db-f1-micro
state: RUNNABLE
发布于 2020-12-15 05:26:55
对于此问题,问题是App Engine服务帐户没有附加云SQL角色。
解决方案是使用Google Cloud Console并添加一个Cloud SQL角色:
https://stackoverflow.com/questions/65297444
复制相似问题