/ #Lambda #cdk 

curlコマンドが叩けるLambdaをcdkでサクッと作る!

もくじ

お久しぶりです。前回からだいぶ時間があいてしまいました 😂

さてさて、AWS で VPC 周りの実装をしてると curl で軽く疎通テストしたいなーってときありますよね?

そんなときは EC2 を使えば良いのですが、そのために EC2 を起動させるの、だるいですよね、、、作ったあとのお掃除も面倒ですし、、、

なのでもし Lambda で完結するなら、Lambda でサクッとテストしたいなーとか思うわけです。

しかし、Lambda には curl がインストールされていなくて簡単には実行できません。

python + Requests を使え!とかいう声もありそうですが、curl のコマンドを Requests に書き直すのも億劫で、可能なら curl で動作確認したいんですよね。

ということで curl が叩ける Lambda を CDK でサクッとデプロイできるようにしましたよ?って話です。


2023/05/28

もっと爆速で叩く方法を見つけましたので、そちら参照ください

前提

CDK v2 がインストールされている

結論

ということで Lambda をさくっとデプロイします。

# コード取得
$ git clone https://github.com/sisi100/lambda-curl-test-cdk.git

# 環境作成
$ npm install
$ pip install -r requirements.txt

# デプロイ
$ make deploy

はい、完成です。

ありがとうございました m(_ _)m

使い方

上記のコマンドで Lambda がデプロイされます。

その Lambda にコンソールからアクセスしてもらうと、こんな ↓ コードが入っているので

この 6 行目にお好みの curl コマンドを書いて Lambda を実行していただければ OK です。

以上(笑)

おまけ

ここから先はわりとどうでも良い話です。

レイヤーどうやって作ってるの?

SAM の DockerImage のなかで、curl を yum 経由でインストールして実行ファイルと依存してるライブラリーをコピーしてレイヤーを作ってます。なのでとくに怪しいことてないですよーというアピールをしてみます。

詳細はこのへんを御覧ください

余談ですが、Lambda 内のターミナル経由で curl を動くようにしてるので、python でなくても node の exec とかでも動きます。(たぶん)

IAM に不要な policy 入ってるよ?

AWS マネージド policy のAWSLambdaVPCAccessExecutionRoleがアタッチされてます。 これは Lambda を VPC に設置するために必要な policy です。この policy があることで、Lambda のコンソールからポチポチ作業するだけで、この Lambda を VPC の中に配置できます。

一応この Lambda が VPC に入れて、そこから curl を送って疎通確認するユースケースを想定してるので、この権限も入れておいたほうが使いやすいかなーという気持ちで入ってます。

今回のリポジトリはこちら

https://github.com/sisi100/lambda-curl-test-cdk

以上ですありがとうございました!

Author

Sisii

インフラが好きなエンジニアぶってるなにか