Node.js
AWS
Express
lambda
新人プログラマ応援

宇宙人が地球に来て初めてこのLambdaを使ったら、きっと地球のLambdaはレベル高いな、と思うだろう。それがQuickDeploy


コピーメカが気になったので使ってみたら、釣りくさくなってしまった。

Screen Shot 2019-01-13 at 15.18.31.png

※余談: コマンドラインでコピーメカをサクッと使うスクリプトを作ろうとしてみた


今回コピーメカで実行したやつ

curl -X POST http://www.copymecha.com/index.php  -d "x=Lambda&a=使う&y=QuickDeploy&mode=next1" -H "Content-Type: application/x-www-form-urlencoded" | iconv -f Shift_JIS -t UTF8



本題: AWS Lambda(サーバレス)わかってますよ感の手軽な演出


対象:「サーバレスの例としてAWS Lambdaをさくっと動かせたらいいな」、っていう方向け


前提:

AWS CLI, jqコマンドがインストールされており、AWS S3バケットが作成されている。

AWSアカウントID確認

Bucket作成&バケット名確認(https://s3.console.aws.amazon.com/s3/home?region=us-east-1)

aws s3api list-buckets

aws s3api get-bucket-location --bucket <バケット名>


使い方

git clone https://github.com/iaoiui/QuickDeployForAWSLambda.git

AWSアカウントIDや、使用するバケット名、バケットのRegion、作成するLambda Functionの名前、Lambda funtionの実行時のパスをconfig.envファイルとして作成する。

config.env.templateに雛形があるので、さくっと作れる。


config.env

AccountID="YOUR AWS ACCOUNT ID"

BucketName="AWS S3 BUCKET NAME"
Region="REGION WHICH BUCKET IS IN"
FunctionName="LAMBDA FUNCTION NAME"
LambdaEndpointPath="LAMBDA FUNCTION PATH"

lambdaを読んだ時に返すJSONファイルをapi-response.jsonとして作成する。

もともとサンプルのものが置かれているのでここは任意


api-response.json

{

"data": [
{ "id": 1, "name": "hogehoge"},
{ "id": 2, "name": "fugafuga"}
]
}

あとはdeploy.shを実行すると、nodejsで書かれたLambda functionがデプロイされる

sh deploy.sh

Try following command to confirm lambda fuction working correctly
curl https://${REST_API_ID}.execute-api.${REGION}.amazonaws.com/prod/${endpoint} -H 'accept: application/json' -s | jq .

コンソールに表示されたcurlを実行すると、lambda functionが呼ばれapi_response.jsonで定義したjsonが取得できる。


まとめ

nodejsを用いたlambdaのモックを作成する場合に、手軽に使えるツールを作成した。

lambdaを手軽にハンズオンしたい場合などの、心的負担を軽減できた(気がする)