Google Analytics Data APIを使用して、記事のGoogle Analytics 4の情報を得るpythonプログラムを作成するには、google-analytics-data-apiパッケージをインストールした環境が必要です。
これをLambda上で作成するには、「Lambda layer」にgoogle-analytics-data-apiを含める必要があります。
その方法で迷走したので、記録を残しておきます。
前提
今回はWindowsを使っています。
1.wsl2でランタイムzipを作成→結局うまくいかなかった
wsl2(Ubuntu)でlambdaと同じランタイム(今回はpython3.9)の環境をつくり、ここでパッケージを作成、zipファイルを作成してlambda layerにアップする作戦です。
python3.9をインストール
https://www.teamxeppet.com/install-python3-9-1_on_ubuntu20-04/
ubuntuではyumできないので、下記をたたく。
sudo apt-get update
sudo apt-get install -y python3.9-dev
(python -m pip install –upgrade pipが必要??)
次に、必要なパッケージをインストール
mkdir layer
python -m pip install google-analytics-data -t ./layer
zipファイルを作成
zip -r layer.zip layer
これをlambda layerにアップロードしたのですが、google-analytics-data?そんなの知らんよ、みたいなエラーが出てしまってうまくいきませんでした。
2.cloud9でランタイムzipを作成→成功。ただ、手動。
cloud9で、lambdaと同じランタイム(今回はpython3.9)の環境をつくり、ここでパッケージを作成、zipファイルを作成してlambda layerにアップする作戦です。
https://qiita.com/__DASHi__/items/268062f0dba0e93170f2
pip install google-analytics-data -t .
これはうまくいきました!ただ、そもそもCICDの観点から、手動は面倒ですよね。
3.sam deployする際のlayer/requirements.txtに追記。
1と同じくwsl2で作成したUbuntuで作業。
sam initした状態で、layerディレクトリを作成。
layer/requirements.txtに、
google-analytics-data
と記載するだけ。
pip install 〇〇でインストールする系は、ここに記載してsam build→sam deployすれば良い感じにlayerを作ってくれるみたい。sam恐るべし・・・!
これが一番簡単で、かつ、複数の環境(例えば、開発/検証/本番環境など)にデプロイしやすい。
最後まで読んでくださってありがとうございました!
コメント