雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

Google Cloud Functionsのパラメータ情報をgcloudコマンドを使って一括取得する

これはなに?

Google Cloud Functionsのパラメータ情報を取得するコマンドを作ったので備忘録として残しておきます。コードはCloud Shellで動作確認しています。

コマンド紹介

コード

コードとしてはシンプルです。gconfigで取得した情報をCSVにして出力しています。

PROJECT_ID=`gcloud config get-value project`
echo $PROJECT_ID
cf_list=(`gcloud functions list --regions asia-northeast1 --format json|grep name|awk -F'/' '{print $6}'|sed s/\".//`)
for cf in "${cf_list[@]}"; do
    echo $cf
    gcloud functions describe $cf  --format json --region asia-northeast1 |jq -r "[.name,.runtime,.serviceAccountEmail,.timeout,.availableMemoryMb,.entryPoint,.environmentVariables.ENV_TYPE,.eventTrigger.eventType,.eventTrigger.resource,.httpsTrigger.securityLevel,.httpsTrigger.url,.maxInstances,.minInstances,.vpcConnector,.vpcConnectorEgressSettings]| @csv" >> function_param.csv
done

一行目でgconfig configに設定されているプロジェクトIDを取得しています。確認したい関数が存在するプロジェクトに合わせて事前に設定してください。

PROJECT_ID=gcloud config get-value project

リージョンは、 asia-northeast1 で固定にしていますが、複数リージョン確認したい場合は、gcloud functions describe の引数の --region の値を変更して実行してください。

取得項目

以下の項目を取得しています。コードを実行すると function_param.csv というファイルが生成されて、CSV形式で各関数の情報が格納されています。

パラメータ名 備考
name 関数名
runtime ランタイム
serviceAccountEmail サービスアカウント
timeout タイムアウト
availableMemoryMb メモリのサイズ(MB)
entryPoint エントリーポイント
environmentVariables.ENV_TYPE 環境変数
eventTrigger.eventType イベントトリガー(イベントタイプ)
eventTrigger.resource イベントトリガー(リソース)
httpsTrigger.securityLevel HTTPトリガー(セキュリティレベル)
httpsTrigger.url HTTPトリガー(URL)
maxInstances インスタンスの最大数
minInstances インスタンスの最小数
vpcConnector VPC コネクタ
vpcConnectorEgressSettings VPC コネクタ ルーティング

gconfigのコマンド詳細は以下を参照ください。

gcloud functions describe  |  Google Cloud CLI Documentation