Pack CLI を使用したビルド

Cloud Functions は、Google の Cloud Native Buildpack を使用して作成されたコンテナでユーザーコードを実行します。これらのコンテナは独自に作成できます。作成したコンテナは、Dockerpack ツールを使用してローカルで実行できます。

紹介動画

この動画では、Matt が Google Cloud 上の Buildpacks を紹介します。

設定

続行する前に、pack ツールDocker がインストールされていることを確認してください。

関数の作成

署名タイプの選択

関数を作成するには、最初に関数の署名タイプを決める必要があります。Functions Frameworks では、受信イベント用に次の 3 種類の署名タイプがサポートされています。

関数タイプ 署名タイプ 説明 ランタイム
HTTP でトリガーされる関数 http HTTP リクエストを受信して応答する関数。 すべて
バックグラウンド関数 event Cloud Functions 固有のイベント形式 JavaNodeGoPython
CloudEvent 関数 cloudevent 業界標準のイベント形式 Ruby.NET

関数の作成

Buildpack を使用してポータブル Docker コンテナに関数をビルドするには、次の pack build コマンドを使用します。次の変数を置き換えます。

  • YOUR_FUNCTION_SIGNATURE_TYPE は関数の署名タイプ(上の表を参照)にする必要があります。
  • YOUR_FUNCTION_NAME は、関数のエントリ ポイントで置き換えます。
  • YOUR_BUILDPACK_IMAGE_NAME は、生成されたコンテナに付ける名前に置き換えます。

Node.js

  pack build \
  --builder gcr.io/buildpacks/builder:v1 \
  --env GOOGLE_RUNTIME=nodejs \
  --env GOOGLE_FUNCTION_SIGNATURE_TYPE=YOUR_FUNCTION_SIGNATURE_TYPE \
  --env GOOGLE_FUNCTION_TARGET=YOUR_FUNCTION_NAME \
  YOUR_BUILDPACK_IMAGE_NAME

Python

  pack build \
  --builder gcr.io/buildpacks/builder:v1 \
  --env GOOGLE_RUNTIME=python \
  --env GOOGLE_FUNCTION_SIGNATURE_TYPE=YOUR_FUNCTION_SIGNATURE_TYPE \
  --env GOOGLE_FUNCTION_TARGET=YOUR_FUNCTION_NAME \
  YOUR_BUILDPACK_IMAGE_NAME

Go

  pack build \
  --builder gcr.io/buildpacks/builder:v1 \
  --env GOOGLE_RUNTIME=go \
  --env GOOGLE_FUNCTION_SIGNATURE_TYPE=YOUR_FUNCTION_SIGNATURE_TYPE \
  --env GOOGLE_FUNCTION_TARGET=YOUR_FUNCTION_NAME \
  YOUR_BUILDPACK_IMAGE_NAME

Java

  pack build \
  --builder gcr.io/buildpacks/builder:v1 \
  --env GOOGLE_RUNTIME=java \
  --env GOOGLE_FUNCTION_SIGNATURE_TYPE=YOUR_FUNCTION_SIGNATURE_TYPE \
  --env GOOGLE_FUNCTION_TARGET=YOUR_FUNCTION_NAME \
  YOUR_BUILDPACK_IMAGE_NAME

C#

  pack build \
  --builder gcr.io/buildpacks/builder:v1 \
  --env GOOGLE_RUNTIME=dotnet \
  --env GOOGLE_FUNCTION_SIGNATURE_TYPE=YOUR_FUNCTION_SIGNATURE_TYPE \
  --env GOOGLE_FUNCTION_TARGET=YOUR_FUNCTION_NAME \
  YOUR_BUILDPACK_IMAGE_NAME

このコマンドは、上の表で指定した署名タイプのいずれかに一致する HTTP リクエストを処理できる、実行可能な Docker コンテナに関数をパッケージ化します。

イメージをコンテナとして実行する

次のコマンドを使用してコンテナを実行します。

docker run --rm -p 8080:8080 YOUR_BUILDPACK_IMAGE_NAME

関数の呼び出し

ローカルで実行する関数を操作する方法については、実行中の関数の呼び出しページをご覧ください。