BashシェルスクリプトでCloud Loggingへのログ出力をシンプルに実装する方法
はじめに
既存のシェルスクリプトから GCP の Cloud Logging にログ出力させる必要がありました。
時間をかけずに実装できないか考え、 Bashシェルスクリプトでログ出力をシンプルに実現する方法 に多少手を加えて実現できたので紹介します。
検証環境
事前準備(GCP上の設定)
今回は Cloud Run 上でシェルスクリプトを実行させましたが、 Compute Engine や GKE 上でも同じ方法で容易に実現できました。
事前に1つだけ必要な設定があります。
サービスアカウント に Logging に書き込みを行う権限を設定する必要があります。
Cloud Runのサービスアカウント
Compute Engineのサービスアカウント
上記に記載されている サービスアカウント ( @ で区切られていて、メールアドレスのようになっています。)をメモし、IAM設定ページから見つけましょう。
見つけたら、そちらのサービスアカウントに Logging 書き込みの権限を付与しておきます。
スクリプトでログを出力
Bashシェルスクリプトでログ出力をシンプルに実現する方法 を事前に一読しておくと良いです。
シェルスクリプト全体の標準出力、標準エラー出力をすべてGCPの Logging に流し込むためには、以下のような記述を行います。
exec 1> >(...)
の中の処理には、スクリプト全体の標準出力が流れて来ます。
exec 2> >(...)
の中の処理には、スクリプト全体の標準エラー出力が流れて来ます。
これらを1行ずつ読み込んで gcloud
コマンドで Logging に書き込みます。
ここからおわかりと思いますが、 gcloud
コマンドがインストールされていることが前提です。「事前準備」でサービスアカウントに正しく設定が行われていれば権限エラーは発生しないはずです。
ひとこと
今回はやや説明が優しくなく申し訳有りません。
時間があったらもう少しわかりやすく手直しします。
ディスカッション
コメント一覧
まだ、コメントがありません