kakakakakku blog

Weekly Tech Blog: Keep on Learning!

習慣化 振り返り(2024年7-12月)

2024年から Habitify を使って個人的な習慣化管理を楽しんでいる❗️ Habitify 最高〜 \( 'ω')/ あっという間に Habitify 歴1年になってしまった️ www.habitify.me 2024年後半(7-12月)の習慣化を振り返ろうと思う \( 'ω')/ 過去の振り返りは以下にまとめ…

読んだ本を振り返る(2024年9-12月)

2024年2月から「毎日10分間読書」という習慣化を始めたことをキッカケに毎日コツコツと本を読めるようになった1年だった2024年9月から2024年12月までに読んだ本とその感想(書評記事 or X ポスト)をまとめておこうと思う2024年8月までの振り返りは以下の記…

2024年のプルリクエストを振り返る

2016年から毎年送ったプルリクエストを振り返る記事を書いている 2024年は「計10件」だった❗️2025年も機会があれば積極的にプルリクエストを送っていくぞー \( 'ω')/ 2016年のプルリクエストを振り返る - kakakakakku blog 2017年のプルリクエストを振り返…

AWS CloudFormation の DeletionPolicy: RetainExceptOnCreate を試す

AWS CloudFormation でリソースをデプロイするときに「意図的に」リソースを残すために DeletionPolicy: Retain を設定することがあるしかし AWS CloudFormation スタックを新しく作るときに AWS CloudFormation テンプレートが間違っていてエラーになってし…

Generative AI Test (2024 #2) を受験してみた

2024年12月7日に「Generative AI Test (2024 #2)」を受験して合格した試験自体は IBT (Internet Based Testing) だけど結果はすぐに出ず,2024年12月20日に発表された. Generative AI Test は「G 検定」や「E 資格」を運営している JDLA によって提供されて…

OpenSearch Service に入門できるチュートリアル「Creating a search application with Amazon OpenSearch Service」を LocalStack で試そう

Amazon OpenSearch Service に入門したいな〜っていうときに活用できる公式チュートリアル「Creating a search application with Amazon OpenSearch Service」を最近仕事で紹介する機会があって,今回改めて自分でも試しつつ,さらに LocalStack で動かせる…

S3 Object Lambda に入門できるチュートリアル「Using Amazon S3 Object Lambda to Dynamically Watermark Images as They Are Retrieved」

最近アーキテクチャレビュー会をしているときに「そういえば Amazon S3 Object Lambda ってあったな〜」という話になった Amazon S3 Object Lambda は 2021年にリリースされてて,リリース直後に試した記憶はあるけど最近は使う機会がなかったな〜と思って,…

GitHub リポジトリで「リリースノート」を自動的に作ろう

GitHub にはリリースノートを自動的に作る機能があって,マージされたプルリクエストをまとめたりできる OSS ライブラリで semver に沿ってリリースノートを作るのも便利だし,仕事で使っているプライベートリポジトリでも「いつどのプルリクエストがデプロ…

AWS CDK で Service Quotas のクォータをモニタリングする CloudWatch Alarm を設定する

特にプロダクション環境でウェブサービスを稼働させるときに AWS サービスのクォータ(サービス制限)を理解して運用することが重要で,例えば AWS Well-Architected Framework (Reliability Pillar) の REL01-BP04 では Not configuring monitoring to chec…

Step Functions の新機能「変数」と「JSONata」を AWS と LocalStack で試す

2024年11月22日に AWS Step Functions で新機能「変数 (variables)」と「JSONata」がサポートされた❗️ aws.amazon.com 特に「変数」は待望の機能なんじゃないかな〜と思う.今までは AWS Step Functions でタスク結果を引き回すときにどうしてもバケツリレー…

Terraform で Service-Linked Role(サービスにリンクされたロール)を作る

マネジメントコンソールを使ってリソースを設定していると自動的に「Service-Linked Role(サービスにリンクされたロール)」が作られていることがある実は AWS CloudFormation や Terraform を使って Service-Linked Role を IaC (Infrastructure as Code) …

生成 AI パスポート試験(2024年 第3回)を受験してみた

2024年10月18日(受験可能期間は10月1日〜10月31日)に「生成 AI パスポート試験(2024年 第3回)」を受験して合格した試験自体は IBT (Internet Based Testing) だけど結果はすぐに出ず,2024年11月18日に発表された.個人的に結構イイ試験だな〜と感じたの…

AWS CDK で Cognito User Pools の「メッセージテンプレート」を設定する

Amazon Cognito User Pools から自動的に送信される「招待メッセージ」はデフォルトでは以下のようにシンプルな設定になっていて,実運用では使いにくさがある あと末尾の . までコピーしてログインしようとして「エラーになります」って言われることもよく…

crossRegionReferences: AWS CDK で Cognito User Pools にカスタムドメインを設定する

Amazon Cognito User Pools にカスタムドメインを設定する場合,内部的に追加される Amazon CloudFront で「バージニア北部リージョン (us-east-1)」の AWS Certificate Manager (ACM) 証明書が必要になる しかし AWS CDK(もしくは AWS CloudFormation)で…

Moto を使って Cognito の cognito-idp API をローカル環境で試す

Amazon Cognito を操作するコード/テストを実装するときに LocalStack を使いたいな〜と思うけど,Amazon Cognito は LocalStack Pro Edition でサポートされていて,LocalStack Community Edition では使えないと言う課題がある. docs.localstack.cloud …

Testcontainers for Python と Moto を組み合わせて Boto3 を使った Python コードをテストする

Moto で AWS サービスをモックして AWS SDK for Python (Boto3) を使った Python コードをテストする場合に @mock_aws デコレータや with ブロックを使うという選択肢がある.詳しくは以下のドキュメントに載っている docs.getmoto.org また Moto には「Serv…

AWS CDK で Amazon API Gateway の「CloudWatch ログのロール ARN」を設定する

Amazon API Gateway でアクセスログを有効化してデプロイしようとすると CloudWatch Logs role ARN must be set in account settings to enable logging というエラーが出る場合があるもしかしたら Amazon API Gateway の設定「CloudWatch ログのロール ARN …

AWS CDK で IAM Role に Cognito User Pools の ポリシーを設定する

AWS CDK で IAM Role に Amazon Cognito User Pools のポリシーを設定する場合は grant(grantee, ...actions) メソッドを使う. docs.aws.amazon.com 第二引数の ...actions は可変長引数を受け取るため,以下のようにポリシーを並べて実装できる❗️ userPool…

LangChain / LangGraph を活用した RAG そして AI エージェントを体験しながら学べる新著「LangChain と LangGraph による RAG・AI エージェント[実践]入門」を読んだ

2024年11月9日に出版される新著「LangChain と LangGraph による RAG・AI エージェント[実践]入門」を読んだ RAG そして AI エージェントとは!?という疑問に対して理解を深めることができて,実際に Python コードを実行しながら体験もできる.さらに最…

GitHub Actions のジョブサマリーに Service Quotas のクォータ一覧を出力する

AWS Organizations 未導入のマルチアカウント環境でマネジメントコンソールに入らずに Service Quotas のクォータをシュッと確認できたらちょっと便利かも?と思って(あくまでアイデアとして),検証も兼ねて AWS SDK for Python (Boto3) と GitHub Actions…

Terraform で Service Quotas のクォータリクエストを管理する

特にプロダクション環境でウェブサービスを稼働させるときにトラフィックの多さから AWS サービスのクォータ(サービス制限)に該当する可能性がある AWS Well-Architected Framework (Reliability Pillar) でも REL01-BP01 ~ REL01-BP06 にクォータ関連のベ…

redocly lint コマンドを GitHub Actions に組み込んで OpenAPI の静的解析を実行する

Redocly CLI の lint 機能 (redocly lint コマンド) を使うと OpenAPI の静的解析ができる 今回は redocly lint コマンドを GitHub Actions に組み込んで OpenAPI の静的解析を実行できるようにしてみた \( 'ω')/ redocly.com OpenAPI サンプル 今回は Pet…

Python の mimetypes.guess_type() で .geojson を変換できるようにする

Python 標準ライブラリ mimetypes を使って GeoJSON ファイル名 (.geojson) から MIME タイプに変換しようとしたら (None, None) になってしまった >>> import mimetypes >>> mimetypes.guess_type('example.geojson') (None, None) docs.python.org 前提条…

AWS Step Functions でエラーハンドリングを実装する構成例

AWS Step Functions でタスクがエラーになったときに統一的なエラーハンドリング(エラー処理・リカバリ処理・通知処理など)が必要になることがあるエラーハンドリングを実現する構成例をいくつか考えてみた もちろん最終的には要件次第ではあって絶対にコ…

LocalStack で AWS サポートへの問い合わせを API で操作できる「AWS Support API」を試そう

AWS サポートへの問い合わせを API で操作できる「AWS Support API」は気になるけどビジネスプラン以上じゃないと使えなくて気軽に試せないじゃーんと悩んでいる人がいたら LocalStack をおすすめしたい❗️実は LocalStack(無料版)で一部の AWS Support API…

Lambda@Edge と CloudFront Functions に入門できるワークショップ「Handling Rewrites and Redirects using Edge Functions」

Lambda@Edge と CloudFront Functions を使って HTTP リクエストのリダイレクトとリライトを体験するワークショップ「Handling Rewrites and Redirects using Edge Functions」を実施してみた❗️ Lambda@Edge と CloudFront Functions に入門したいな〜という…

Powertools for AWS Lambda (Python) で Cognito User Pools の トークン生成前トリガーを実装しよう

Amazon Cognito User Pools には AWS Lambda 関数を使って認証フローをカスタマイズできる「Lambda トリガー」という機能があるトークン生成前トリガー (Pre token generation Lambda trigger) を使うと,認証時に発行されるトークン (ID Token / Access Tok…

CloudFormation Git sync で変更セットの結果をプルリクエストにコメントする

2024年9月20日にリリースされたアップデートによって,AWS CloudFormation の「Git sync 機能」で GitHub リポジトリにプルリクエストを出したら自動的に変更セットの結果をコメントしてくれるようになった❗️ aws.amazon.com 試す Git sync の設定画面で Ena…

LocalStack で Lambda の Errors メトリクスを SNS 経由でアラートする

LocalStack を使って AWS Lambda 関数の Errors メトリクスをモニタリングして Amazon CloudWatch Alarm と Amazon SNS でアラートするアーキテクチャを試してみた❗️LocalStack(無料版)ですべて試せる〜 \( 'ω')/ アーキテクチャ図 Webhook.site 今回は …

Vercel Terraform Provider: Vercel の設定を Terraform で管理しよう

最近 Vercel を使っていて,Vercel コンソールでプロジェクト設定をしてしまったけど,継続的なプロダクション運用を考えたらコンソール操作は避けたいな〜と思って,Vercel Terraform Provider を試してみた❗️結論から言うと,期待した通りに Vercel の設定…