クラウドプラットフォーム初心者によるGCPサービスの体験記
GCPもといクラウドプラットフォーム初心者が、
Node.jsを使ったアプリケーションをGCPで作る際の内見的な記録。
Cloud Functionsを初めて体験した時の記録
Node.js クイックスタートから始める。
プロジェクト作成編
こんかいGCP上で使うAPI
- Cloud Functions:関数を作成、実行
- Cloud Build API:作った関数を実行できるようにビルド
関数作成編
関数は以下の4ステップで作成
- 構成
- コード
- デプロイ
- テスト
構成
例)
- トリガーのタイプ(何を引き金に関数を実行するか)
- 認証が必要か不要か
コード
関数をコーディングする。
デプロイ
コードの画面でデプロイボタンをクリックする。
テスト
デプロイ成功すると関数一覧が表示される。
動作テストは「操作」より「関数をテスト」で行う。
Cloud Functionsの感想
サーバーを意識することなく関数を作ることに集中できる。
デプロイまでの手順がとてもシンプルで、機能も必要最小限という感じ。
Cloud Functions の呼び出し
すべての Cloud Functions の関数に、関数を実行する方法とタイミングを決定するトリガーが存在します。
関数の種類
- HTTP関数
- イベントドリブン関数
- バックグラウンド関数(Node.js、Python、Go、Java )
- CloudEvent関数(.NET、Ruby、PHP)
冒頭のNode.js クイックスタートはHTTP関数を用いた関数を作った。今回はNode.jsを用いたアプリを作る予定なので、バックグラウンド関数を掘り下げていく。
イベントドリブン関数の「イベント」とは?
(イベントとトリガー )[https://cloud.google.com/functions/docs/concepts/events-triggers#events]に詳しく記載されている。
Cloud Storage、Firebaseなどのクラウド環境で発生するイベント=GCP上で発生するイベント=イベントドリブン関数の文脈の「イベント」
Cloud Functionsのイベントドリブン関数
次はCloud Storage のチュートリアル を進める。
GCPのサービス「Cloud Storage」と組みわせる。オブジェクトファイナライズイベントを用いた関数を作る。
ざっくりとした手順は次の通り
- 関数を定義(ローカル)
- 関数をデプロイ
- 関数をトリガーしてみる
今回作成する関数はCloud Strage上でのイベントをトリガーにしている。
トリガーは「どのランタイム」「どのファイル」「どんな操作(CRUD)」などを指定することができる。トリガーは関数をデプロイする際に設定する。
一つの関数に対して、複数のトリガーイベントを設定可能。
例
gcloud functions deploy helloGCS \
--runtime nodejs14 \
--trigger-resource YOUR_TRIGGER_BUCKET_NAME \
--trigger-event google.storage.object.delete
Cloud Runを初めて体験した時の記録
Cloud Run サーバーレス サービスの作成とデプロイのチュートリアルから始める。
CloudShellエディタ
VSCodeやAtomのようなエディタ。
できることの例
- プロジェクトのフォルダやファイル一覧や編集
- デプロイ
アプリの主な操作(デプロイ、アプリ作成、デバッグなど)は「Cloud Code」で選択できる。
Cloud Runの感想
CloudShellエディタを使うことで、クラウド上で実装からデプロイまで完結させられそうな感じ。Cloud Functionsと比べ多機能だが若干複雑。