最初に
この動画見て
www.youtube.com
このレポ
github.com
走らせた時のメモです、特にオリジナリティないです
LambdaでもJulia使いたいけど上の動画みるの面倒な人に良いかもしれません
動画だとecr認証の箇所などわからなかったので追記しました
概要
必要だったもの
ローカルでテスト実行
buildとrun
docker build -t julia-lambda:latest . && docker run -it --rm -p 9000:8080 julia-lambda:latest
curlで叩く、別ウインドウを起動して
curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '100000'
動いた
ECRにプッシュ
(※ [region], [account_id]は使っている値を入れてください)
account_idと使うregionを指定して認証する
aws ecr get-login-password --region [region] | docker login --username AWS --password-stdin [account_id].dkr.ecr.[region].amazonaws.com
ECRにレポジトリ作成
aws ecr create-repository \ --repository-name julia-lambda \ --image-scanning-configuration scanOnPush=true \ --region [region]
タグ付け
docker tag julia-lambda:latest [account_id].dkr.ecr.[region].amazonaws.com/julia-lambda:latest
ECRにプッシュ
docker push [account_id].dkr.ecr.[region].amazonaws.com/julia-lambda:latest
Lambdaの作成
Lambdaのコンソールにログイン>コンテナーメージにチェック>関数名を適当に埋める>イメージを参照、からさっきプッシュしたECRのURIを選ぶ
テストイベントの中身を10000
のみにしてテストを実行
┌ Info: Got response from handler └ response = "3.1224"
動いた
ここCLIでやろうとしたんですが、やり方わかりませんでした
ECRのimage URI指定してコマンドラインからLambda作る方法ご存知の方は私にTwitterでこっそり教えてください
補足
Lambdaの設定
デフォルトのメモリだと足りなかったので増やしたら通りました
Memory Size: 1024 MB Max Memory Used: 357 MB Init Duration: 4718.01 ms
RIEとは
R.I.Pに似てますね
lambdaをローカルテストできる便利機能っぽいです, これで動くかどうか祈りながらzipを作る必要ないですね(?)
AWS Lambda の新機能 – コンテナイメージのサポート | Amazon Web Services ブログ
より引用します
「Lambda Runtime Interface Emulator をオープンソースとしてリリースします。これにより、コンテナイメージのローカルテストを実行して、Lambda にデプロイした際に実行されることを確認することができます。Lambda Runtime Interface Emulator は、AWS が提供するすべてのベースイメージに含まれており、任意のイメージでも使用できます。」
リンクとか
Runtime APIのドキュメント
AWS Lambda runtime API - AWS Lambda
ECRをCLIでやるドキュメント
Using Amazon ECR with the AWS CLI - Amazon ECR