AWS
LocalStack は Amazon DynamoDB TTL (Time To Live) 機能をサポートしている❗️Amazon DynamoDB を実環境にデプロイする前に TTL の動作確認ができて便利最近 LocalStack の Amazon DynamoDB TTL 機能を試す機会があって,簡単にまとめておこうと思う〜 \( '…
GitHub Codespaces で起動した LocalStack に LocalStack Resource Browser から接続できるただし LocalStack ポートを公開するためあくまで一時的な検証用途で使う前提として \( 'ω')/ LocalStack CLI セットアップ ドキュメントを参考に GitHub Codespac…
Amazon Inspector Lambda 標準スキャンを有効化すると「AWS Lambda 関数」と「AWS Lambda Layer」を対象に脆弱性 (CVE) を検出できる Lambda Layer もサポートしていることを確認してみた docs.aws.amazon.com requests 2.30.0 今回は Python パッケージの r…
Powertools for AWS Lambda (Python) の Feature flags を使って「時間ベースフィーチャーフラグ (Time based feature flags)」を試してみた.Powertools for AWS Lambda (Python) の Feature flags はデフォルトだと AWS AppConfig をバックエンドにしてい…
Powertools for AWS Lambda (Python) の Parameters を使うと AWS Systems Manager Parameter Store / AWS Secrets Manager / AWS AppConfig / Amazon DynamoDB から AWS Lambda 関数で使うパラメータ(何かしらの値)を簡単に取得できる❗️また取得したパラ…
Amazon S3 署名付き URL を発行してオブジェクトをアップロードするときに「オブジェクトメタデータ」も設定できるできるのかな〜と気になって試してみたらできた.署名付き URL 経由でアップロードされたオブジェクトに対して付加情報を設定しておくという…
Casbin で認可ポリシーを保存する1番簡単な選択肢は CSV ファイルだけど,アダプターを使うと認可ポリシーをデータベースで管理できる今回は PyCasbin で,ドキュメントに載っている DynamoDB Adapter (python-dycasbin) を使って,Casbin 認可ポリシーを Am…
Powertools for AWS Lambda (Python) の Validation でプロパティの「UUID フォーマット」をチェックする場合は以下のようにスキーマを実装すると良さそう { '$schema': 'http://json-schema.org/draft-07/schema', 'type': 'object', 'required': ['id'], '…
Amazon S3 で Transfer Acceleration を有効化すると,エッジロケーションを活用してオブジェクトを高速にアップロード・ダウンロードできるようになる.そして bucketname.s3-accelerate.amazonaws.com というエンドポイントが追加される aws.amazon.com do…
Amazon CloudWatch Logs サブスクリプションフィルタを使ってログを AWS Lambda に流す構成を AWS アカウントにデプロイする前に LocalStack にデプロイして確認してみた❗ docs.aws.amazon.com LocalStack は Amazon CloudWatch Logs サブスクリプションフィ…
LocalStack から公式に提供されている localstack-utils を使うと,pytest など Python で単体テストを実行するときに一時的な(使い捨て可能な)LocalStack 環境を起動できる docs.localstack.cloud ちなみに僕は普段仕事で testcontainers-python の Local…
Amazon Transcribe で Speech-to-Text を実現するときに,LocalStack を使えば Amazon Transcribe を「AWS アカウントを使わずにローカル環境で」動かせるLocalStack 自体は仕事でもプライベートでも使ってるけど,Amazon Transcribe は今まで試したことがな…
Amazon Verified Permissions を学ぶため「Amazon Verified Permissions workshop」を実施してみた3時間ほどで Amazon Verified Permissions の基本的な概念・マネジメントコンソール操作から,実際にサーバーレスアプリケーションに組み込んだときの実装例…
Amazon S3 でオブジェクトの使用状況(合計サイズ・平均サイズなど)を「プレフィックス別(フォルダ別)」で可視化する場合,Amazon S3 Storage Lens の「高度なメトリクスとレコメンデーション機能」で「プレフィックス集計」を設定する❗️ docs.aws.amazon…
現時点(2024年5月)だと Terraform AWS Provider では Amazon Inspector の「抑制ルール」を設定できないという制約がある github.com Terraform AWS Provider 以外だと マネジメントコンソール AWS CLI(参考: AWS CLI で Amazon Inspector「抑制ルール」…
Amazon Inspector の「抑制ルール (suppression rules)」を使うと,条件に一致する検出結果を除外できる.また Amazon Inspector では FindingStatus: SUPPRESSED として AWS Security Hub に検出結果を統合するため,過剰に増えてしまう AWS Security Hub …
AWS CDK の cdk diff コマンド・cdk deploy コマンドで --exclusively オプションもしくは -e オプションを指定して実行すると,スタック間の依存関係を考慮せずに指定したスタックのみ操作できる実行時間を短くしたり,デプロイの影響範囲を狭めたりすると…
2024年5月17日にリリースされた Terraform AWS Provider v5.50.0 で Amazon ECS の「Fargate タスクリタイア待機時間 (fargateTaskRetirementWaitPeriod)」を設定できるようになった. github.com デフォルトでは「7日間」に設定されていて,選択肢としては …
AWS Step Functions ワークフローを実装しているときに,ステートをデプロイする前にテストしたり,デプロイしたワークフローの特定のステートのみを実行したいという場面があったりする.実は AWS Step Functions の「TestState API」を使うと,ワークフロ…
2024年3月19日に出版された「AWS コンピュータービジョン開発の教科書」を読んだ コンピュータビジョンは今取り組んでいる仕事にも関連していて,本書の目次を見たら今まで試したことがなかったようなサービスも学べそうだったので,実は出版前から興味を持…
2024年4月24日に AWS CodeBuild で GitHub Actions ランナーがサポートされた❗️そして,2023年11月には AWS CodeBuild の実行環境として AWS Lambda を選択できるようになっているため,今回は個人的な検証として GitHub Actions x AWS CodeBuild (AWS Lambd…
Amazon SageMaker が「地理空間 (Geospatial)」に特化した機能を限定的に(us-west-2 のみ)提供していることを最近知った aws.amazon.com そして Amazon SageMaker Examples を確認したら地理空間機能を試せるサンプルがあったため,「How to use SageMaker…
AWS Step Functions から別のサービスを直接統合するときに「最適化された統合 (Optimized integrations)」と「AWS SDK 統合 (AWS SDK integrations)」という選択肢がある.例えば AWS Step Functions から Amazon SageMaker Processing を実行する場合,AWS…
AWS Lambda 関数の Errors メトリクスなどを Amazon CloudWatch Alarm でモニタリングして,エラー発生時に Amazon SNS と AWS Chatbot を組み合わせて Slack に通知すると Show error logs ボタンと Show logs ボタンが表示される✅ そして AWS Chatbot に権…
Amazon API Gateway の Lambda オーソライザー(旧カスタムオーソライザー)を使ってアクセス制御をするときに,Authorization ヘッダーは正しいはずなのに {"Message":"User is not authorized to access this resource"} というエラーが出てしまう場合,La…
2024年2月にリリースされた AWS CloudFormation の「IaC ジェネレーター機能」を使うとマネジメントコンソール・AWS CLI などを使って作った(作ってしまった)リソースをスキャンして,自動的に AWS CloudFormation テンプレート化 (YAML / JSON) できる❗️…
2023年11月から VPC IP Address Manager (IPAM) に「無料枠利用枠」が追加されて Public IP Insights などの機能が無料で使えるようになったそして,2024年2月から課金対象になった IPv4 の最適化のために Public IP Insights を使いたいという場面もあると…
AWS CDK で外部パッケージを含む Python の AWS Lambda 関数をデプロイする場合,requirements.txt から依存関係を解決して,デプロイするアセットとして ZIP にまとめる(バンドルする)必要がある 今回は aws-cdk-lib.aws_lambda module と @aws-cdk/aws-l…
Powertools for AWS Lambda (Python) の「Validation」を使うと AWS Lambda 関数に渡されたイベント情報のバリデーションを JSON Schema に沿って実現できる.例えば,必須パラメータ・文字数制限・ENUM・正規表現などをチェックできる Powertools for AWS L…
Testcontainers を使うと,テストコードを実行するときに必要になるデータベース・キャッシュ・キューなどの依存関係をコード上で管理できて,実行後にはコンテナを自動的に消してくれるという使い捨て可能な仕組みを簡単に作れる❗️Testcontainers のサイト…