GCPコンソール
Cloud Run「Cloud SQL接続」を有効にする これは内部的にCloud SQL Auth Proxyをサイドカーで立ち上げる設定らしい。 https://blog.g-gen.co.jp/entry/from-cloudrun-to-cloud-sql-with-auth-proxy
マニフェスト
.spec.template.metadata.annotationsにrun.googleapis.com/cloudsql-instancesを追加する
apiVersion: serving.knative.dev/v1
kind: Service
spec:
template:
metadata:
annotations:
run.googleapis.com/cloudsql-instances: '{project}:{region}:{instanceName}'UnixSocket接続
AuthProxyとの接続はTCPではなくunixソケットで接続する。
コンテナの/cloudsql/{cloudsql接続名}でUnix Socketがマウントされているので、環境変数などで指定する
dbURI := fmt.Sprintf("host=%s user=%s password=%s database=%s",
dbHost, dbUser, dbPwd, dbName)※unix socket接続なのでPortを渡していない
IAM認証の場合はパスワードを渡さなければ自動でログインできるらしいが、パスワードが求められてしまいうまくいかなかった。。。 CloudSQLの認証方式