Cloud Run 関数から Cloud SQL for PostgreSQL に接続する
Google Cloud コンソールとクライアント アプリケーションを使用して、PostgreSQL インスタンスに接続された Cloud Run 関数にサンプルアプリをデプロイする方法を学習します。
すべてのステップを適切なタイミングで完了した場合、通常、このクイックスタートで作成されるリソースにかかる費用は 1 ドル(USD)未満です。
始める前に
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Cloud Run 関数で Cloud SQL サンプルアプリを実行するために必要な Cloud APIs を有効にします。
コンソール
[API を有効にする] をクリックして、このクイックスタートで必要な API を有効にします。
これにより、次の API が有効になります。
- Cloud Run 関数の 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
gcloud
次のボタンをクリックして Cloud Shell を開きます。これにより、ブラウザから Google Cloud リソースにコマンドラインで直接アクセスできます。Cloud Shell を使用して、このクイックスタートで紹介する
gcloud
コマンドを実行できます。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 関数の 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
ユーザーに、Cloud Run 関数起動元の IAM ロールを追加します。
Cloud SQL の設定
Cloud SQL インスタンスを作成する
データベースの作成
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- [
quickstart-instance
] を選択します。 - SQL ナビゲーション メニューから [データベース] を選択します。
- [データベースを作成] をクリックします。
- [新しいデータベース] ダイアログ ボックスの [データベース名] フィールドに「
quickstart-db
」と入力します。 - [作成] をクリックします。
gcloud
gcloud
sql databases create
コマンドを実行してデータベースを作成します。
gcloud sql databases create quickstart-db --instance=quickstart-instance
ユーザーを作成する
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [ユーザー] を選択します。
- [ユーザー アカウントを追加] をクリックします。
- quickstart-instance の [ユーザー アカウントを追加] ページで、次の情報を追加します。
- [ユーザー名] フィールドに「
quickstart-user
」と入力します。 - [パスワード] フィールドに、データベース ユーザーのパスワードを指定します。このクイックスタートの後半で使用するので、メモしておいてください。
- [ユーザー名] フィールドに「
- [追加] をクリックします。
gcloud
次のコマンドを実行する前に、次のように置き換えます。
- DB_PASS はデータベース ユーザーのパスワードに置き換えます。このクイックスタートの後半で使用するので、メモしておいてください。
gcloud sql users create
コマンドを実行してリソースを作成します。
gcloud sql users create quickstart-user \ --instance=quickstart-instance \ --password=DB_PASS
ユーザー名の長さの上限は、オンプレミス PostgreSQL の場合と同じです。
Cloud Run 関数のサービス アカウントを構成する
コンソール
-
Google Cloud コンソールの [IAM] ページに移動します。
- Compute Engine のデフォルトのサービス アカウントという名前のサービス アカウントの鉛筆アイコンをクリックします。
- [別のロールを追加] をクリックします。
- Cloud SQL クライアントという名前のロールを追加します。
- [保存] をクリックします。
gcloud
-
次の
gcloud
コマンドを実行して、プロジェクトのサービス アカウントのリストを取得します。gcloud iam service-accounts list
- Compute Engine サービス アカウントのメールアドレスをコピーします。
- 次のコマンドを実行して、Cloud SQL クライアントのロールを Compute Engine サービス アカウントに追加します。
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/cloudsql.client"
関数を作成する
-
Google Cloud コンソールで Cloud Run 関数のページに移動します。
- [関数を作成] をクリックします。
- [環境] で [第 2 世代] を選択します。
- [関数名] フィールドに「
quickstart-function
」と入力します。 - [認証] リージョンで、[未認証の呼び出しを許可する] を選択します。
- [次へ] をクリックします。
- [ランタイム] メニューから、次のいずれかの言語を選択します。
- [ソースコード] メニューで、[インライン エディタ] が選択されていることを確認します。このステップでは、エディタで指定されているデフォルト関数を使用します。
言語 | バージョン番号 |
---|---|
Go | 1.20 |
Java | 17 |
Node.js | 18 |
Python | 3.10 |
関数をデプロイする
- Cloud Run 関数のページの下部にある [デプロイ] をクリックします。Google Cloud コンソールから、関数の詳細ページにリダイレクトします。
- 関数のデプロイが完了後、[URL] リンクをクリックすると、
Hello, World!
というメッセージがウェブブラウザに表示されます。
Cloud SQL サンプルアプリを関数としてデプロイする
Cloud SQL サンプルアプリを Cloud Run 関数として構成し、デプロイします。まず、Cloud Shell を使用してサンプルアプリの構成とビルドを行います。次に、Cloud Run 関数を使用してサンプルアプリをデプロイします。
パブリック IP / プライベート IP のどちらを使用して Cloud SQL for PostgreSQL インスタンスを作成するかに基づき、アプリの構成、ビルド、デプロイを行う方法が 2 つあります。
Cloud SQL サンプルアプリを構成する
サンプルアプリをデプロイする
サンプルを Cloud Run 関数にデプロイする手順は、Cloud SQL インスタンスに割り当てられた IP アドレスの種類によって異なります。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
quickstart-instance
インスタンスを選択して [インスタンスの詳細] ページを開きます。- ページ上部にあるアイコンバーで、[削除] をクリックします。
- [インスタンスの削除] ダイアログ ボックスで「
quickstart-instance
」と入力し、[削除] をクリックしてインスタンスを削除します。 -
Google Cloud コンソールで Cloud Run 関数のページに移動します。
quickstart-function
サービス名の横にあるチェックボックスをオンにします。- Cloud Run 関数のページ上部にある [削除] をクリックします。
省略可能なクリーンアップ手順
Compute Engine サービス アカウントに割り当てた Cloud SQL クライアントのロールを使用しない場合は、削除できます。
-
Google Cloud コンソールの [IAM] ページに移動します。
- Compute Engine のデフォルトのサービス アカウントという名前の IAM アカウントの編集アイコン(鉛筆の形)をクリックします。
- Cloud SQL クライアントのロールを削除します。
- [保存] をクリックします。
このクイックスタートで有効にした API を使用しない場合は、無効にすることができます。
- このクイックスタートで有効にした API:
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
Google Cloud コンソールの [API] ページに移動します。
無効にする API を選択し、[API を無効にする] ボタンをクリックします。
次のステップ
必要に応じて、Cloud SQL インスタンスの作成で詳細をご確認ください。Cloud SQL インスタンスの PostgreSQL ユーザーとデータベースの作成についても学習できます。
料金の詳細については、Cloud SQL for PostgreSQL の料金をご覧ください。
以下の詳細を確認する
また、他の Google Cloud アプリケーションから Cloud SQL インスタンスへの接続についても確認できます。