投稿

7月, 2025の投稿を表示しています

SAM-CLIでServelessのDynamoDB+Lambda+APIGatewayやってみた

ちょっと Lambda と DynamoDB でサクッと CRUD のAPIが欲しかったので SAM を試してみた。 コード自体は生成AIにお任せ状態、ローカルでテストできるようにしたかったのと本番とローカルでDynamoDBの向き先を変える必要があったので、そのあたりをゴニョゴニョとして動かせるようにしました。 あくまでもサンプルなので認証とかバリデーションはきちんとできてないのでダメなやつなのですが、まぁまぁ便利ねということは分かった。 あとはS3にCSV上げたらDynamoDBにバッチでデータ投入する様なこととか、CloudFront+S3構成とかできるのかとか色々と調べてみたい。 まぁこれも色々な人がやってるのでいまさら感はあるし、先人のやつの方がしっかりしていて有益だと思うので、そちらの記事をあたっていただいた方がいいけどね。 ひとまずダメダメな今回のコードもさらしときます。 https://github.com/Otazoman/aws-sam-sample/tree/main ほぼ生成AIにやらせてて自分ではコードは一部しか書いていないというダメさっぷりを発揮しています。これベースにバリデーションとか追加していけば一々、組まなくて済むかなぁ。 ◆参考サイト ・SAM-CLI https://qiita.com/free-honda/items/d1ee8a7507a2e9c9527f https://iret.media/76096 https://www.cyberowl.co.jp/blog/technology/1318 ・複数Lambda https://zenn.dev/na7na/articles/e0be947140fd95 https://kazuhira-r.hatenablog.com/entry/2022/01/02/225530 https://qiita.com/nahiro_tus/items/2095d85ac11f306a79f8 https://qiita.com/charon/items/050942e54bbc5c9d44f1 https://uniforce.co.jp/media/blog/dvi11v9g6s/ ・APIGateway https://tech.fusic.co.jp/posts/2021-1...

EC2を起動したときにRoute53に登録されているAレコードを更新する

既にいろんなとこでやってる人がいる小ネタっす。  EC2で開発環境を作成していて、IPアドレスで接続するのが面倒くさいのでRoute53にIPアドレスを登録した。 まぁそれはそれで便利にはなったもののIP変わる都度、手動でRoute53にIPを設定するのも煩わしいので、EC2インスタンスの電源が入る都度、自動でRoute53を更新する様にした。 ◆コマンド # スクリプトのディレクトリを作成 mkdir init # ここからEOF_SCRIPTまでがroute53.shの内容になります # バッククォート (`) は `\` でエスケープしてください。 # `$` は自動で展開されるのでエスケープ不要です。 cat << 'EOF_SCRIPT' > init/route53.sh #!/bin/bash set -euxo pipefail DOMAIN_NAME="yourdomain.com" SUB_NAME="yoursubname" HOSTED_ZONE_ID="YOUR_HOSTED_ZONE_ID" # IMDSv2 (Instance Metadata Service Version 2) のトークンを取得 TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") # トークンが取得できたか確認 if [ -z "$TOKEN" ]; then echo "エラー: IMDSv2トークンを取得できませんでした。インスタンスのIMDS設定を確認してください。" >&2 exit 1 fi # 取得したトークンを使用してパブリックIPアドレスを取得 # X-aws-ec2-metadata-token ヘッダーにトークンを含める必要があります IP_ADDRESS=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -s ht...

AWSの開発環境詰め合わせ用Shellスクリプト

 ちょっと SAM-CLI さわる必要が出てきてAWSのEC2に開発環境を構築するShellを準備してみた。ローカルのVMで直接開発するケースはないけど、もしかしたら再利用するかもしれないので、Shellにしておいてまた使いまわせるようにしておこうと思いまして準備した次第です。 ◆スクリプト本体 #!/bin/bash # このスクリプトは、一般的な開発ツール(GCC、G++、Make、NVM、rbenv、pyenv、AWS CLI、Docker、SAM CLI、CDK)をインストールします。 # バージョンは以下の変数を設定することで変更できます。 # 変数の定義 nvm_ver="0.40.3" # NVM (Node Version Manager) のバージョン ruby_ver="3.4.4" # Ruby のバージョン (rbenvでインストール) python_ver="3.13.5" # Python のバージョン (pyenvでインストール) echo "--- 開発ツールのインストールを開始します ---" # 1. 必須パッケージのインストール echo "1. 必須パッケージのインストール..." sudo apt-get update sudo apt-get install -y \ gcc \ g++ \ make \ build-essential \ libssl-dev \ zlib1g-dev \ openssl \ libz-dev \ libffi-dev \ libreadline-dev \ libyaml-dev \ liblzma-dev \ libbz2-dev \ libsqlite3-dev \ unzip echo "必須パッケージのインストールが完了しました。" # 2. NVM (Node Version Manager) のインストール echo "2. NVM (Node Version Manager) のインストール..." # NVMのインストールスクリプトを実行 curl -o-...

AWSのリソース作成をShellスクリプト化してみた

前回よりだいぶ間が空きましたが・・・・  今更、時代遅れだけどAWSのリソースをShellスクリプトで作成できるようにしてみた。CSVファイルでパラメータ設定して、そのパラメータを元にAWSリソースを作成します。 https://github.com/Otazoman/aws-cli-scripts まぁはやりのAIで作成してるので自分はアイデアしか出していないというへぼっぷりですが、 パラメータシート 作るなら、それ元に成果物生成されないと嫌だし、どうせパラメータシートは EXCEL なんだったらCSVの方が親和性が高いのではないかと思って準備しました。 世の中にはもっとツヨツヨな方がいらっしゃると思うのと、今更ながらだけど。せっかくなので公開だけしておこうかなと。