Cloud Functions の関数をローカルで検証できる Functions Framework のインストール方法

記事タイトルとURLをコピーする

こんにちは、G-gen の武井です。今回は Google Cloud (旧称 GCP) で Cloud Functions の関数をローカルで検証できる Functions Framework のインストール方法について紹介したいと思います。

cloud.google.com

前提条件

1. Linux 開発環境 を有効化

当社では全社員が Chromebook (Chrome OS) を使って業務をしています。
そのため本記事では、ローカル環境とは Chromebook のデベロッパー向け機能である「 Linux 開発環境」を指しています。
もちろん Chromebook でなくても Functions Framework は使用できるので、 Chromebook ではない環境へ Functions Framework をインストールする場合は、当項目はスキップしてください。

Chromebook の Linux 開発環境機能を用いると Chromebook 内に Linux (Debian) のコンテナが起動し、ターミナルで操作することができます。

Linux 環境を有効化するには 設定 > 詳細設定 > デベロッパー > Linux 開発環境 から同機能を有効化します。

設定画面 (このスクリーンショットでは既に有効化済み)

2. gcloud コマンドのインストール・初期化

※この手順は通常の gcloud コマンドと同じです。また、実施が必要なのは始めの1回だけです。

ドキュメント「 Cloud SDK のインストール 」に従い Linux 環境に gcloud コマンドをインストールします。

上記リンク先の Debian/Ubuntu の手順に従ってください。

インストールできたら gcloud init コマンドで初期化します。
アカウントやプロジェクトを指定しましょう。

Functions Framework の導入

1. venv・pip3 のインストール

Linux 開発環境にはあらかじめ Python3.x がインストールされています。
マイナーバージョンは Linux 開発環境を有効にしたタイミングによって異なる場合があり、私の場合は v3.9 がインストールされていました。

ただ、venv や pip についてはインストールされていませんでしたので、以下のコマンドを実行してインストールします。

sudo apt update && sudo apt install python3-venv python3-pip

2. venv 仮想環境の作成

Functions Framework を実行するための venv 仮想環境を準備して、そこにパッケージ類をインストールしたいと思います。

・プロジェクトの作成 (プロジェクト名は ”function” とする)

mkdir function

・仮想環境の作成と初期化

cd function
python3 -m venv venv
source venv/bin/activate

仮想環境が起動していると、プロンプトに仮想環境名が表示されます。

venv 仮想環境が起動している状態

3. Functions Framework のインストール

準備した venv 仮想環境に Functions Framework をインストールします。

pip3 install functions-framework

動作確認

1. ソースの準備

こちらの Quickstart にしたがって簡単な動作確認を実施したいと思います。

github.com

venv 仮想環境上に任意の作業ディレクトリを作成し、そこにソースファイル (main.py) を準備します。
Chromebook の場合、vscode.dev を使えばファイルの作成と Linux 開発環境への配置が簡単に行なえます。

vscode.dev から Linux コンテナのファイルを編集

vscode.dev から Linux コンテナのファイルを編集

2. Functions Framework の実行

ソースファイルを配置したディレクトリ上で Functions Framework をデバッグモードで実行します。"hello" はソースファイル上で定義した関数名です。

functions-framework --target hello --debug

ターミナル画面にデバッグが出力されますので、http://localhost:8080 にアクセスします。
関数で定義したとおり Hello world! が表示されれば Quickstart にしたがった動作確認は完了です。

関数 (Hello world!) が表示

武井 祐介 (記事一覧)

クラウドソリューション部

2022年4月より G-gen にジョイン。前職では AWS を中心にインフラ環境の設計構築、運用保守業務を担当。先日 Associate Cloud Engineer に続いて Professional Cloud Architect を取得。次は Professional DataEngineer の取得に向けて勉強中。

GWに念願の松山選手と同じゴルフシューズを手に入れることができて上機嫌な最近です。