Lambda

The API with ID XXXXXXXXXX doesn’t include a resource with path /* having an integration arn:aws:lambda:ap-northeast-1:XXXXXXXXXX:function:product-send-mail on the ANY method.

課題 Lambdaの実行権限をAPI Gatewayに与えると、どういうわけかタイトルのエラーメッセージが、コンソール上で、下記のように赤字で表示された。 解決 表示の問題にすぎないので気にしなくていいらしい。自分の環境ではAPI GatewayからLambdaを実行すること…

API GatewayをTerraformで構築するのはあまり向かないかも

AWS Lambda + API Gatewayでサーバーレスのメール送信関数を用意することにした。 そして、そのインフラ構築にTerraformを利用してみたのだが、結論、API GatewayとTerraformはどうにも相性がよくないように思われる。 なにが困るのか ではどうするか なにが…

AWS Innovate "もはやアンチパターンではない、AWS Lambda からのリレーショナル・データベース利用 (T4-5)"を見ていて

AWS Innovateの"もはやアンチパターンではない、AWS Lambda からのリレーショナル・データベース利用 (T4-5)"を見ていた時のメモ メモ LambdaからDBをつなぐ際、Writeのスケーリングはどうすんの スケールアップ セッションの中では触れられなかったけどAuro…

Lambda関数バージョンの性質

課題 Lambda関数バージョンの細かいところが把握できていなかったため、確認。 解決 Lambda関数バージョンはいくつか貯まると古いものが消える。 10件が最大だった。しかしどこに記載しているかドキュメントを探したが見つからず。 自分で古いバージョンを消…

GitHub Actionsで自動テストし、AWS Lambdaに自動デプロイする。

AWS Lambda関数の本番デプロイについて検討したCI/CDをGitHub Actionsで実現する。 実現したいフロー 通知は何で行う? 関数のアップロードにTerraformは使わない? Lambda関数の関数バージョンはなぜ設定している? GitHub Actions 事前準備: Slack 参考 …

AWS Lambdaの開発・運用手順に関する課題のメモ書き

GitHub Flow / Git Flow LambdaのImmutableデプロイは可能か? SAMどうよ TerraformとAPI GatewayとSwaggerの兼ね合いどうしよう 参考 GitHub Flow / Git Flow 日常的にゴリゴリ更新していけるプロジェクトであればGitHub Flow、モバイルアプリのバックエン…

AWS Lambdaをローカルで開発・テストするには?

Pythonを使ったAWS LambdaはAWSのマネジメントコンソールから直接コーディングとテスト(とデバッグ)ができる。 が、コーディング時にVSCodeや周辺ツールが使えないのは辛い。それにローカル環境で行える作業とテスト/デバッグはローカルで行いたい。 先に…

API Gatewayを通さず直接Lambdaにアクセスする機能を試してみた(Lambda 関数URL)

Lambda 関数URLを使ってAPI Gatewayを通さず直接Lambdaにアクセスする機能を試してみた。 結論、どうなのか? Terraformを使ったコードの例 参考 結論、どうなのか? 便利なのだが簡易版といった趣で、不便な点もある。"やったぞAPI Gatewayがいらなくなった…

ローカルでPython製のLambda関数をJSON渡しで起動するには

課題 テストのため、AWS Lambda Function URLを持ったLambda関数の起動をローカルでも行いたい。最終的にAWS Lambda本体で行うわけだが、その前の段階ではローカルを使えたほうがよい。しかしにJSONを渡す必要があるが、どのようにすればよいか。 解決 pytho…

VSCode+AWS Toolkit+SAMでAWS Lambda関数を作成・デバッグ(開発環境用、NOT 本番環境用)

AWS Lambda関数の開発にあたり、Localでできる作業はLocalで行うにしても、やはりAWS上で動かさないと仕方ない部分が残る。 といって、いくら開発環境用だとしても、マネジメントコンソール上で編集するのはVSCodeの開発ツールが使えないので嬉しくないし、…

Windows+Python+Lambda+Dockerで開発環境づくり

過去にWindows直でPythonをインストールして開発環境を作成した。用途はAWS Lambdaの関数作成である。 おおむね問題なかったのだが、ローカルの環境変数を読み込ませるいい方法がなく、結局コンテナ上でdirenvを使うことにした。どの道AWS LambdaはLinux上で…

AWS Lambda Pythonで外部ライブラリを利用する

AWS Lambda(Python利用)でcerberusを使いたいが、Lambdaにはこちらの欲しいライブラリがインストールされていないため当然ながらエラーになる。 そこでLayerを使って先に外部ライブラリを用意しておく。 準備 作成とアップロードの例 備考 参考 準備 WSLで…

WindowsでLambda関数開発環境を用意する

WindowsでLambda関数の開発を行うための開発環境を構築した件について記載する。 構成は以下の通り。 Windows 10 Home Edition Python3.9 Windows Terminal VisualStudio Code WSL2 + Ubuntu 22 Docker Desktop on Windows AWS CLI Python Windows Terminal,…

Visual Studio codeでデバッグしようとしたら勝手にLambdaが起動される

課題 AWS ToolkitとSAM CLIを入れて作業をしていたところ、F5キーでデバッグしようとしたら、その気はないのにLambdaが起動される問題が発生。 解決 ワークスペースの設定(.code-workspace)にデバッグ実行設定が追加されていたためだった。自分で追加した覚…