Cloud Run functions から Cloud SQL for PostgreSQL に接続する

Google Cloud コンソールとクライアント アプリケーションを使用して、PostgreSQL インスタンスに接続された Cloud Run 関数にサンプルアプリをデプロイする方法を学習します。

すべてのステップを適切なタイミングで完了した場合、通常、このクイックスタートで作成されるリソースにかかる費用は 1 ドル(USD)未満です。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Cloud Run functions で Cloud SQL サンプルアプリを実行するために必要な Cloud APIs を有効にします。
    コンソールgcloud

    [API を有効にする] をクリックして、このクイックスタートで必要な API を有効にします。

    API を有効にする

    これにより、次の API が有効になります。

    • Cloud Run functions API
    • Cloud SQL Admin API
    • Cloud Run Admin API
    • Cloud Build API
    • Artifact Registry API
    • Eventarc API
    • Compute Engine API
    • Service Networking API
    • Cloud Logging API

    次のボタンをクリックして Cloud Shell を開きます。これにより、ブラウザから Google Cloud リソースにコマンドラインで直接アクセスできます。Cloud Shell を使用して、このクイックスタートで紹介する gcloud コマンドを実行できます。

    Cloud Shell を開く

    Cloud Shell を使用して次の gcloud コマンドを実行します。

    gcloud services enable cloudfunctions.googleapis.com sqladmin.googleapis.com run.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com eventarc.googleapis.com compute.googleapis.com servicenetworking.googleapis.com pubsub.googleapis.com logging.googleapis.com

    このコマンドにより、次の API が有効になります。

    • Cloud Run functions API
    • Cloud SQL Admin API
    • Cloud Run API
    • Cloud Build API
    • Artifact Registry API
    • Eventarc API
    • Compute Engine API
    • Service Networking API
    • Cloud Logging API
  5. ユーザーに、Cloud Run 関数起動元の IAM ロールを追加します。

    ロールを追加する

Cloud SQL の設定

Cloud SQL インスタンスを作成する

パブリック IP

コンソールgcloud
  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [インスタンスを作成] をクリックします。
  3. [PostgreSQL を選択] をクリックします。
  4. インスタンスの Cloud SQL エディションとして [Enterprise Plus] が選択されていることを確認します。
  5. [インスタンス ID] フィールドに「quickstart-instance」と入力します。
  6. [パスワード] フィールドに、postgres ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
  7. [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] を選択します。
  8. [構成オプションを表示] メニューをクリックします。
  9. [マシンの構成] ノードを開きます。
  10. [マシンシェイプ] 領域で、[4 vCPU、32 GB] シェイプを選択します。
  11. [インスタンスを作成] をクリックし、インスタンスが初期化されて起動するまで待ちます。

コマンドを実行する前に、DB_ROOT_PASSWORD をデータベース ユーザーのパスワードに置き換えます。

必要に応じて、次のパラメータの値を変更します。

  • --database-version: データベース エンジンのタイプとバージョン。指定しない場合は、API のデフォルトが使用されます。現在利用可能なバージョンを確認するには、gcloud database versions ドキュメントをご覧ください。
  • --cpu: マシンに必要なコア数。
  • --memory: マシンに必要なメモリ量を示す整数。サイズ単位を指定する必要があります(例: 3,072 MB、9 GB)。単位を指定しない場合、GB が使用されます。
  • --region: インスタンスのリージョンのロケーション(asia-east1、us-east1 など)。指定しない場合は、デフォルトで us-central が使用されます。

gcloud sql instances create コマンドを実行して、Cloud SQL インスタンスを作成します。

gcloud sql instances create quickstart-instance \
--database-version=POSTGRES_14 \
 --cpu=1 \
 --memory=4GB \
 --region=us-central \
 --root-password=DB_ROOT_PASSWORD
コンソールgcloud

IP アドレス範囲を割り振り、プライベート接続を作成して Cloud SQL の限定公開サービス アクセスを構成する

  1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. default VPC ネットワークを選択します。
  3. [プライベート サービス接続] タブを選択します。
  4. [サービスに割り当てられた IP 範囲] を選択します。
  5. [IP 範囲の割り当て] をクリックします。
  6. 割り振られた範囲の [名前] には google-managed-services-default を指定します。
  7. IP 範囲の [自動] オプションを選択し、接頭辞の長さを 16 として指定します。
  8. [割り当て] をクリックして、割り振る範囲を作成します。
  9. default VPC ネットワークの [サービスへのプライベート接続] タブを選択します。
  10. ネットワークとサービス プロデューサーとの間にプライベート接続を作成するには、[接続の作成] をクリックします。
  11. [割り当て] で [google-managed-services-default] を選択します。
  12. [接続] をクリックして接続を作成します。

プライベート IP アドレスと SSL を有効にしてインスタンスを作成する

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [インスタンスを作成] をクリックします。
  3. [PostgreSQL を選択] をクリックします。
  4. インスタンスの Cloud SQL エディションとして [Enterprise Plus] が選択されていることを確認します。
  5. [インスタンス ID] フィールドに「quickstart-instance」と入力します。
  6. [パスワード] フィールドに、postgres ユーザーのパスワードを入力します。このパスワードは後で使用できるように保存してください。
  7. [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] を選択します。
  8. [構成オプションを表示] メニューをクリックします。
  9. [マシンの構成] ノードを開きます。
  10. [マシンシェイプ] 領域で、[4 vCPU、32 GB] シェイプを選択します。
  11. [接続] ノードを開きます。
  12. プライベート IP アドレスのみを使用するインスタンスを作成するには、[パブリック IP] チェックボックスをオフにします。
  13. [プライベート IP] チェックボックスをオンにします。
  14. [ネットワーク] メニューから [デフォルト] を選択します。
  15. [インスタンスを作成] をクリックし、インスタンスが初期化されて起動するまで待ちます。
  16. [接続] をクリックします。
  17. [セキュリティ] で [SSL 接続のみ許可] を選択し、SSL 接続を有効にします。
  18. [SSL 接続のみ許可] ダイアログで [保存] をクリックし、インスタンスが再起動するのを待ちます。

IP アドレス範囲を割り振り、プライベート接続を作成して Cloud SQL の限定公開サービス アクセスを構成する

  1. gcloud compute addresses create コマンドを実行して、IP アドレス範囲を割り振ります。

    gcloud compute addresses create google-managed-services-default \
    --global --purpose=VPC_PEERING --prefix-length=16 \
    --description="peering range for Google" --network=default
  2. gcloud services vpc-peerings connect コマンドを実行して、割り振られた IP アドレス範囲へのプライベート接続を作成します。YOUR_PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。

    gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-default --network=default \
    --project=YOUR_PROJECT_ID

プライベート IP アドレスと SSL を有効にしてインスタンスを作成する

  1. 次のコマンドを実行する前に、DB_ROOT_PASSWORD をデータベース ユーザーのパスワードに置き換えます。

  2. 必要に応じて、次のパラメータの値を変更します。

    • --database-version: データベース エンジンのタイプとバージョン。指定しない場合は、API のデフォルトが使用されます。現在利用可能なバージョンを確認するには、gcloud database versions ドキュメントをご覧ください。
    • --cpu: マシン内のコア数。
    • --memory: マシンに搭載するメモリ量を示す整数。サイズの単位を指定できます(例: 3,072 MB、9 GB)。単位を指定しない場合、GB が使用されます。
    • --region: インスタンスのリージョンのロケーション(例: asia-east1、us-east1)。指定しない場合は、デフォルトで us-central1 が使用されます。リージョンの一覧をご覧ください。

    gcloud sql instances create コマンドを実行して、プライベート IP アドレスを持つ Cloud SQL インスタンスを作成します。

    gcloud sql instances create quickstart-instance \
    --database-version=POSTGRES_14 \
     --cpu=1 \
     --memory=4GB \
     --region=us-central \
     --root-password=DB_ROOT_PASSWORD \
     --no-assign-ip \
    --network=default
  3. gcloud sql instances patch コマンドを実行して、インスタンスで SSL 接続のみ許可します。

  4. gcloud sql instances patch quickstart-instance --require-ssl

データベースの作成

コンソールgcloud
  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [quickstart-instance] を選択します。
  3. SQL ナビゲーション メニューから [データベース] を選択します。
  4. [データベースを作成] をクリックします。
    1. [新しいデータベース] ダイアログ ボックスの [データベース名] フィールドに「quickstart-db」と入力します。
    2. [作成] をクリックします。

gcloud sql databases create コマンドを実行してデータベースを作成します。

gcloud sql databases create quickstart-db --instance=quickstart-instance

ユーザーを作成する

コンソールgcloud
  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. SQL ナビゲーション メニューから [ユーザー] を選択します。
  4. [ユーザー アカウントを追加] をクリックします。
  5. quickstart-instance の [ユーザー アカウントを追加] ページで、次の情報を追加します。
    • [ユーザー名] フィールドに「quickstart-user」と入力します。
    • [パスワード] フィールドに、データベース ユーザーのパスワードを指定します。このクイックスタートの後半で使用するので、メモしておいてください。
  6. [追加] をクリックします。

次のコマンドを実行する前に、次のように置き換えます。

  1. DB_PASS はデータベース ユーザーのパスワードに置き換えます。このクイックスタートの後半で使用するので、メモしておいてください。

gcloud sql users create コマンドを実行してリソースを作成します。

gcloud sql users create quickstart-user \
--instance=quickstart-instance \
--password=DB_PASS

ユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。

Cloud Run functions のサービス アカウントを構成する

Cloud Run functions で使用するサービス アカウントが、Cloud SQL に接続する権限を持つ Cloud SQL Client ロールを持つように構成します。
コンソールgcloud
  1. Google Cloud コンソールの [IAM] ページに移動します。

    [IAM] に移動

  2. Compute Engine のデフォルトのサービス アカウントという名前のサービス アカウントの鉛筆アイコンをクリックします。
  3. [別のロールを追加] をクリックします。
  4. Cloud SQL クライアントという名前のロールを追加します。
  5. [保存] をクリックします。
  1. 次の gcloud コマンドを実行して、プロジェクトのサービス アカウントのリストを取得します。
    gcloud iam service-accounts list
  2. Compute Engine サービス アカウントメールアドレスをコピーします。
  3. 次のコマンドを実行して、Cloud SQL クライアントのロールを Compute Engine サービス アカウントに追加します。
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/cloudsql.client"

関数を作成する

  1. Google Cloud コンソールで Cloud Run 関数のページに移動します。

    Cloud Run 関数に移動

  2. [関数を作成] をクリックします。
  3. [環境] で [第 2 世代] を選択します。
  4. [関数名] フィールドに「quickstart-function」と入力します。
  5. [認証] リージョンで、[未認証の呼び出しを許可する] を選択します。
  6. [次へ] をクリックします。
  7. [ランタイム] メニューから、次のいずれかの言語を選択します。
  8. 言語 バージョン番号
    Go 1.20
    Java 17
    Node.js 18
    Python 3.10
  9. [ソースコード] メニューで、[インライン エディタ] が選択されていることを確認します。このステップでは、エディタで指定されているデフォルト関数を使用します。

関数をデプロイする

  1. Cloud Run functions のページの下部にある [デプロイ] をクリックします。Google Cloud コンソールから、関数の詳細ページにリダイレクトします。
  2. 関数のデプロイが完了後、[URL] リンクをクリックすると、Hello, World! というメッセージがウェブブラウザに表示されます。

Cloud SQL サンプルアプリを関数としてデプロイする

Cloud SQL サンプルアプリを Cloud Run functions の関数として構成し、デプロイします。まず、Cloud Shell を使用してサンプルアプリの構成とビルドを行います。次に、Cloud Run functions を使用してサンプルアプリをデプロイします。

パブリック IP / プライベート IP のどちらを使用して Cloud SQL for PostgreSQL インスタンスを作成するかに基づき、アプリの構成、ビルド、デプロイを行う方法が 2 つあります。

Cloud SQL サンプルアプリを構成する

パブリック IP

パブリック IP パスの場合、Cloud Run functions は Unix ソケット経由で Cloud SQL Auth Proxy を使用して、暗号化と接続を行います。
GoJavaNode.jsPython
  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトにて、Cloud Shell エディタ画面の下半分で次のコマンドを実行してプロジェクトを有効にします。YOUR_PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    gcloud config set project YOUR_PROJECT_ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell で次の gcloud artifacts repositories create コマンドを実行して、Cloud SQL インスタンスと同じリージョン内の quickstart-repo という名前の Artifact Registry でリポジトリを作成します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell で次のように gcloud builds submit コマンドを実行して、Docker コンテナをビルドし、Artifact Registry に公開します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions の gen2 では、Cloud SQL Auth Proxy を自動的に構成して実行することはサポートされていません。この機能は、Cloud Run を使用することでサポートされます。Cloud SQL Auth Proxy を構成して実行するには、--add-cloudsql-instances フラグを使用して、基盤となる Cloud Run サービスを手動で変更する必要があります。INSTANCE_CONNECTION_NAME をインスタンスの接続名に置き換えます。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトにて、Cloud Shell エディタ画面の下半分で次のコマンドを実行してプロジェクトを有効にします。YOUR_PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    gcloud config set project YOUR_PROJECT_ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell で次の gcloud artifacts repositories create コマンドを実行して、Cloud SQL インスタンスと同じリージョン内の quickstart-repo という名前の Artifact Registry でリポジトリを作成します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell で次のように mvn コマンドを実行して、Docker コンテナをビルドし、Artifact Registry に公開します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
      -Dimage=YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql \
      -DskipTests -Djib.to.credHelper=gcloud
  7. Cloud Run functions の gen2 では、Cloud SQL Auth Proxy を自動的に構成して実行することはサポートされていません。この機能は、Cloud Run を使用することでサポートされます。Cloud SQL Auth Proxy を構成して実行するには、--add-cloudsql-instances フラグを使用して、基盤となる Cloud Run サービスを手動で変更する必要があります。INSTANCE_CONNECTION_NAME をインスタンスの接続名に置き換えます。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトにて、Cloud Shell エディタ画面の下半分で次のコマンドを実行してプロジェクトを有効にします。YOUR_PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    gcloud config set project YOUR_PROJECT_ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell で次の gcloud artifacts repositories create コマンドを実行して、Cloud SQL インスタンスと同じリージョン内の quickstart-repo という名前の Artifact Registry でリポジトリを作成します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell で次のように gcloud builds submit コマンドを実行して、Docker コンテナをビルドし、Artifact Registry に公開します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions の gen2 では、Cloud SQL Auth Proxy を自動的に構成して実行することはサポートされていません。この機能は、Cloud Run を使用することでサポートされます。Cloud SQL Auth Proxy を構成して実行するには、--add-cloudsql-instances フラグを使用して、基盤となる Cloud Run サービスを手動で変更する必要があります。INSTANCE_CONNECTION_NAME をインスタンスの接続名に置き換えます。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。

    Cloud Shell エディタを開く

  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトにて、Cloud Shell エディタ画面の下半分で次のコマンドを実行してプロジェクトを有効にします。YOUR_PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    gcloud config set project YOUR_PROJECT_ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell で次の gcloud artifacts repositories create コマンドを実行して、Cloud SQL インスタンスと同じリージョン内の quickstart-repo という名前の Artifact Registry でリポジトリを作成します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell で次のように gcloud builds submit コマンドを実行して、Docker コンテナをビルドし、Artifact Registry に公開します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions の gen2 では、Cloud SQL Auth Proxy を自動的に構成して実行することはサポートされていません。この機能は、Cloud Run を使用することでサポートされます。Cloud SQL Auth Proxy を構成して実行するには、--add-cloudsql-instances フラグを使用して、基盤となる Cloud Run サービスを手動で変更する必要があります。INSTANCE_CONNECTION_NAME をインスタンスの接続名に置き換えます。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
プライベート IP パスの場合、アプリケーションはサーバーレス VPC アクセスを介してインスタンスに直接接続します。この方法では、Cloud SQL Auth Proxy を使用せずに TCP ソケットを使用して Cloud SQL インスタンスに直接接続します。
GoJavaNode.jsPython

SSL サーバーとクライアント証明書を作成してダウンロードする

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. quickstart-instance をクリックして、[概要] ページを表示します。
  3. [接続] タブをクリックします。
  4. [セキュリティ] で [クライアント証明書を作成] をクリックします。
  5. [クライアント証明書を作成] ダイアログで、名前として「quickstart-key」と入力し、[作成] をクリックします。
  6. [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。

プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する

  1. Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。

    サーバーレス VPC コネクタを作成する

  2. [名前] に「quickstart-connector」と入力します。
  3. [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
  4. [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
  5. [IP 範囲] 入力ボックスに「10.8.0.0」と入力します。
  6. [作成] をクリックして、コネクタを作成します。

SSL 証明書を使用してサンプルアプリを構築する

  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
    Cloud Shell エディタを開く
  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトにて、Cloud Shell エディタ画面の下半分で次のコマンドを実行してプロジェクトを有効にします。YOUR_PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    gcloud config set project YOUR_PROJECT_ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. SSL 証明書ファイルを証明書フォルダにアップロードします。
    1. Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
    2. ローカルマシンで次のファイルを選択します。
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
  6. Cloud Shell で次の gcloud artifacts repositories create コマンドを実行して、Cloud SQL インスタンスと同じリージョン内の quickstart-repo という名前の Artifact Registry でリポジトリを作成します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  7. Cloud Shell で次のように gcloud builds submit コマンドを実行して、Docker コンテナをビルドし、Artifact Registry に公開します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  8. Cloud Run functions の gen2 では、Cloud SQL Auth Proxy を自動的に構成して実行することはサポートされていません。この機能は、Cloud Run を使用することでサポートされます。Cloud SQL Auth Proxy を構成して実行するには、--add-cloudsql-instances フラグを使用して、基盤となる Cloud Run サービスを手動で変更する必要があります。INSTANCE_CONNECTION_NAME をインスタンスの接続名に置き換えます。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

SSL サーバーとクライアント証明書を作成してダウンロードする

Java ユーザーの場合、コネクタはすでに安全な接続を提供するため、SSL サーバーとクライアント証明書の作成とダウンロードは不要です。

プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する

  1. Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。

    サーバーレス VPC コネクタを作成する

  2. [名前] に「quickstart-connector」と入力します。
  3. [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
  4. [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
  5. [IP 範囲] 入力ボックスに「10.8.0.0」と入力します。
  6. [作成] をクリックして、コネクタを作成します。

サンプルアプリを構築する

  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
    Cloud Shell エディタを開く
  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトにて、Cloud Shell エディタ画面の下半分で次のコマンドを実行してプロジェクトを有効にします。YOUR_PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    gcloud config set project YOUR_PROJECT_ID
  4. [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
  5. Cloud Shell で次の gcloud artifacts repositories create コマンドを実行して、Cloud SQL インスタンスと同じリージョン内の quickstart-repo という名前の Artifact Registry でリポジトリを作成します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell で次のように mvn コマンドを実行して、Docker コンテナをビルドし、Artifact Registry に公開します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
      -Dimage=YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql \
      -DskipTests -Djib.to.credHelper=gcloud
  7. Cloud Run functions の gen2 では、Cloud SQL Auth Proxy を自動的に構成して実行することはサポートされていません。この機能は、Cloud Run を使用することでサポートされます。Cloud SQL Auth Proxy を構成して実行するには、--add-cloudsql-instances フラグを使用して、基盤となる Cloud Run サービスを手動で変更する必要があります。INSTANCE_CONNECTION_NAME をインスタンスの接続名に置き換えます。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

SSL サーバーとクライアント証明書を作成してダウンロードする

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. quickstart-instance をクリックして、[概要] ページを表示します。
  3. [接続] タブをクリックします。
  4. [セキュリティ] で [クライアント証明書を作成] をクリックします。
  5. [クライアント証明書を作成] ダイアログで、名前として「quickstart-key」と入力し、[作成] をクリックします。
  6. [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。

プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する

  1. Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。

    サーバーレス VPC コネクタを作成する

  2. [名前] に「quickstart-connector」と入力します。
  3. [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
  4. [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
  5. [IP 範囲] 入力ボックスに「10.8.0.0」と入力します。
  6. [作成] をクリックして、コネクタを作成します。

SSL 証明書を使用してサンプルアプリを構築する

  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
    Cloud Shell エディタを開く
  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトにて、Cloud Shell エディタ画面の下半分で次のコマンドを実行してプロジェクトを有効にします。YOUR_PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    gcloud config set project YOUR_PROJECT_ID
  4. SSL 証明書ファイルを証明書フォルダにアップロードします。
    1. Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
    2. ローカルマシンで次のファイルを選択します。
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
  5. Cloud Shell で次の gcloud artifacts repositories create コマンドを実行して、Cloud SQL インスタンスと同じリージョン内の quickstart-repo という名前の Artifact Registry でリポジトリを作成します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell で次のように gcloud builds submit コマンドを実行して、Docker コンテナをビルドし、Artifact Registry に公開します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions の gen2 では、Cloud SQL Auth Proxy を自動的に構成して実行することはサポートされていません。この機能は、Cloud Run を使用することでサポートされます。Cloud SQL Auth Proxy を構成して実行するには、--add-cloudsql-instances フラグを使用して、基盤となる Cloud Run サービスを手動で変更する必要があります。INSTANCE_CONNECTION_NAME をインスタンスの接続名に置き換えます。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

SSL サーバーとクライアント証明書を作成してダウンロードする

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. quickstart-instance をクリックして、[概要] ページを表示します。
  3. [接続] タブをクリックします。
  4. [セキュリティ] で [クライアント証明書を作成] をクリックします。
  5. [クライアント証明書を作成] ダイアログで、名前として「quickstart-key」と入力し、[作成] をクリックします。
  6. [新しい SSL 証明書を作成しました] ダイアログで、各ダウンロード リンクをクリックして証明書をダウンロードします。[閉じる] をクリックします。

プライベート IP を使用したインスタンスへの接続用のサーバーレス VPC 接続を作成する

  1. Google Cloud コンソールで、[サーバーレス VPC アクセス] - [コネクタの作成] ページに移動します。

    サーバーレス VPC コネクタを作成する

  2. [名前] に「quickstart-connector」と入力します。
  3. [ネットワーク] プルダウン メニューから [デフォルト] を選択します。
  4. [サブネット] プルダウン メニューから [カスタム IP 範囲] を選択します。
  5. [IP 範囲] 入力ボックスに「10.8.0.0」と入力します。
  6. [作成] をクリックして、コネクタを作成します。

SSL 証明書を使用してサンプルアプリを構築する

  1. Cloud Shell エディタで、サンプルアプリのソースコードを開きます。
    Cloud Shell エディタを開く
  2. [Cloud Shell で開く] ダイアログ ボックスで、[確認] をクリックしてサンプルアプリのコードをダウンロードし、Cloud Shell エディタでサンプルアプリのディレクトリを開きます。
  3. Cloud Shell コマンド プロンプトにて、Cloud Shell エディタ画面の下半分で次のコマンドを実行してプロジェクトを有効にします。YOUR_PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    gcloud config set project YOUR_PROJECT_ID
  4. SSL 証明書ファイルを証明書フォルダにアップロードします。
    1. Cloud Shell エディタで証明書フォルダを右クリックし、[ファイルをアップロード] を選択します。
    2. ローカルマシンで次のファイルを選択します。
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 3 つの SSL 証明書ファイルを選択して [開く] をクリックし、Cloud Shell エディタにファイルをアップロードするプロセスを完了します。
  5. Cloud Shell で次の gcloud artifacts repositories create コマンドを実行して、Cloud SQL インスタンスと同じリージョン内の quickstart-repo という名前の Artifact Registry でリポジトリを作成します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell で次のように gcloud builds submit コマンドを実行して、Docker コンテナをビルドし、Artifact Registry に公開します。YOUR_PROJECT_ID はプロジェクト ID に置き換え、YOUR_REGION_NAME はリージョン名に置き換えます。
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions の gen2 では、Cloud SQL Auth Proxy を自動的に構成して実行することはサポートされていません。この機能は、Cloud Run を使用することでサポートされます。Cloud SQL Auth Proxy を構成して実行するには、--add-cloudsql-instances フラグを使用して、基盤となる Cloud Run サービスを手動で変更する必要があります。INSTANCE_CONNECTION_NAME はインスタンスの接続名に置き換えます。
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

サンプルアプリをデプロイする

サンプルを Cloud Run functions にデプロイする手順は、Cloud SQL インスタンスに割り当てられた IP アドレスの種類によって異なります。

パブリック IP

コンソールgcloud
  1. Google Cloud コンソールで Cloud Run 関数のページに移動します。

    Cloud Run 関数に移動

  2. このクイックスタートの前の手順で作成した quickstart-function を選択します。
  3. [関数の詳細] ページで、[Powered by Cloud Run] ペインのリンクをクリックして、基盤となる Cloud Run functions のサービスにアクセスします。
  4. [新しいリビジョンを編集してデプロイ] をクリックします。
  5. [コンテナ イメージの URL] フィールドをクリックして、[選択] をクリックします。
    1. [Artifact Registry] タブを選択し、quickstart-repo ノードを開きます。
    2. function-sql コンテナを開き、前の手順で作成したコンテナ イメージを選択します。
    3. [選択] をクリックします。
  6. [環境変数] セクションで [変数を追加] をクリックして、次の環境変数を作成します。
    • INSTANCE_UNIX_SOCKET: /cloudsql/YOUR_PROJECT_ID:YOUR_REGION_NAME:quickstart-instance に設定します。
    • DB_NAME: quickstart-db に設定します。
    • DB_USER: quickstart-user に設定します
    • DB_PASS: 前のユーザーの作成クイックスタート手順で指定した quickstart-user のパスワードに設定します。
  7. Cloud SQL への接続を有効にします。

    1. [Cloud SQL 接続] セクションで、[接続を追加] をクリックします。
    2. インスタンスの接続名を選択します。
  8. ページの下部にある [デプロイ] をクリックします。
  9. quickstart-function がデプロイされると、[Service の詳細] ページに、実行中のサービスの URL が表示されます。[URL] リンクをクリックして、Cloud SQL に接続されているデプロイ済みの Cloud Run functions のサンプルアプリを表示します。このアプリは次のようになります。

    デプロイされたサンプルアプリを表示する

GoJavaNode.jsPython
  1. gen2 関数を Cloud Run functions にデプロイするには、次の gcloud functions deploy コマンドを実行します。コマンドを実行する前に、次の変数を更新します。
    • YOUR_REGION_NAME は、使用するリージョン名に置き換えます。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    • DB_PASS は、前のユーザーの作成クイックスタートの手順で作成した quickstart-user のパスワードに置き換えます。

    次のように gcloud functions deploy コマンドを実行して、Cloud Run functions を作成します。

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime go120 \ --trigger-http \ --allow-unauthenticated \ --entry-point Votes \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. Cloud Run functions がデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run functions のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

  1. gen2 関数を Cloud Run functions にデプロイするには、次の gcloud functions deploy コマンドを実行します。コマンドを実行する前に、次の変数を更新します。
    • YOUR_REGION_NAME は、使用するリージョン名に置き換えます。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    • DB_PASS は、前のユーザーの作成クイックスタートの手順で作成した quickstart-user のパスワードに置き換えます。

    次のように gcloud functions deploy コマンドを実行して、Cloud Run functions を作成します。

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime java11 \ --trigger-http \ --allow-unauthenticated \ --entry-point com.example.cloudsql.functions.Main \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. Cloud Run functions がデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run functions のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

  1. gen2 関数を Cloud Run functions にデプロイするには、次の gcloud functions deploy コマンドを実行します。コマンドを実行する前に、次の変数を更新します。
    • YOUR_REGION_NAME は、使用するリージョン名に置き換えます。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    • DB_PASS は、前のユーザーの作成クイックスタートの手順で作成した quickstart-user のパスワードに置き換えます。

    次のように gcloud functions deploy コマンドを実行して、Cloud Run functions を作成します。

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime nodejs18 \ --trigger-http \ --allow-unauthenticated \ --entry-point votes \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. Cloud Run functions がデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run functions のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

  1. gen2 関数を Cloud Run functions にデプロイするには、次の gcloud functions deploy コマンドを実行します。コマンドを実行する前に、次の変数を更新します。
    • YOUR_REGION_NAME は、使用するリージョン名に置き換えます。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    • DB_PASS は、前のユーザーの作成クイックスタートの手順で作成した quickstart-user のパスワードに置き換えます。

    次のように gcloud functions deploy コマンドを実行して、Cloud Run functions を作成します。

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime python310 \ --trigger-http \ --allow-unauthenticated \ --entry-point votes \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. Cloud Run functions がデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run functions のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

コンソールgcloud
  1. Google Cloud コンソールで Cloud Run 関数のページに移動します。

    Cloud Run 関数に移動

  2. このクイックスタートの前の手順で作成した quickstart-function を選択します。
  3. [関数の詳細] ページで、[Powered by Cloud Run] ペインのリンクをクリックして、基盤となる Cloud Run functions のサービスにアクセスします。
  4. [新しいリビジョンを編集してデプロイ] をクリックします。
  5. [コンテナ イメージの URL] フィールドをクリックして、[選択] をクリックします。
    1. [Artifact Registry] タブを選択し、quickstart-repo ノードを開きます。
    2. function-sql コンテナを開き、前の手順で作成したコンテナ イメージを選択します。
    3. [選択] をクリックします。
  6. [環境変数] セクションで [変数を追加] をクリックして、次の環境変数を作成します。
    • DB_NAME: quickstart-db に設定します。
    • DB_USER: quickstart-user に設定します。
    • DB_PASS: 前のユーザーの作成クイックスタートの手順で指定した quickstart-user のパスワードに設定します。
    • INSTANCE_CONNECTION_NAME: Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。
    • DB_PORT: 5432 に設定します。
    • INSTANCE_HOST: Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスのプライベート IP アドレスを設定します。
    • DB_ROOT_CERT: certs/server-ca.pem に設定します。
    • DB_CERT: certs/client-cert.pem に設定します。
    • DB_KEY: certs/client-key.pem に設定します。
    • PRIVATE_IP: TRUE に設定します。
  7. Cloud SQL への接続を有効にします。

    1. [Cloud SQL 接続] セクションで、[接続を追加] をクリックします。
    2. インスタンスの接続名を選択します。
    3. [VPC ネットワーク] プルダウン メニューから default: Serverless VPC Access Connector "quickstart-connector" を選択します。
    4. [すべてのトラフィックを VPC コネクタ経由でルーティングする] オプションを選択します。
  8. ページの下部にある [デプロイ] をクリックします。
  9. quickstart-function がデプロイされると、[Service の詳細] ページに、実行中のサービスの URL が表示されます。[URL] リンクをクリックして、Cloud SQL に接続されているデプロイ済みの Cloud Run functions のサンプルアプリを表示します。このアプリは次のようになります。

    デプロイされたサンプルアプリを表示する

GoJavaNode.jsPython
  1. gen2 関数を Cloud Run functions にデプロイするには、次の gcloud functions deploy コマンドを実行します。コマンドを実行する前に、次の変数を更新します。
    • YOUR_REGION_NAME は、使用するリージョン名に置き換えます。
    • PRIVATE_IP_ADDRESS は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスのプライベート IP アドレスに置き換えます。
    • DB_PASS は、前のユーザーの作成クイックスタートの手順で作成した quickstart-user のパスワードに置き換えます。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    次のように gcloud functions deploy コマンドを実行して、Cloud Run functions を作成します。

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime go120 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point Votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=5432 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java コネクタによってすでに安全な接続が提供されているので、Java ユーザーは、次のように INSTANCE_HOSTDB_PORTDB_ROOT_CERTDB_CERTDB_KEYPRIVATE_IP のフラグを指定せずに gcloud functions deploy コマンドを実行して、Cloud Run functions を作成する必要があります。

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime go120 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point Votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. Cloud Run functions がデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run functions のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

  1. gen2 関数を Cloud Run functions にデプロイするには、次の gcloud functions deploy コマンドを実行します。コマンドを実行する前に、次の変数を更新します。
    • YOUR_REGION_NAME は、使用するリージョン名に置き換えます。
    • PRIVATE_IP_ADDRESS は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスのプライベート IP アドレスに置き換えます。
    • DB_PASS は、前のユーザーの作成クイックスタートの手順で作成した quickstart-user のパスワードに置き換えます。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    次のように gcloud functions deploy コマンドを実行して、Cloud Run functions を作成します。

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime java11 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point com.example.cloudsql.functions.Main \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=5432 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java コネクタによってすでに安全な接続が提供されているので、Java ユーザーは、次のように INSTANCE_HOSTDB_PORTDB_ROOT_CERTDB_CERTDB_KEYPRIVATE_IP のフラグを指定せずに gcloud functions deploy コマンドを実行して、Cloud Run functions を作成する必要があります。

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime java11 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point com.example.cloudsql.functions.Main \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. Cloud Run functions がデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run functions のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

  1. gen2 関数を Cloud Run functions にデプロイするには、次の gcloud functions deploy コマンドを実行します。コマンドを実行する前に、次の変数を更新します。
    • YOUR_REGION_NAME は、使用するリージョン名に置き換えます。
    • PRIVATE_IP_ADDRESS は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスのプライベート IP アドレスに置き換えます。
    • DB_PASS は、前のユーザーの作成クイックスタートの手順で作成した quickstart-user のパスワードに置き換えます。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    次のように gcloud functions deploy コマンドを実行して、Cloud Run functions を作成します。

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime nodejs18 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=5432 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java コネクタによってすでに安全な接続が提供されているので、Java ユーザーは、次のように INSTANCE_HOSTDB_PORTDB_ROOT_CERTDB_CERTDB_KEYPRIVATE_IP のフラグを指定せずに gcloud functions deploy コマンドを実行して、Cloud Run functions を作成する必要があります。

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime nodejs18 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. Cloud Run functions がデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run functions のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

  1. gen2 関数を Cloud Run functions にデプロイするには、次の gcloud functions deploy コマンドを実行します。コマンドを実行する前に、次の変数を更新します。
    • YOUR_REGION_NAME は、使用するリージョン名に置き換えます。
    • PRIVATE_IP_ADDRESS は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスのプライベート IP アドレスに置き換えます。
    • DB_PASS は、前のユーザーの作成クイックスタートの手順で作成した quickstart-user のパスワードに置き換えます。
    • INSTANCE_CONNECTION_NAME は、Google Cloud コンソールの [Cloud SQL インスタンス] ページに表示されるインスタンスの接続名に置き換えます。

    次のように gcloud functions deploy コマンドを実行して、Cloud Run functions を作成します。

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime python310 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=5432 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java コネクタによってすでに安全な接続が提供されているので、Java ユーザーは、次のように INSTANCE_HOSTDB_PORTDB_ROOT_CERTDB_CERTDB_KEYPRIVATE_IP のフラグを指定せずに gcloud functions deploy コマンドを実行して、Cloud Run functions を作成する必要があります。

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime python310 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. Cloud Run functions がデプロイされたことを示す確認メッセージが表示されたら、メッセージの [Service URL] リンクをクリックして、Cloud SQL に接続された Cloud Run functions のサンプルアプリを確認します。

    デプロイされたサンプルアプリを表示する

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. quickstart-instance インスタンスを選択して [インスタンスの詳細] ページを開きます。
  3. ページ上部にあるアイコンバーで、[削除] をクリックします。
  4. [インスタンスの削除] ダイアログ ボックスで「quickstart-instance」と入力し、[削除] をクリックしてインスタンスを削除します。
  5. Google Cloud コンソールで Cloud Run 関数のページに移動します。

    Cloud Run 関数に移動

  6. quickstart-function サービス名の横にあるチェックボックスをオンにします。
  7. Cloud Run functions のページ上部にある [削除] をクリックします。

省略可能なクリーンアップ手順

Compute Engine サービス アカウントに割り当てた Cloud SQL クライアントのロールを使用しない場合は、削除できます。

  1. Google Cloud コンソールの [IAM] ページに移動します。

    [IAM] に移動

  2. Compute Engine のデフォルトのサービス アカウントという名前の IAM アカウントの編集アイコン(鉛筆の形)をクリックします。
  3. Cloud SQL クライアントのロールを削除します。
  4. [保存] をクリックします。

このクイックスタートで有効にした API を使用しない場合は、無効にすることができます。

  • このクイックスタートで有効にした API:
    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
  1. Google Cloud コンソールの [API] ページに移動します。

    [API] に移動

  2. 無効にする API を選択し、[API を無効にする] ボタンをクリックします。

次のステップ

必要に応じて、Cloud SQL インスタンスの作成で詳細をご確認ください。

Cloud SQL インスタンスの PostgreSQL ユーザーデータベースの作成についても学習できます。

料金の詳細については、Cloud SQL for PostgreSQL の料金をご覧ください。

以下の詳細を確認する

また、他の Google Cloud アプリケーションから Cloud SQL インスタンスへの接続についても確認できます。