【Firebase】Google Cloud Functionの基礎

  1. 1. Google Cloud Consoleの概要
    1. 1.1 Google Cloud Consoleとは何か、どのような機能を持っているか
    2. 1.2 Google Cloud Consoleにログインする方法
    3. 1.3 Google Cloud Consoleの説明
  2. 2. Google Cloud プロジェクトの概要
    1. Googleのプロジェクトとは何か、なぜ必要なのか
    2. プロジェクトの作成方法
  3. 3. Google Cloud Consoleでのリソースの作成と管理
    1.  Google Cloud Consoleでどのようなリソースを作成できるか
    2. リソースの作成方法と管理方法
  4. 4. Google Cloud Functionsの基本
    1. Google Cloud Functionsとは何か、どのような機能を持っているか
    2. Google Cloud Functionsのアーキテクチャ
    3. Google Cloud Functionsの設定方法
  5. 5. Google Cloud Functionsでの自動化の実現
    1. Google Cloud Functionsを使った自動化の実現方法
    2. Cloud Functionのトリガータイプの説明
    3. Cloud Functionで使用されるランタイムの説明
  6. 6. Google Cloud Functionsでの実践的な活用
    1. Google Cloud Functionsを使用した具体的な例を紹介
    2. Google Cloud Functionsを使ったアプリケーションの構築方法の紹介
  7. 7. Google Cloud SDKの紹介
    1. Google Cloud SDKの主な機能
  8. 8.実践編
    1. プロジェクトの作成
    2. Google Cloud SDKをインストールする
    3. 1.ローカルでCloud Functionを開発する
      1. 1.1 Firebase CLIをインストールします。
      2. 1.3 開発用のディレクトリを作成し、移動します。
      3. 1.4 Firebaseプロジェクトにログインし、ローカルで開発するための設定をします。
      4. 1.5 開発したいCloud Functionを作成し、コードを記述します。例えば、以下のようにhelloWorldという名前の関数を作成します。
      5. 1.6 エミュレート
    4. 2.Cloud Functionsにデプロイする
      1. 2.1 関数をデプロイする前に、Firebaseプロジェクトを作成し、課金情報を設定しておく必要があります。
      2. 2.2 関数をデプロイします。
    5. 3Cloud SchedulerでCloud Functionsをスケジュールする
      1. 3.1 Google Cloud Consoleにログインし、Cloud Schedulerを開きます。
      2. 3.2 「ジョブを作成する」をクリックし、必要な情報を入力します。
      3. 3.3 「作成」をクリックしてジョブを作成します。
      4. 3.4 デプロイ後の関数のテスト

1. Google Cloud Consoleの概要

1.1 Google Cloud Consoleとは何か、どのような機能を持っているか

Google Cloud Consoleは、Google Cloud Platformの管理ツールであり、クラウドリソースの監視、管理、設定、デプロイを行うことができます。Google Cloud Consoleは、Webブラウザーからアクセスすることができ、多くの主要なクラウドサービスを提供しています。

Google Cloud Consoleの主な機能として、以下のようなものがあります。

  • リソースの監視やログの表示
  • 仮想マシンインスタンスの作成や削除
  • ストレージバケットの作成や管理
  • Cloud Functionsなどのデプロイ

1.2 Google Cloud Consoleにログインする方法

ログインするには、Google Cloud ConsoleのWebサイトにアクセスし、Googleアカウントでログインする必要があります。Google Cloud Platformの課金アカウントが必要であることに注意してください。

1.3 Google Cloud Consoleの説明

Google Cloud Consoleの主な画面には、左側にメニューが表示され、各種サービスへのアクセスや、プロジェクトの作成、管理などが行えます。また、右側には、選択したサービスやリソースに関する情報や、アクションを実行するためのボタンの他に、詳細設定やログ情報などが表示されます。

Google Cloud Consoleの左側のメニューには、以下のようなサービスがあります。

  • Compute Engine
  • Kubernetes Engine
  • Colud Storage
  • IAM & Admin

Google Cloud Consoleは、Google Cloud Platformの管理だけでなく、サードパーティー製品との連携も可能であるため、多様なニーズに対応することができます。

 

2. Google Cloud プロジェクトの概要

Google Cloud Consoleを利用するためには、プロジェクトを作成する必要があります。以下では、Googleのプロジェクトについて説明し、プロジェクトの作成方法について解説します。

Googleのプロジェクトとは何か、なぜ必要なのか

Google Cloud Platformを使用する場合、リソース(仮想マシンやデータストレージなど)は全てプロジェクト単位で管理されます。プロジェクトは、Google Cloud Platformのリソースを管理するための単位であり、プロジェクトごとにリソースの作成や設定、アクセス権限の管理などが行われます。

プロジェクトは、Google Cloud Platformの課金にも関わってきます。Google Cloud Platformでは、プロジェクトごとに課金アカウントを割り当てるため、課金情報の管理もプロジェクト単位で行われます。つまり、Google Cloud Platformのサービスを利用する場合は、必ずプロジェクトを作成する必要があります。

プロジェクトの作成方法

Google Cloud Consoleでプロジェクトを作成するには、以下の手順を行います。

  1. Google Cloud Consoleにログインします。
  2. ナビゲーションメニューで、「プロジェクト」を選択します。
  3. 「+ プロジェクトを作成」をクリックします。
  4. プロジェクト名を入力します。プロジェクトIDは自動的に生成されますが、任意のIDを入力することもできます。
  5. 「作成」をクリックします。

以上で、プロジェクトが作成されます。作成したプロジェクトを選択して、リソースの作成や管理を行うことができます。

Google Cloud Consoleでは、同じGoogleアカウントで複数のプロジェクトを作成することができます。また、プロジェクトごとに異なる課金アカウントを割り当てることもできます。

プロジェクトの作成には、Google Cloud Platformの課金アカウントが必要であることに注意してください。課金アカウントを持っていない場合は、先に課金アカウントの作成を行う必要があります。

3. Google Cloud Consoleでのリソースの作成と管理

Google Cloud Consoleでは、多種多様なクラウドリソースを作成し、管理することができます。以下では、Google Cloud Consoleで作成できるリソースと、それらの作成方法と管理方法について解説します。

 Google Cloud Consoleでどのようなリソースを作成できるか

​​Google Cloud Consoleで作成できるリソースには、以下のようなものがあります。

  • 仮想マシンインスタンス
  • ストレージバケット
  • データベース
  • ロードバランサー
  • ファイアウォールルール
  • Cloud Functions
  • App Engineアプリケーション

これらのリソースを作成することで、クラウドベースのアプリケーションやサービスを簡単に構築できます。

リソースの作成方法と管理方法

リソースを作成する場合は、Google Cloud Consoleの対応するメニューからリソースを選択し、必要な情報を入力することで作成できます。具体的な作成手順は、以下のようになります。

  1. Google Cloud Consoleにログインし、プロジェクトを選択します。
  2. ナビゲーションメニューで、作成するリソースの種類を選択します。
  3. 必要な情報を入力します。例えば、仮想マシンインスタンスを作成する場合は、マシンタイプやディスクのサイズ、ネットワークの設定などを指定します。
  4. 必要に応じて、そのリソースを管理するためのツールや情報を使用します。例えば、VMインスタンスを操作する場合は、SSHを使用して仮想マシンに接続することができます。

また、Google Cloud Consoleでは、作成したリソースを管理するためのツールや情報も提供されています。例えば、以下のようなことができます。

  • リソースの状態を監視する
  • ログを表示する
  • プロパティを変更する
  • ロードバランサーのトラフィックを制御する
  • ストレージバケットのアクセス権限を管理する

以上が、Google Cloud Consoleでのリソースの作成と管理に関する解説です。Google Cloud Consoleの豊富な機能を活用し、効率的なクラウドリソースの管理を行いましょう。

4. Google Cloud Functionsの基本

Google Cloud Functionsとは何か、どのような機能を持っているか

Google Cloud Functionsは、サーバーレスのコンピューティングサービスです。

Google Cloud Functionsを使用すると、特定のイベントに応じて自動的に関数が実行されます。たとえば、新しいファイルがストレージバケットにアップロードされた場合、そのファイルを処理する関数をトリガーすることができます。

Google Cloud Functionsは、次のような機能を持っています。

  • プログラムの実行に必要なリソースを自動的に割り当てることができるため、サーバー管理が不要である
  • トリガーに応じて関数を自動的に実行することができるため、イベントベースのコンピューティングが可能である
  • 複数のプログラミング言語をサポートしているため、開発者が好みの言語で関数を記述することができる
  • Google Cloud Platformの他のサービスと統合することができるため、柔軟なアプリケーション開発が可能である

Google Cloud Functionsのアーキテクチャ

Google Cloud Functionsは、イベント駆動型のアーキテクチャを採用しています。関数は、トリガーされたイベントに応じて実行されます。例えば、ストレージバケットに新しいファイルがアップロードされた場合、そのイベントをトリガーにして、関数が実行されます。

Google Cloud Functionsのアーキテクチャは、以下のようになっています。

  1. イベントが発生する
  2. トリガーがGoogle Cloud Functionsに送信される
  3. 関数が実行され、必要なリソースが自動的に割り当てられる

関数の実行が完了すると、必要に応じて他のGoogle Cloud Platformサービスに対してアクションが実行される

Google Cloud Functionsの設定方法

  1. Google Cloud Consoleにログインします。
  2. 関数を作成するプロジェクトを選択します。
  3. ナビゲーションメニューで、「Cloud Functions」を選択します。
  4. 「関数の作成」をクリックします。
  5. 関数の詳細設定を入力します。例えば、関数名、トリガー、関数のエントリーポイント、メモリの割り当てなどを指定します。
  6. 必要に応じて関数のコードをアップロードします。
  7. 「デプロイ」をクリックして関数をデプロイします。
  8. 関数がデプロイされると、トリガーに応じて自動的に関数が実行されるようになります。

Google Cloud Functionsの設定は、プログラミング言語によって異なります。一般的な設定方法については、以下のようなものがあります。

  • Node.js:JavaScriptファイルを作成し、exportsキーワードを使用して関数をエクスポートすることで、関数を作成します。
  • Python:関数を含むPythonファイルを作成し、main関数を定義することで、関数を作成します。
  • Go:Go言語で関数を記述し、main関数を定義して関数を作成します。
  • Java:Javaで関数を記述し、MavenまたはGradleを使用して関数をパッケージ化し、JARファイルとしてアップロードして関数を作成します。

以上が、Google Cloud Functionsの基本に関する説明と、関数の設定方法についての解説です。Google Cloud Functionsは、イベント駆動型のコンピューティングサービスとして、柔軟で効率的なアプリケーション開発を実現するための重要なツールです。

5. Google Cloud Functionsでの自動化の実現

以下は、Google Cloud Functionsでの自動化の実現方法やトリガータイプ、ランタイムについての解説です。

Google Cloud Functionsを使った自動化の実現方法

Google Cloud Functionsを使用することで、自動化されたタスクを実行することができます。例えば、ストレージバケットに新しいファイルがアップロードされた場合、そのファイルを自動的に処理する関数をトリガーすることができます。また、定期的にタスクを実行するスケジュールトリガーを設定することもできます。

Google Cloud Functionsを使用して自動化を実現するためには、次の手順を行います。

  1. Google Cloud Consoleにログインし、プロジェクトを選択します。
  2. ナビゲーションメニューで、Cloud Functionsを選択します。
  3. 「関数の作成」をクリックし、関数の詳細設定を入力します。
  4. トリガーを設定します。例えば、ストレージバケットに新しいファイルがアップロードされた場合、そのイベントをトリガーにして関数が実行されるように設定します。
  5. 関数のコードをアップロードしてデプロイします。
  6. 関数がトリガーに応じて自動的に実行されるようになります。

Google Cloud Functionsを使用して自動化を実現することで、タスクの自動化や運用コストの削減、エラーの削減などのメリットが得られます。

Cloud Functionのトリガータイプの説明

Google Cloud Functionsでは、様々なトリガータイプをサポートしています。以下に、主なトリガータイプについて説明します。

  • HTTPトリガー:HTTPリクエストをトリガーにして関数を実行します。
  • ストレージトリガー:ストレージバケットに対するイベントをトリガーにして関数を実行します。
  • Pub/Subトリガー:Google Cloud Pub/Subに対するメッセージをトリガーにして関数を実行します。
  • スケジュールトリガー:定期的に関数を実行します。

これらのトリガータイプを使用することで、特定のイベントに応じて関数を自動的に実行することができます。

Cloud Functionで使用されるランタイムの説明

Google Cloud Functionsでは、複数のプログラミング言語のランタイムがサポートされています。以下に、主なランタイムについて説明します。

  • Node.js:JavaScriptのランタイムです。JavaScriptで記述された関数を実行することができます。
  • Python:Pythonのランタイムです。Pythonで記述された関数を実行することができます。
  • Go:Go言語のランタイムです。Goで記述された関数を実行することができます。
  • .NET:.NET Frameworkと.NET Coreのランタイムがサポートされています。C#やF#で記述された関数を実行することができます。
  • Java:Javaのランタイムです。Javaで記述された関数を実行することができます。

これらのランタイムを使用することで、開発者は好きなプログラミング言語で関数を記述することができます。また、各ランタイムには、関数の実行に必要なライブラリやモジュールが含まれているため、簡単に関数を作成することができます。

Google Cloud Functionsは、イベント駆動型のサーバーレスコンピューティングサービスであり、自動化されたタスクの実行やアプリケーションの開発に役立つ重要なツールです。関数のトリガータイプやランタイムを選択することで、開発者は自分のニーズに合わせた関数を作成することができます。

6. Google Cloud Functionsでの実践的な活用

Google Cloud Functionsは、様々なタスクを自動化するために使用することができます。以下に、Google Cloud Functionsを使用した具体的な例をいくつか紹介します。

Google Cloud Functionsを使用した具体的な例を紹介

Hello worldと出力する関数をクラウド上で定時実行するという簡単なケースを考えます。

Google Cloud Functionsを使ったアプリケーションの構築方法の紹介

Google Cloud Functionsを使用して、サーバーレスアプリケーションを構築することができます。以下に、Google Cloud Functionsを使用したアプリケーションの構築方法を紹介します。

  1. Google Cloud Consoleにログインし、プロジェクトを選択します。
  2. ナビゲーションメニューで、Cloud Functionsを選択します。
  3. 「関数の作成」をクリックし、関数の詳細設定を入力します。
  4. トリガーを設定します。例えば、HTTPリクエストをトリガーにして関数が実行されるように設定します。
  5. 関数のコードをアップロードしてデプロイします。
  6. アプリケーションのロジックを実装し、関数に組み込みます。たとえば、フォームから受け取ったデータを処理する、データベースからデータを取得するなどの処理を実装します。
  7. 関数がトリガーに応じて自動的に実行されるようになります。

Google Cloud Functionsを使用したアプリケーションの構築では、関数のトリガータイプやランタイム、依存関係の管理など、多くの要素を考慮する必要があります。しかし、Google Cloud Functionsは、柔軟で効率的なアプリケーション開発を実現するための強力なツールであるため、開発者にとって重要な技術です。

7. Google Cloud SDKの紹介

Google Cloud SDKは、Google Cloud Platformの開発、デプロイ、および管理のためのコマンドラインツールです。Google Cloud SDKを使用することで、Google Cloud Consoleで行うことができる多くの操作をコマンドラインで行うことができます。Google Cloud SDKは、MacOS、Linux、Windowsなどの多くのプラットフォームで利用可能です。

Google Cloud SDKの主な機能

17.1 gcloudコマンド

gcloudコマンドは、Google Cloud Platformのリソースを操作するためのコマンドラインツールです。gcloudコマンドを使用することで、Google Cloud Consoleで行うことができる多くの操作をコマンドラインで行うことができます。例えば、プロジェクトの作成、デプロイの実行、インスタンスの作成や管理などが可能です。

17.2 gsutilコマンド

gsutilコマンドは、Google Cloud Storageを管理するためのコマンドラインツールです。gsutilコマンドを使用することで、Google Cloud Storageでファイルのアップロードやダウンロード、バケットの作成や管理などが可能です。

17.3 bqコマンド

bqコマンドは、Google BigQueryを操作するためのコマンドラインツールです。bqコマンドを使用することで、BigQueryでデータのクエリや操作を行うことができます。

17.4 Cloud SQL Proxy

Cloud SQL Proxyは、Google Cloud SQLに安全にアクセスするためのツールです。Cloud SQL Proxyを使用することで、Google Cloud SQLのインスタンスに接続し、データベースへの安全なアクセスを実現することができます。

  1. Google Cloud SDKのインストール方法

Google Cloud SDKのインストールには、以下の手順を実行します。

Google Cloud SDK公式サイトから、対応するプラットフォーム向けのインストーラーをダウンロードします。

インストーラーを実行して、Google Cloud SDKをインストールします。

ターミナルやコマンドプロンプトを開き、gcloud initコマンドを実行して、Google Cloud SDKを初期化します。

Google Cloud SDKを使用するために、必要な認証情報を取得します。

8.実践編

ここではHello worldを実行するケースを考えます。

プロジェクトの作成

Firebase Functionsを使用するには、Firebaseプロジェクトの作成が必要です。Firebaseプロジェクトを作成するには、以下の手順を行います。

  1. Firebaseコンソールにアクセスします。
  2. 「プロジェクトを作成」をクリックします。
  3. 新しいプロジェクトに名前を付けます。
  4. 必要に応じて、Google Analyticsを有効にしてFirebaseプロジェクトに追加することができます。
  5. Firebaseプロジェクトが作成されたら、「コンソールに入る」をクリックしてFirebaseコンソールにアクセスします。
  6. Firebaseプロジェクトが作成されると、Firebase CLIを使用してローカルでFirebase Functionsを開発するための設定を行うことができます。

以上の手順を実行することで、Firebase Functionsの開発が可能になります。

Google Cloud SDKをインストールする

最初に、Google Cloud SDKをインストールする必要があります。以下の手順に従って、Google Cloud SDKをインストールしてください。

Google Cloud SDK公式サイトから、対応するプラットフォーム向けのインストーラーをダウンロードします。

MACのM1の場合は、下記真ん中のバージョンですね。

2.インストーラーを実行して、Google Cloud SDKをインストールします。

2.1 homeディレクトリにzipを展開したフォルダを入れる。

2.2 CLIでhomeディレクトリで下記を実行

./google-cloud-sdk/install.sh

いくつか質問が出ますが、基本的にはyでOKです。

2.3 一度ターミナルを閉じます。これで、Pathが反映します。

echo $PATH

を実行します。/google-cloud-sdk/binにPathが通っていれば完了です。

2.4ターミナルやコマンドプロンプトを開き、

gcloud init

を実行して、Google Cloud SDKを初期化します。

Google Cloud SDKを使用するために、必要な認証情報を取得します。

これで完了です。CLIからプロジェクトに接続できました。

1.ローカルでCloud Functionを開発する

https://firebase.google.com/docs/cli?hl=ja

1.1 Firebase CLIをインストールします。

npm install -g firebase-tools

1.3 開発用のディレクトリを作成し、移動します。

mkdir my-function
cd my-function

1.4 Firebaseプロジェクトにログインし、ローカルで開発するための設定をします。

firebase login

firebase init functions

1.5 開発したいCloud Functionを作成し、コードを記述します。例えば、以下のようにhelloWorldという名前の関数を作成します。

 

“`

exports.helloWorld = (req, res) => {

  res.send(‘Hello World’);

};

“`

 

1.6 エミュレート

ローカルでの関数の実行  |  Cloud Functions for Firebase

正しく、関数が動くかどうかローカルでテストします。

Emulator Suiteのインストール:Firebase CLIを使用してEmulator Suiteをインストールします。以下のコマンドを実行してください。

   cd <プロジェクトフォルダ>

   firebase init emulators

エミュレートしたいバックエンドのリソースの設定:必要なバックエンドのリソースを設定しす。たとえば、Cloud FirestoreやRealtime Database、Authentication、Pub/Subのいずれかを使用する場合、それらを設定する必要があります。

Cloud Functionsのエミュレータの起動:次に、以下のコマンドを実行して、Cloud Functionsのエミュレータを起動します。ローカルにサーバーが立ち上がります。

   firebase emulators:start --only functions

ローカルで関数のテスト:エミュレータが起動したら、ローカルで関数をテストすることができます。HTTPS関数をテストする場合は、以下のURLを使用します。

   http://localhost:5001/<project-id>/<region>/<function-name>

例)✔  functions[us-central1-scrape]: http function initialized (http://127.0.0.1:5001/xxx-xxx/xxx/xxx).

   バックグラウンドでトリガーされる関数をテストする場合は、エミュレータにトリガーイベントを送信する必要があります。たとえば、Realtime Databaseからのトリガーイベントをシミュレートする場合は、以下のコマンドを実行します。

   firebase emulators:exec --only database 'firebase database:push /foo/bar {}'

以上の手順を実行することで、Firebase Emulator Suiteを使用してCloud Functionsのエミュレートを行うことができます。

2.Cloud Functionsにデプロイする

2.1 関数をデプロイする前に、Firebaseプロジェクトを作成し、課金情報を設定しておく必要があります。

左下の課金情報をBlazeにします。(従量課金になります。最初は無料枠があります。)

2.2 関数をデプロイします。

firebase deploy --only functions

3Cloud SchedulerでCloud Functionsをスケジュールする

3.1 Google Cloud Consoleにログインし、Cloud Schedulerを開きます。

https://console.cloud.google.com/

検索窓で「Cloud Scheduler」を検索

3.2 「ジョブを作成する」をクリックし、必要な情報を入力します。

例えば、以下のように設定します。

  • – ターゲット: HTTP
  • – URL: デプロイしたCloud FunctionのURL
  • – HTTPメソッド: GET
  • – 開始時間: 現在時刻から10分後
  • – タイムゾーン: Asia/Tokyo
  • – スケジュール: 1日ごとに

3.3 「作成」をクリックしてジョブを作成します。

ジョブを作成したら、実行してテストします。エラーがなく実行されれば成功です。

 

3.4 デプロイ後の関数のテスト

Google Cloud Platform
Google Cloud Platform lets you build, deploy, and scale applications, websites, and services on the same infrastructure as Google.

上記URLの一番右 テストより、関数をテスト実行する事が可能です。

コメント

タイトルとURLをコピーしました