📝

GitHubからCloud Functionsに継続的にデプロイする

2024/08/23に公開

概要

GitHubを使ってCloud Functionsにデプロイする方法は以下のリンクに記載されています。

https://cloud.google.com/build/docs/deploying-builds/deploy-functions?hl=ja

ここでは手順を一つずつ確認していきたいと思います。

処理の流れ

Cloud Functions APIの有効化や、Cloud BuildのサービスアカウントにCloud Functionsデベロッパーのロールを付与したあと、Cloud Buildの設定ページを開きます。

「トリガーの作成」をクリックします。

トリガーの設定を行います。トリガーの名前や、リージョン、を設定します。イベントは「ブランチにpushする」にします。

ソースリポジトリを選択すると、これまで利用したリポジトリとともに、「新しいリポジトリに接続」が表示されますので、必要に応じて選択します。

「新しいリポジトリに接続」を選択すると、GitHubの認証とリポジトリの選択ができるようになります。

構成はcloudbuild.yamlを選択します。cloudfunctions.yamlには、以下のように記述します。

steps:
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
  args:
  - gcloud
  - functions
  - deploy
  - FUNCTION_NAME # 関数名
  - --region=FUNCTION_REGION # リージョン
  - --source=.
  - --trigger-http # トリガー
  - --runtime=RUNTIME # ランタイム 例えばpython312

ここで、以下を記述すると、GitHubにプッシュされると同時にCloud Functionsにデプロイされるようになります。

  - gcloud
  - functions
  - deploy

他には、以下のようなものを指定したりします。

  - --gen2 # 第2世代のランタイムを使用する場合
  - --entry-point=hoge # エントリーポイントを指定する場合
  - --timeout=60s # タイムアウトを指定する場合
  - --memory=256MB # メモリを指定する場合
  - --project=$PROJECT_ID # プロジェクトIDを指定する場合
  - --env-vars-file=.env.yaml # 環墩変数を.env.yamlで指定する場合

環境変数を指定する方法は、こちらを参照してください。

https://cloud.google.com/functions/docs/configuring/env-var?hl=ja

例えば、以下のように記述します。

 FOO: bar
 BAZ: boo

最後に「作成」をクリックすると、トリガーが作成されます。これで、GitHubにプッシュされるとCloud Functionsにデプロイされるようになります。

GitHubで編集を提案

Discussion