Posted at
LispDay 11

common lispでaws lambda

More than 3 years have passed since last update.


なんか煽られたので

aws lambdaをcommon lisp(roswell)でやってみることにした。lambdaが何かとか良くわかってない。


lambdaって何

聞きなれた概念が別の概念にバインドされている憎い何か!みたいな話はネタとしてもどうでも良い。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html

計算資源の切り売りサービスってのは間違いないんだけれど、関数呼び出し単位で切り売りしてるんだなーって印象を持った。

わかったこと

* 64bit linuxの環境が用意されて、nodejsかpythonかjavaかで決められた方法でプログラムが呼ばれる。

* 一定の時間以内に仕事をしたら片付けられる。使えるメモリやストレージに制限がある

* lambdaはzipで構成できる。環境からは普通に実行ファイルが呼べる。


成果物

https://github.com/snmsts/aws-lambda-test

やってみたこと、

* Common Lispを実行ファイルにする

* nodejsのラッパからclの標準入力に関数のパラメータをjsonで渡す。(index.js)

* Common Lispでjsonをparseして標準出力へ。

* ついでにhttpsでどこかのウェブにアクセスして標準出力へ。(この過程で必要な外部ライブラリに気がついたのでMakeで添付することにした。)

64bit ubuntuではなんとかなった。別環境では微調整が必要そう。

あとは肝心の中身を考えるだけ。


感想

追試してみてもるとわかるだろうけど、できるzipファイル以外とでかい。17メガくらいになる。

ちょっとライトな印象のあるサービスがこうなると少し微妙な印象はある。

まぁやってやれないってだけか。でもまぁいいか。