これはなに?
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のコマンド詳細は以下を参照ください。