VercelなどでGoogle APIのキーを環境変数から読む方法
VercelでGoogle Calendar APIを使おうとした時に、少しハマったので覚え書き。 1行のフォームに、複数行のデータを入れる Google APIのプライベートキーは複数行で構成されています。 みたいなイ […]
広告ここから
広告ここまで
目次
VercelでGoogle Calendar APIを使おうとした時に、少しハマったので覚え書き。
1行のフォームに、複数行のデータを入れる
Google APIのプライベートキーは複数行で構成されています。
-----BEGIN PRIVATE KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END PRIVATE KEY-----
みたいなイメージですね。
これをVercelなどの環境変数に設定する場合、1行で納める必要があります。
-----BEGIN PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-----END PRIVATE KEY-----
環境変数を読み込む時に、改行しなおす
Next.jsのDiscussionsを参考に、改行コード部分をreplace
関数で変更しました。
const private_key = process.env.GOOGLE_PRIVATE_KEY?.replace(/\\n/g, '\n')
「安全な運用」を目指す場合
今回は「READオンリー」かつ「見られても問題のないデータ」でしたので、手早く環境変数をつかいました。
本来はSecrets Managerなどを使う方が安全かと思います。
- https://cloud.google.com/secret-manager?hl=ja
- https://docs.aws.amazon.com/ja_jp/secretsmanager/latest/userguide/intro.html
この辺りのサービスでは、複数行のデータも保存できるケースがあったはずなので、replace
などの考慮も不要になるかしれません。