はじめに
- GCP の Cloud Functions の関数は以前はデフォルトで認証がなく任意の接続元からアクセスできる設定でしたが、最近変更がありデフォルトで認証が必要になりました。
- この記事では Cloud Functions の認証が必要な関数を GCP の定時ジョブ実行サービスである Cloud Scheduler から実行する方法を紹介します。
Cloud Functions 実行用のサービスアカウントの作成
- GCP コンソールにログイン
- メニューから「IAM と管理」の「サービスアカウント」に移動
- 「サービスアカウントを作成」から作成開始
- 「サービスアカウント名」と「サービスアカウントID」は任意のもの
- 「ロール」に「Cloud Functions 起動元」を追加
- 「作成」ボタン押下で作成完了
Cloud Functions の関数の作成
- GCP コンソールにログイン
- メニューから「Cloud Functions」に移動
- 「関数を作成」から作成開始
- 「名前」は任意のもの
- 「トリガー」は「HTTP」
- 「URL」を控えておく
- 「ソースコード」は「インラインエディタ」で「ランタイム」とコードはデフォルトのもの
- 「作成」ボタン押下で作成完了
Cloud Scheduler のジョブの作成
- GCP コンソールにログイン
- メニューから「Cloud Scheduler」に移動
- 「ジョブを作成」から作成開始
- 「名前」「頻度」「タイムゾーン」は任意のもの
- 「ターゲット」は「HTTP」
- 「URL」は作成した関数の URL
- 「HTTPメソッド」は「GET」
- 「SHOW MORE」の中の「Auth ヘッダー」は「OIDC トークンを追加」で「サービスアカウント」は作成したサービスアカウントのメールアドレスを指定
- 「作成」ボタン押下で作成完了
- 作成したジョブの「今すぐ実行」ボタンを押下して動作確認
おわりに
- この記事の内容について公式ドキュメントにも一応は記載がありますが、具体的に Cloud Functions を対象に解説されているわけではなかったので試してみた結果をまとめました。