最初に
この動画見て
VIDEO www.youtube.com
このレポ
github.com
走らせた時のメモです、特にオリジナリティないです
LambdaでもJulia使いたいけど上の動画みるの面倒な人に良いかもしれません
動画だとecr認証の箇所などわからなかったので追記しました
概要
lambdaのコンテナ立ててローカルでcurl で叩いてローカルで動作確認
ECRにそれをpushしてlambdaにそのURI を登録
必要だったもの
aws configureすませたaws cli
aws のaccount_idとregion (aws 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