kakakakakku blog

Weekly Tech Blog: Keep on Learning!

LocalStack を使って Amazon Transcribe をローカル環境で操作する

Amazon Transcribe で Speech-to-Text を実現するときに,LocalStack を使えば Amazon Transcribe を「AWS アカウントを使わずにローカル環境で」動かせるLocalStack 自体は仕事でもプライベートでも使ってるけど,Amazon Transcribe は今まで試したことがな…

アプリケーションの認可ソリューションを体験できる「Amazon Verified Permissions workshop」

Amazon Verified Permissions を学ぶため「Amazon Verified Permissions workshop」を実施してみた3時間ほどで Amazon Verified Permissions の基本的な概念・マネジメントコンソール操作から,実際にサーバーレスアプリケーションに組み込んだときの実装例…

AWS CDK でプレフィックス集計のために Amazon S3 Storage Lens を設定する

Amazon S3 でオブジェクトの使用状況(合計サイズ・平均サイズなど)を「プレフィックス別(フォルダ別)」で可視化する場合,Amazon S3 Storage Lens の「高度なメトリクスとレコメンデーション機能」で「プレフィックス集計」を設定する❗️ docs.aws.amazon…

テスタビリティ(テスト容易性)に関してチームで考えるエクササイズがたくさん!Team Guide to Software Testability を読んだ

ソフトウェアのテスタビリティ(テスト容易性)に関してまとまった書籍「Team Guide to Software Testability」を読んだ 本書の特徴は「テスタビリティ」を重要視してソフトウェアの品質・デリバリーの予測可能性を高めていくために「どのようにチームで取り…

Terraform の AWS Cloud Control Provider (awscc) で Amazon Inspector「抑制ルール」を設定しよう

現時点(2024年5月)だと Terraform AWS Provider では Amazon Inspector の「抑制ルール」を設定できないという制約がある github.com Terraform AWS Provider 以外だと マネジメントコンソール AWS CLI(参考: AWS CLI で Amazon Inspector「抑制ルール」…

AWS CLI で Amazon Inspector「抑制ルール」を設定する

Amazon Inspector の「抑制ルール (suppression rules)」を使うと,条件に一致する検出結果を除外できる.また Amazon Inspector では FindingStatus: SUPPRESSED として AWS Security Hub に検出結果を統合するため,過剰に増えてしまう AWS Security Hub …

React-Admin を1時間で速習できる!React-Admin Tutorial

React-Admin を使うことになるかもしれず,今まで使ったことがなかったので,まずは「React-Admin Tutorial」を試してみた❗️React-Admin を使ったフロントエンドの実装と基本的な仕組みを速習できて良かったおすすめ \( 'ω')/ ちなみに 30 minutes tutoria…

AWS CDK の --exclusively オプションでスタック間の依存関係を考慮せずに実行する

AWS CDK の cdk diff コマンド・cdk deploy コマンドで --exclusively オプションもしくは -e オプションを指定して実行すると,スタック間の依存関係を考慮せずに指定したスタックのみ操作できる実行時間を短くしたり,デプロイの影響範囲を狭めたりすると…

Terraform で Amazon ECS の fargateTaskRetirementWaitPeriod を設定する

2024年5月17日にリリースされた Terraform AWS Provider v5.50.0 で Amazon ECS の「Fargate タスクリタイア待機時間 (fargateTaskRetirementWaitPeriod)」を設定できるようになった. github.com デフォルトでは「7日間」に設定されていて,選択肢としては …

AWS Step Functions の TestState API でステートをテストしよう!

AWS Step Functions ワークフローを実装しているときに,ステートをデプロイする前にテストしたり,デプロイしたワークフローの特定のステートのみを実行したいという場面があったりする.実は AWS Step Functions の「TestState API」を使うと,ワークフロ…

Python でツリー構造を表現できる treelib

Python ライブラリ treelib を使うと簡単にツリー構造を表現できる.今まで使ったことがなくて,ドキュメントを見ながら基本的な操作を試してみた treelib.readthedocs.io github.com ちなみに treelib は「AWS コンピュータービジョン開発の教科書」を読ん…

「Terraform の教科書 - Forkwell Library #51」で Q&A セッションのモデレーターを担当した

2024年5月9日に開催されたオンラインイベント「Terraform の教科書 - Forkwell Library #51」で Q&A セッションのモデレーター(司会者)を担当させて頂いたので,イベント開催前の準備などを簡単にまとめておこうと思う \( 'ω')/ 今回は貴重な機会を頂き…

Amazon Rekognition / Amazon Lookout for Vision などを試しながら学べる「AWS コンピュータービジョン開発の教科書」を読んだ

2024年3月19日に出版された「AWS コンピュータービジョン開発の教科書」を読んだ コンピュータビジョンは今取り組んでいる仕事にも関連していて,本書の目次を見たら今まで試したことがなかったようなサービスも学べそうだったので,実は出版前から興味を持…

CodeBuild の GitHub Actions ランナーサポートを Lambda 実行環境で試した

2024年4月24日に AWS CodeBuild で GitHub Actions ランナーがサポートされた❗️そして,2023年11月には AWS CodeBuild の実行環境として AWS Lambda を選択できるようになっているため,今回は個人的な検証として GitHub Actions x AWS CodeBuild (AWS Lambd…

認定資格 HashiCorp Certified: Terraform Associate の対策にも使える「Terraform の教科書」を読んだ

2024年3月21日に出版された「Terraform の教科書」を読んだ 本書は「これから Terraform に入門したいと思っている初学者」に特におすすめできる一冊だった.また本書では原著と違って,2024年1月にリリースされた Terraform v1.7.0 をベースに修正されてい…

SageMaker の地理空間機能を試そう: How to use SageMaker Processing with geospatial image

Amazon SageMaker が「地理空間 (Geospatial)」に特化した機能を限定的に(us-west-2 のみ)提供していることを最近知った aws.amazon.com そして Amazon SageMaker Examples を確認したら地理空間機能を試せるサンプルがあったため,「How to use SageMaker…

AWS CDK で AWS Step Functions から Amazon SageMaker Processing を .sync で実行する

AWS Step Functions から別のサービスを直接統合するときに「最適化された統合 (Optimized integrations)」と「AWS SDK 統合 (AWS SDK integrations)」という選択肢がある.例えば AWS Step Functions から Amazon SageMaker Processing を実行する場合,AWS…

データエンジニアリングライフサイクルのステージと底流とは /「データエンジニアリングの基礎」を読んだ

2024年3月に出版された「データエンジニアリングの基礎」を読んだ 仕事で取り組んでいることに関係していて,何かしら新しい気付きや発見があれば良いな〜と思って読んでみたけど,期待以上に素晴らしい一冊だった❗️データを取り扱うときに考慮すべきポイン…

AWS Chatbot で AWS Lambda 関数の集約したロググループからログを取得する

AWS Lambda 関数の Errors メトリクスなどを Amazon CloudWatch Alarm でモニタリングして,エラー発生時に Amazon SNS と AWS Chatbot を組み合わせて Slack に通知すると Show error logs ボタンと Show logs ボタンが表示される✅ そして AWS Chatbot に権…

PyTorch Tutorials「(optional) Exporting a Model from PyTorch to ONNX and Running it using ONNX Runtime」を試した

PyTorch のチュートリアル「(optional) Exporting a Model from PyTorch to ONNX and Running it using ONNX Runtime」を試した❗️ pytorch.org PyTorch に低解像度の画像を高解像度の画像に変換する「超解像モデル」のサンプルがあって,今回のチュートリア…

Amazon API Gateway の Lambda オーソライザーで "User is not authorized to access this resource" と出たら

Amazon API Gateway の Lambda オーソライザー(旧カスタムオーソライザー)を使ってアクセス制御をするときに,Authorization ヘッダーは正しいはずなのに {"Message":"User is not authorized to access this resource"} というエラーが出てしまう場合,La…

CloudFormation の IaC ジェネレーター機能をサクッと試せる「IaC Generator Workshop」

2024年2月にリリースされた AWS CloudFormation の「IaC ジェネレーター機能」を使うとマネジメントコンソール・AWS CLI などを使って作った(作ってしまった)リソースをスキャンして,自動的に AWS CloudFormation テンプレート化 (YAML / JSON) できる❗️…

GitHub Actions でワークフローの同時実行を防ぐ concurrency 設定

GitHub Actions ではデフォルトの挙動として同じワークフローの複数のジョブを同時実行できる.無駄に待つ必要がないという意味ではメリットがあるけど,ワークフローによっては同時実行したくないこともあると思う. GitHub Actions でワークフローが複数ト…

自信を持って pytest を活用するためのノウハウが凝縮された「テスト駆動 Python 第2版」を読んだ

「テスト駆動 Python 第2版」を読んだ 仕事で pytest を使ってて,もっと自信を持って書けるようになりたいな〜と思っていたら本書を見つけてさっそく読んでみた.pytest の機能・記法・設定・Tips などの理解が深まって本当に読んで良かった❗️フィクスチャ…

pytest の capsys で stdout(標準出力)と stderr(標準エラー)をテストする

pytest の capsys を使うと Python スクリプトで出力する stdout(標準出力)と stderr(標準エラー)をテストできる❗️関数の実行結果ではなく,その途中に出力するログに着目したい場面もあって便利〜 \( 'ω')/ docs.pytest.org src/app.py hello() 関数…

Terraform で無料利用枠の VPC IP Address Manager (IPAM) を設定する

2023年11月から VPC IP Address Manager (IPAM) に「無料枠利用枠」が追加されて Public IP Insights などの機能が無料で使えるようになったそして,2024年2月から課金対象になった IPv4 の最適化のために Public IP Insights を使いたいという場面もあると…

AWS CDK で外部パッケージを含む Python の AWS Lambda 関数をデプロイする

AWS CDK で外部パッケージを含む Python の AWS Lambda 関数をデプロイする場合,requirements.txt から依存関係を解決して,デプロイするアセットとして ZIP にまとめる(バンドルする)必要がある 今回は aws-cdk-lib.aws_lambda module と @aws-cdk/aws-l…

JSON Schema で簡単にバリデーションを実装できる Powertools for AWS Lambda (Python) の Validation

Powertools for AWS Lambda (Python) の「Validation」を使うと AWS Lambda 関数に渡されたイベント情報のバリデーションを JSON Schema に沿って実現できる.例えば,必須パラメータ・文字数制限・ENUM・正規表現などをチェックできる Powertools for AWS L…

testcontainers-python: pytest 実行時に使い捨て可能な LocalStack を起動する

Testcontainers を使うと,テストコードを実行するときに必要になるデータベース・キャッシュ・キューなどの依存関係をコード上で管理できて,実行後にはコンテナを自動的に消してくれるという使い捨て可能な仕組みを簡単に作れる❗️Testcontainers のサイト…

Lambda オーソライザーのポリシーを簡単に出力できる Powertools for AWS Lambda (Python) の APIGatewayAuthorizerResponse

Amazon API Gateway の Lambda オーソライザー(旧カスタムオーソライザー)を使ってアクセス制御をするときに Lambda オーソライザーの仕様に沿ったポリシーを出力する必要がある詳しくは以下のドキュメントに載っている. docs.aws.amazon.com 今まではド…