Cloud Functions から Cloud SQL for MySQL に接続する
Google Cloud コンソールとクライアント アプリケーションを使用して、MySQL インスタンスに接続された Cloud Functions にサンプルアプリをデプロイする方法を学習します。
すべてのステップを適切なタイミングで完了した場合、通常、このクイックスタートで作成されるリソースにかかる費用は 1 ドル(USD)未満です。
始める前に
- Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud Functions で Cloud SQL サンプルアプリを実行するために必要な Cloud APIs を有効にします。
コンソール
[API を有効にする] をクリックして、このクイックスタートで必要な API を有効にします。
これにより、次の API が有効になります。
- Cloud 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
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 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
ユーザーに、Cloud Functions 起動元 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
Cloud SQL のユーザー名の長さの上限は、オンプレミス MySQL と同じで、MySQL 8.0 では 32 文字、それ以前のバージョンでは 16 文字です。
Cloud Functions サービス アカウントを構成する
コンソール
-
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 Functions] ページに移動します。
- [関数を作成] をクリックします。
- [環境] で [第 2 世代] を選択します。
- [関数名] フィールドに「
quickstart-function
」と入力します。 - [認証] リージョンで、[未認証の呼び出しを許可する] を選択します。
- [次へ] をクリックします。
- [ランタイム] メニューから、次のいずれかの言語を選択します。
- [ソースコード] メニューで、[インライン エディタ] が選択されていることを確認します。このステップでは、エディタで指定されているデフォルト関数を使用します。
言語 | バージョン番号 |
---|---|
Go | 1.20 |
Java | 17 |
Node.js | 18 |
Python | 3.10 |
関数をデプロイする
- Cloud Functions のページの下部にある [デプロイ] をクリックします。Google Cloud コンソールから、関数の詳細ページにリダイレクトします。
- 関数のデプロイが完了後、[URL] リンクをクリックすると、
Hello, World!
というメッセージがウェブブラウザに表示されます。
Cloud SQL サンプルアプリを関数としてデプロイする
Cloud SQL サンプルアプリを Cloud Functions の関数として構成し、デプロイします。まず、Cloud Shell を使用してサンプルアプリの構成とビルドを行います。次に、Cloud Functions を使用してサンプルアプリをデプロイします。
パブリック IP / プライベート IP のどちらを使用して Cloud SQL for MySQL インスタンスを作成するかに基づき、アプリの構成、ビルド、デプロイを行う方法が 2 つあります。
Cloud SQL サンプルアプリを構成する
サンプルアプリをデプロイする
サンプルを Cloud Functions にデプロイする手順は、Cloud SQL インスタンスに割り当てられた IP アドレスの種類によって異なります。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
quickstart-instance
インスタンスを選択して [インスタンスの詳細] ページを開きます。- ページ上部にあるアイコンバーで、[削除] をクリックします。
- [インスタンスの削除] ダイアログ ボックスで「
quickstart-instance
」と入力し、[削除] をクリックしてインスタンスを削除します。 -
Google Cloud コンソールで、[Cloud Functions] ページに移動します。
quickstart-function
サービス名の横にあるチェックボックスをオンにします。- [Cloud Functions] ページの上部にある [削除] をクリックします。
省略可能なクリーンアップ手順
Compute Engine サービス アカウントに割り当てた Cloud SQL クライアントのロールを使用しない場合は、削除できます。
-
Google Cloud Console の [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 Console の [API] ページに移動します。
無効にする API を選択し、[API を無効にする] ボタンをクリックします。
次のステップ
必要に応じて、Cloud SQL インスタンスの作成で詳細をご確認ください。Cloud SQL インスタンスの MySQL ユーザーとデータベースの作成についても学習できます。
料金の詳細については、Cloud SQL for MySQL の料金をご覧ください。
以下の詳細を確認してください。
また、他の Google Cloud アプリケーションから Cloud SQL インスタンスへの接続についても確認できます。