Skip to content

Commit

Permalink
chore: use Cloud SQL Proxy v2 in README
Browse files Browse the repository at this point in the history
Also, remove all reference to service account keys in favor of
Application Default Credentials.

Fixes #3634
Fixes #3635
  • Loading branch information
enocom committed Apr 15, 2024
1 parent a40945b commit dc477f3
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 50 deletions.
18 changes: 6 additions & 12 deletions cloud-sql/mysql/mysql/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,19 @@
[instructions](https://cloud.google.com/sql/docs/mysql/create-manage-databases).
Note the database name.

1. Create a service account following these
[instructions](https://cloud.google.com/iam/docs/creating-managing-service-accounts#creating),
and then grant the `roles/cloudsql.client` role following these
[instructions](https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role).
Download a JSON key to use to authenticate your connection.
1. Set up [Application Default Credentials][adc]

1. Use the information noted in the previous steps:

```bash
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account/key.json
export INSTANCE_CONNECTION_NAME='<MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>'
export DB_USER='my-db-user'
export DB_PASS='my-db-pass'
export DB_NAME='my_db'
```

[adc]: https://cloud.google.com/docs/authentication/provide-credentials-adc

Note: Defining credentials in environment variables is convenient, but not
secure. For a more secure solution, use [Secret
Manager](https://cloud.google.com/secret-manager/) to help keep secrets safe.
Expand Down Expand Up @@ -61,7 +58,6 @@ launch the proxy as shown below.
Use these terminal commands to initialize environment variables:

```bash
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account/key.json
export INSTANCE_HOST='127.0.0.1'
export DB_PORT='3306'
export DB_USER='<DB_USER_NAME>'
Expand All @@ -72,15 +68,14 @@ export DB_NAME='<DB_NAME>'
Then use this command to launch the proxy in the background:

```bash
./cloud_sql_proxy -instances=<project-id>:<region>:<instance-name>=tcp:3306 -credential_file=$GOOGLE_APPLICATION_CREDENTIALS &
./cloud-sql-proxy --port=3306 "$INSTANCE_CONNECTION_NAME" &
```

#### Windows/PowerShell

Use these PowerShell commands to initialize environment variables:

```powershell
$env:GOOGLE_APPLICATION_CREDENTIALS="<CREDENTIALS_JSON_FILE>"
$env:INSTANCE_HOST="127.0.0.1"
$env:DB_PORT="3306"
$env:DB_USER="<DB_USER_NAME>"
Expand All @@ -91,7 +86,7 @@ $env:DB_NAME="<DB_NAME>"
Then use this command to launch the proxy in a separate PowerShell session:

```powershell
Start-Process -filepath "C:\<path to proxy exe>" -ArgumentList "-instances=<project-id>:<region>:<instance-name>=tcp:3306 -credential_file=<CREDENTIALS_JSON_FILE>"
Start-Process -filepath "C:\<path to proxy exe>" -ArgumentList "<project-id>:<region>:<instance-name> --port=3306"
```

### Launch proxy with Unix Domain Socket
Expand All @@ -110,7 +105,6 @@ sudo chown -R $USER ./cloudsql
Use these terminal commands to initialize other environment variables as well:

```bash
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account/key.json
export INSTANCE_UNIX_SOCKET='./cloudsql/<MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>'
export DB_USER='<DB_USER_NAME>'
export DB_PASS='<DB_PASSWORD>'
Expand All @@ -120,7 +114,7 @@ export DB_NAME='<DB_NAME>'
Then use this command to launch the proxy in the background:

```bash
./cloud_sql_proxy -dir=./cloudsql --instances=$INSTANCE_CONNECTION_NAME --credential_file=$GOOGLE_APPLICATION_CREDENTIALS &
./cloud-sql-proxy --unix-socket=./cloudsql "$INSTANCE_CONNECTION_NAME" &
```

### Testing the application
Expand Down
19 changes: 7 additions & 12 deletions cloud-sql/mysql/mysql2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,9 @@ as a npm package. See [`@google-cloud/cloud-sql-connector`](https://www.npmjs.co
[instructions](https://cloud.google.com/sql/docs/mysql/create-manage-databases).
Note the database name.

1. Create a service account following these
[instructions](https://cloud.google.com/iam/docs/creating-managing-service-accounts#creating),
and then grant the `roles/cloudsql.client` role following these
[instructions](https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role).
Download a JSON key to use to authenticate your connection.
1. Set up [Application Default Credentials][adc]

[adc]: https://cloud.google.com/docs/authentication/provide-credentials-adc

Note: Defining credentials in environment variables is convenient, but not
secure. For a more secure solution, use [Secret
Expand Down Expand Up @@ -222,7 +220,7 @@ gcloud functions deploy votes --gen2 --runtime nodejs18 --trigger-http \
You may optionally download and install the `cloud_sql_proxy` by
[following the
instructions](https://cloud.google.com/sql/docs/mysql/sql-proxy#install) as an
alternative to using the
alternative to using the
[Cloud SQL Node.js Connector](https://github.com/GoogleCloudPlatform/cloud-sql-nodejs-connector).

Instructions are provided below for using the proxy with a TCP connection or a
Expand All @@ -239,7 +237,6 @@ launch the proxy as shown below.
Use these terminal commands to initialize environment variables:

```bash
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account/key.json
export INSTANCE_HOST='127.0.0.1'
export DB_PORT='3306'
export DB_USER='<DB_USER_NAME>'
Expand All @@ -250,15 +247,14 @@ export DB_NAME='<DB_NAME>'
Then use this command to launch the proxy in the background:

```bash
./cloud_sql_proxy -instances=<project-id>:<region>:<instance-name>=tcp:3306 -credential_file=$GOOGLE_APPLICATION_CREDENTIALS &
./cloud-sql-proxy $INSTANCE_CONNECTION_NAME --port 3306 &
```

#### Windows/PowerShell

Use these PowerShell commands to initialize environment variables:

```powershell
$env:GOOGLE_APPLICATION_CREDENTIALS="<CREDENTIALS_JSON_FILE>"
$env:INSTANCE_HOST="127.0.0.1"
$env:DB_PORT="3306"
$env:DB_USER="<DB_USER_NAME>"
Expand All @@ -269,7 +265,7 @@ $env:DB_NAME="<DB_NAME>"
Then use this command to launch the proxy in a separate PowerShell session:

```powershell
Start-Process -filepath "C:\<path to proxy exe>" -ArgumentList "-instances=<project-id>:<region>:<instance-name>=tcp:3306 -credential_file=<CREDENTIALS_JSON_FILE>"
Start-Process -filepath "C:\<path to proxy exe>" -ArgumentList "<project-id>:<region>:<instance-name> --port=3306"
```

### Launch proxy with Unix Domain Socket
Expand All @@ -288,7 +284,6 @@ sudo chown -R $USER ./cloudsql
Use these terminal commands to initialize other environment variables as well:
```bash
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account/key.json
export INSTANCE_UNIX_SOCKET='./cloudsql/<MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>'
export DB_USER='<DB_USER_NAME>'
export DB_PASS='<DB_PASSWORD>'
Expand All @@ -298,7 +293,7 @@ export DB_NAME='<DB_NAME>'
Then use this command to launch the proxy in the background:
```bash
./cloud_sql_proxy -dir=./cloudsql --instances=$INSTANCE_CONNECTION_NAME --credential_file=$GOOGLE_APPLICATION_CREDENTIALS &
./cloud-sql-proxy --unix-socket=./cloudsql $INSTANCE_CONNECTION_NAME &
```
### Testing the application
Expand Down
16 changes: 6 additions & 10 deletions cloud-sql/postgres/knex/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,9 @@ user](https://cloud.google.com/sql/docs/postgres/create-manage-users#creating).
[instructions](https://cloud.google.com/sql/docs/postgres/create-manage-databases).
Note the database name.

1. Create a service account following these
[instructions](https://cloud.google.com/iam/docs/creating-managing-service-accounts#creating),
and then grant the `roles/cloudsql.client` role following these
[instructions](https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role).
Download a JSON key to use to authenticate your connection.
1. Set up [Application Default Credentials][adc]

[adc]: https://cloud.google.com/docs/authentication/provide-credentials-adc

Note: Defining credentials in environment variables is convenient, but not
secure. For a more secure solution, use [Secret
Expand Down Expand Up @@ -243,7 +241,6 @@ launch the proxy as shown below.
Use these terminal commands to initialize environment variables:

```bash
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account/key.json
export INSTANCE_HOST='127.0.0.1'
export DB_PORT='5432'
export DB_USER='<DB_USER_NAME>'
Expand All @@ -254,7 +251,7 @@ export DB_NAME='<DB_NAME>'
Then use this command to launch the proxy in the background:

```bash
./cloud_sql_proxy -instances=<project-id>:<region>:<instance-name>=tcp:5432 -credential_file=$GOOGLE_APPLICATION_CREDENTIALS &
./cloud-sql-proxy --port=5342 "$INSTANCE_CONNECTION_NAME" &
```

#### Windows/PowerShell
Expand All @@ -273,7 +270,7 @@ $env:DB_NAME="<DB_NAME>"
Then use this command to launch the proxy in a separate PowerShell session:

```powershell
Start-Process -filepath "C:\<path to proxy exe>" -ArgumentList "-instances=<project-id>:<region>:<instance-name>=tcp:5432 -credential_file=<CREDENTIALS_JSON_FILE>"
Start-Process -filepath "C:\<path to proxy exe>" -ArgumentList "<project-id>:<region>:<instance-name> --port=5342"
```

### Launch proxy with Unix Domain Socket
Expand All @@ -292,7 +289,6 @@ sudo chown -R $USER ./cloudsql
Use these terminal commands to initialize other environment variables as well:
```bash
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account/key.json
export INSTANCE_UNIX_SOCKET='./cloudsql/<MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>'
export DB_USER='<DB_USER_NAME>'
export DB_PASS='<DB_PASSWORD>'
Expand All @@ -302,7 +298,7 @@ export DB_NAME='<DB_NAME>'
Then use this command to launch the proxy in the background:
```bash
./cloud_sql_proxy -dir=./cloudsql --instances=$INSTANCE_CONNECTION_NAME --credential_file=$GOOGLE_APPLICATION_CREDENTIALS &
./cloud_sql_proxy --unix-socket=./cloudsql $INSTANCE_CONNECTION_NAME &
```
### Testing the application
Expand Down
11 changes: 4 additions & 7 deletions cloud-sql/sqlserver/mssql/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,16 @@ project](https://cloud.google.com/resource-manager/docs/creating-managing-projec

1. Click **CREATE**.

1. Create a service account following these
[instructions](https://cloud.google.com/iam/docs/creating-managing-service-accounts#creating),
and then grant the `roles/cloudsql.client` role following these
[instructions](https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role).
Download a JSON key to use to authenticate your connection.
1. Set up [Application Default Credentials][adc]

[adc]: https://cloud.google.com/docs/authentication/provide-credentials-adc

## Running locally

Use the information noted in the previous steps to set the following environment
variables:

```bash
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account/key.json
export INSTANCE_CONNECTION_NAME='<MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>'
export INSTANCE_HOST='127.0.0.1'
export DB_PORT='1433'
Expand All @@ -56,7 +53,7 @@ Download and install the `cloud_sql_proxy` by following the instructions
Then, use the following command to start the proxy in the background using TCP:

```bash
./cloud_sql_proxy -instances=${INSTANCE_CONNECTION_NAME}=tcp:1433 sqlserver -u ${DB_USER} --host 127.0.0.1
./cloud-sql-proxy --port=1433 "$INSTANCE_CONNECTION_NAME" &
```

Next, setup install the requirements with `npm`:
Expand Down
14 changes: 5 additions & 9 deletions cloud-sql/sqlserver/tedious/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,9 @@ project](https://cloud.google.com/resource-manager/docs/creating-managing-projec

1. Click **CREATE**.

1. Create a service account following these
[instructions](https://cloud.google.com/iam/docs/creating-managing-service-accounts#creating),
and then grant the `roles/cloudsql.client` role following these
[instructions](https://cloud.google.com/iam/docs/granting-changing-revoking-access#grant-single-role).
Download a JSON key to use to authenticate your connection.
1. Set up [Application Default Credentials][adc]

[adc]: https://cloud.google.com/docs/authentication/provide-credentials-adc

Note: Defining credentials in environment variables is convenient, but not
secure. For a more secure solution, use [Secret
Expand Down Expand Up @@ -243,7 +241,6 @@ launch the proxy as shown below.
Use these terminal commands to initialize environment variables:

```bash
export GOOGLE_APPLICATION_CREDENTIALS='/path/to/service/account/key.json'
export INSTANCE_HOST='127.0.0.1'
export DB_PORT='1433'
export DB_USER='<DB_USER_NAME>'
Expand All @@ -254,15 +251,14 @@ export DB_NAME='<DB_NAME>'
Then use this command to launch the proxy in the background:

```bash
./cloud-sql-proxy <PROJECT_ID>:<INSTANCE_REGION>:<INSTANCE_NAME> &
./cloud-sql-proxy --port=1433 <PROJECT_ID>:<INSTANCE_REGION>:<INSTANCE_NAME> &
```

#### Windows/PowerShell

Use these PowerShell commands to initialize environment variables:

```powershell
$env:GOOGLE_APPLICATION_CREDENTIALS="<CREDENTIALS_JSON_FILE>"
$env:INSTANCE_HOST="127.0.0.1"
$env:DB_PORT="1433"
$env:DB_USER="<DB_USER_NAME>"
Expand All @@ -273,7 +269,7 @@ $env:DB_NAME="<DB_NAME>"
Then use this command to launch the proxy in a separate PowerShell session:

```powershell
Start-Process -filepath "C:\<path to proxy exe>" -ArgumentList "-instances=<project-id>:<region>:<instance-name>=tcp:1433 -credential_file=<CREDENTIALS_JSON_FILE>"
Start-Process -filepath "C:\<path to proxy exe>" -ArgumentList "<project-id>:<region>:<instance-name> --port=1433"
```

### Testing the application
Expand Down

0 comments on commit dc477f3

Please sign in to comment.