Cloud Functions のデプロイ

デプロイ

デプロイでは、関数のソースコードを含むアーカイブが Google Cloud Storage バケットにアップロードされます。ソースコードがアップロードされると、Cloud Build は自動的にコードをコンテナ イメージに構築し、そのイメージを Container Registry に push します。Cloud Functions はこのイメージを使用して、関数を実行するコンテナを作成します。

具体的な説明:

  1. デプロイを開始するとソースコードが圧縮され、.gcloudignore パターンに一致するファイルを除くすべてのファイルがここに含まれます。
  2. ソースコードが圧縮されてアップロードされると、ビルドが Cloud Build に送信されます。ビルドは、gcr.io/buildpacks/builder:v1 を指定して pack build コマンドを実行し、コンテナをビルドします。これにより、以下が実行されます。

    • ベース Ubuntu イメージを使用します。
    • 言語ランタイムをインストールします。
    • Functions Framework がまだインストールされていない場合は、インストールします。
    • ユーザーの依存関係をインストールします。
    • OCI イメージをエクスポートします。

キャッシュを使用すると、これらの処理が高速になります。プロセスの概要については、こちらの動画をご覧ください。

デプロイのオプション

Cloud Functions は、ローカルマシン、GitHub、Bitbucket ソース リポジトリ(Cloud Source Repositories 経由)からデプロイできます。また、Cloud Functions API から直接デプロイすることもできます。

デプロイ時に、Cloud Functions はランタイムに応じて特定のファイルを検索します。詳しくは、Cloud Functions の作成をご覧ください。関数のデプロイが完了する前に、関数が正常にデプロイされたことを確認するテスト リクエストが Cloud Functions から送信されます。

デプロイ間の移行

基盤となるインフラストラクチャがプロビジョニングされている場合、関数の最初のデプロイが完了するまでに数分かかることがあります。既存の関数の再デプロイは速くなり、受信トラフィックは関数の最新バージョンに自動的に移行されます。

基本コンセプト

関数をデプロイするさまざまな方法について学習する際に、いくつかの基本的な用語を理解しておくと便利です。関数をデプロイすると、Cloud Console には次のように表示されます。特に、[名前] フィールドと [実行済み関数] フィールドに注意してください。

  • [名前] フィールドは、関数に割り当てる登録名です。
  • [実行済み関数] フィールドは、デプロイされた関数が呼び出されたときに実行されるソースコード内の実際の関数の名前です。

これらの 2 つのフィールドは同じ名前にすることも、別々の名前にすることもできます。以下に挙げる関数の最初の 2 つには、実行された関数名とは異なる名前が登録されています。最後の関数では、両方のフィールドに同じ名前 helloHttp を使用しています。

関数のデプロイ プロセスを示すスクリーンショット

ローカルでのビルドとテスト

Cloud Functions は、オープンソース言語とフレームワークを使用してランタイム環境で実行されます。標準的なランタイムと開発ツールを使用して関数を作成し、ローカルでテストを行うことができます。

また、Functions Framework を使用して、サポートされているランタイムの関数をローカルで実行し、デバッグすることで、テストとデバッグを容易にすることもできます。

次のステップ