Serverless Frameworkを使ってLambda(AWS)にてGoogleCloudのAPIを使う方法について、ローカル開発環境の認証設定にちょっと戸惑ったので、設定方法をまとめるメモです。
Serverless Framework とは
Serverless Framework は、AWS、Google Cloud(以下GC)、Microsoft Azureなどのクラウドサービスにて、いわゆるサーバーレスアーキテクチャなシステム開発をする際、ローカルでの開発やデプロイを行う為のツールです。
サーバーレスアーキテクチャについては今回は割愛します。
僕は最近Serverless Frameworkを使い始めたのですが、AWSのLambdaの中でGCのVisionAPIを使う際、設定に若干戸惑ったので書き残しておきたいと思います。
本質的には、AWS、GCそれぞれの認証設定について知識が無かったから混乱したので、そのあたりの整理をしたいと思います。
前提条件
以下は対応済みである事を前提とします。
- node.js のインストール
- AWS CLI のインストール
- AWS アカウント作成&アクセスキー(ID,Sercret Key)発行
- Serverless Framework のインストール
- GCのサービスアカウント作成
上記の手順については、 こちら等を参照ください。
ちなみに、 node.js をインストールする際、nodenv を入れる際は anyenv を使ったほうが他言語にも使えるのでオススメです。
AWSの認証設定
AWS、つまりAWS CLIの認証設定は ~/.aws/credentials
に入ってます。
なにもしてないと上記ファイル内の [default] の設定を見に行きますが、他の設定が良い場合は、Serverless Framwork起動時に –profile オプションで設定名を入れてください。
GCの認証設定
今回はLambda内でVision APIというOCRを使う為、GCの認証も設定します。
GCのサービスアカウントのjsonファイルをローカルのどこかに置いておきます。
設定ファイルである、serverless.yml(人によっては.tsだったりするかも)で、
useDotenv: true
を追記し、.envに環境変数を設定出来るようになったら
GOOGLE_APPLICATION_CREDENTIALS=【サービスアカウントのjsonファイルのパス】
を追記すれば良いです。
これで、GCのAPIが使えるようになります。
もしエラーになるなら、
- jsonファイルのパスのミス
- 利用するサービスアカウントがAPIの権限OKになってない
- APIの使用を有効にしていない
このあたりを疑ってみてください。
Serverless frameworkを使って間もない為、設定にやたら時間が掛かってしまいました。。。