Serverless Framework環境で Lambda(AWS)+VisionAPI(GC)を使う際の認証設定

AWS

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を使って間もない為、設定にやたら時間が掛かってしまいました。。。

AWS
userをフォローする
desutoの部屋