更新内容
UPDATE
2022-03-29:第 2 世代関数(ベータ版)の内容に変更しました。CREATE
2021-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
しかデプロイされません。
コメント