Open1

クラウドプラットフォーム初心者によるGCPサービスの体験記

portgroundportground

GCPもといクラウドプラットフォーム初心者が、
Node.jsを使ったアプリケーションをGCPで作る際の内見的な記録。

Cloud Functionsを初めて体験した時の記録

Node.js クイックスタートから始める。

プロジェクト作成編

こんかいGCP上で使うAPI

  • Cloud Functions:関数を作成、実行
  • Cloud Build API:作った関数を実行できるようにビルド

関数作成編

関数は以下の4ステップで作成

  1. 構成
  2. コード
  3. デプロイ
  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」と組みわせる。オブジェクトファイナライズイベントを用いた関数を作る。

ざっくりとした手順は次の通り

  1. 関数を定義(ローカル)
  2. 関数をデプロイ
  3. 関数をトリガーしてみる

今回作成する関数は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と比べ多機能だが若干複雑。