Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c311bc3

Browse filesBrowse files
authored
Update functions/sql example to use more clear connection logic. (GoogleCloudPlatform#2486)
1 parent 5e0d4cf commit c311bc3
Copy full SHA for c311bc3

File tree

Expand file treeCollapse file tree

1 file changed

+11
-7
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+11
-7
lines changed

‎functions/sql/mysql_sample.py

Copy file name to clipboardExpand all lines: functions/sql/mysql_sample.py
+11-7Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@
1616
from os import getenv
1717

1818
import pymysql
19-
from pymysql.err import OperationalError
2019

2120
# TODO(developer): specify SQL connection details
2221
CONNECTION_NAME = getenv('MYSQL_INSTANCE', '<YOUR INSTANCE CONNECTION NAME>')
2322
DB_USER = getenv('MYSQL_USER', '<YOUR DB USER>')
2423
DB_PASSWORD = getenv('MYSQL_PASSWORD', '<YOUR DB PASSWORD>')
2524
DB_NAME = getenv('MYSQL_DATABASE', '<YOUR DB NAME>')
2625

26+
# set to true to test locally using Cloud SQL proxy listening on a TCP port
27+
DEBUG = False
28+
2729
mysql_config = {
2830
'user': DB_USER,
2931
'password': DB_PASSWORD,
@@ -56,12 +58,14 @@ def mysql_demo(request):
5658
# GCF instance. Doing so minimizes the number of active SQL connections,
5759
# which helps keep your GCF instances under SQL connection limits.
5860
if not mysql_conn:
59-
try:
60-
mysql_conn = pymysql.connect(**mysql_config)
61-
except OperationalError:
62-
# If production settings fail, use local development ones
63-
mysql_config['unix_socket'] = f'/cloudsql/{CONNECTION_NAME}'
64-
mysql_conn = pymysql.connect(**mysql_config)
61+
if DEBUG:
62+
# try to connect using localling running Cloud SQL proxy
63+
# (local development only)
64+
mysql_conn = pymysql.connect(
65+
**mysql_config, host='127.0.0.1', port=3306)
66+
else:
67+
mysql_conn = pymysql.connect(
68+
**mysql_config, unix_socket=f'/cloudsql/{CONNECTION_NAME}')
6569

6670
# Remember to close SQL resources declared while running this function.
6771
# Keep any declared in global scope (e.g. mysql_conn) for later reuse.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.