Circle CIでCloud Functionをデプロイする
以前に Circle CIでCloud Functionをデプロイする - GeekFactory というエントリを書きましたが、gcloudコマンドでデプロイする方が簡単でした。gcloudコマンドでデプロイする手順を説明します。
GCPの設定
デプロイに使用するサービスアカウントを作成します。ロールは Project Editor を割り当てておきます。Cloud Functionsはまだベータ版なので専用のロールが用意されていないようです。
サービスアカウントを作成したら秘密鍵をダウンロードします。後からCircleCIで設定できるように、BASE64でエンコードしておきます。
base64 service-account-xxxxxxxx.json
次に、デプロイで使用するストレージバケットを作成します。名前は何でも構いません。
CircleCIの設定
下記の内容で .circleci/config.yml
を作成します。
version: 2 jobs: build: docker: - image: google/cloud-sdk working_directory: ~/repo steps: - checkout - run: echo "$GOOGLE_AUTH" | base64 -i --decode > "$HOME/gcp-key.json" - run: gcloud auth activate-service-account --key-file "$HOME/gcp-key.json" - run: gcloud --quiet config set project "$GOOGLE_PROJECT_ID" - run: gcloud beta functions deploy 関数名 --stage-bucket バケット名 --trigger-http
gcloud beta functions deploy
コマンドの使い方は Deploying from Your Local Machine | Cloud Functions Documentation | Google Cloud Platform を参照してください。
下記の環境変数を設定します。
ビルドが成功すればデプロイ完了です。