更新内容
UPDATE2022-03-29:第 2 世代関数(ベータ版)の内容に変更しました。CREATE2021-10-01:記事を公開しました。
この記事では、コマンドライン(gcloud)から第 2 世代関数をデプロイするときのオプションをまとめて紹介しています。
第 2 世代関数をデプロイするためには、Cloud Build API の他にも Cloud Run Admin API と Artifact Registry API を有効化する必要があるので、忘れずに有効化しておきましょう。
# Cloud Build APIを有効化
$ gcloud services enable cloudbuild.googleapis.com
# Cloud Run Admin APIを有効化
$ gcloud services enable run.googleapis.com
# Artifact Registry APIを有効化
$ gcloud services enable artifactregistry.googleapis.com目次
HTTP トリガー
$ gcloud beta functions deploy FUNCTION_NAME \
--gen2 \
--trigger-http \
--allow-unauthenticated \
--region=asia-northeast1 \
--runtime=python39 \
--source=. \
--entry-point=main--gen2:第 2 世代関数--trigger-http:HTTP トリガー--allow-unauthenticated:パブリック関数に変更、すべての呼び出しを許可する--region:リージョンを指定--runtime:Python の場合、python38、python39から選択する--source:デプロイするディレクトリを指定、.が指定されるとカレントディレクトリ--entry-point:Cloud Functions が実行されたときに一番最初に実行される関数の名前
イベントトリガー
Cloud Pub/Sub トリガー
$ gcloud beta functions deploy FUNCTION_NAME \
--gen2 \
--trigger-topic=<TOPIC_NAME> \
--region=asia-northeast1 \
--runtime=python39 \
--source=. \
--entry-point=main--gen2:第 2 世代関数--trigger-topic:Pub/Sub が実行されるトピックの名前--region:リージョンを指定--runtime:Python の場合、python38、python39から選択する--source:デプロイするディレクトリを指定、.が指定されるとカレントディレクトリ--entry-point:Cloud Functions が実行されたときに一番最初に実行される関数の名前
Cloud Storage トリガー
$ gcloud beta functions deploy FUNCTION_NAME \
--gen2 \
--trigger-event=google.storage.object.finalize \
--trigger-resource=<BUCKET_NAME> \
--region=asia-northeast1 \
--runtime=python39 \
--source=. \
--entry-point=main--gen2:第 2 世代関数--trigger-event:GCS でトリガーされる4つのトリガーのいずれかを指定google.storage.object.finalize:新しいオブジェクトが作成されたときgoogle.storage.object.delete:オブジェクトが削除されたときgoogle.storage.object.archive:オブジェクトがアーカイブまたは削除されたときgoogle.storage.object.metadataUpdate:オブジェクトのメタデータが更新されたとき
--trigger-resource:GCS のバケット名--region:リージョンを指定--runtime:Python の場合、python38、python39から選択する--source:デプロイするディレクトリを指定、.が指定されるとカレントディレクトリ--entry-point:Cloud Functions が実行されたときに一番最初に実行される関数の名前
その他のオプション
環境変数をセットする
--env-vars-file=.env.yamlすべての環境変数の定義を含む YAML ファイルへのパスを指定します。
ACCESS_TOKEN: **********************
LOGIN_ID: **********************
LOGIN_PW: **********************タイムアウトする時間を変更する
--timeout=60sデフォルトは 60 秒。60 秒以上かかる処理を実行したい場合に設定します。
第 2 世代関数では、HTTP 関数で最大 60 分、イベント関数で最大 10 分までの処理を実行できるようになりました。
メモリを変更する
--memory=256MBデフォルトは 256MB。スクレイピングやデータ処理などの重たい処理を行うときに設定します。
第 2 世代関数では、128MB、256MB、512MB、1024MB、2048MB、4096MB、8192MB、16384MB の値を設定できるようになりました。
デプロイするファイル・フォルダを制限する
gcloudコマンドではないですが、デプロイするフォルダと同じ階層に.gcloudignoreファイルを作成しておくと、デプロイするファイルやディレクトリを指定することができます。
*
!.
!main.py
!requirements.txtこのように.gcloudignoreファイルを設定すると、main.pyとrequirements.txtしかデプロイされません。


コメント