kakakakakku blog

Weekly Tech Blog: Keep on Learning!

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

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

AWS CloudFormation の Git sync を既存スタックに導入する

GitHub リポジトリなどにプッシュをしたら自動的にトリガーされて AWS CloudFormation スタックをデプロイできる「Git sync 機能」で,そういえば「既存スタックって途中から Git sync できる?」と疑問に感じて試してみた❗️結論から言うと既存スタックを Gi…

LocalStack v3.7 の新機能!Amazon S3 の conditional writes(条件付き書き込み)を試す

2024年8月20日に Amazon S3 の conditional writes(条件付き書き込み)がサポートされたオブジェクトの上書きを防ぐ仕組みを独自実装せず,Amazon S3 に任せられるようになるところがメリットだと思う. aws.amazon.com 試す さっそく PutObject を試す.AW…

読んだ本を振り返る(2024年1-8月)

2024年に読んだ本を年末の振り返りでまとめようと思っていたけど,2024年2月から「毎日10分間読書」という習慣化を始めたことをキッカケにコツコツ読み進められるようになった.中途半端な時期ではあるけど,2024年8月までに読んだ本とその感想(書評記事 or…

AWS CDK で Amazon API Gateway にカスタムドメインを設定する

AWS CDK で Amazon API Gateway に Amazon Route 53 のカスタムドメインを設定してみた 実際に試したログをまとめておく \( 'ω')/ サンプルコード 今回は Amazon Route 53 でドメインを取得してある前提とする.サンプルコード上では xxxxx.com にしておく…

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

Auth0 Terraform Provider を使うと Auth0 の設定を Terraform で宣言的に管理できる.もちろん Terraform の仕組みに沿って terraform plan コマンドで確認してから terraform apply コマンドでデプロイできる❗️Auth0 Terraform Provider を試したログをま…

Lambda 関数(コンテナ)をテストできる testcontainers-python v4.8.0 の新機能「AWSLambdaContainer」

2024年8月14日にリリースされた testcontainers-python v4.8.0 の新機能を確認していたら new: Added AWS Lambda module と書いてあって,これは何だろう〜と気になって試してみた❗️ github.com 簡単に言えば,テスト実行時に testcontainers-python で AWS …

フォルダオブジェクトの有無によって aws s3api list-objects-v2 コマンドの結果が異なる

AWS CLI で Amazon S3 の aws s3api list-objects-v2 コマンドを使ってオブジェクト数をカウントしてたときに少しハマったことがあって簡単にメモしておこうと思う awscli.amazonaws.com 起きたこと 例えば Amazon S3 バケットに folder/file.txt というオブ…

GitHub Actions の実践的なノウハウが凝縮されている素晴らしい一冊「GitHub CI/CD 実践ガイド」を読んだ

GitHub Actions の実践的なノウハウが凝縮されている一冊「GitHub CI/CD 実践ガイド」を読んだ 本書ではソフトウェア開発ライフサイクルから GitHub Actions 基礎トピック・GitHub Actions 実践トピックが紹介されていて,さらに GitHub Actions を活用して…

AWS Lambda 関数で Amazon ECR のイメージタグを上書きしたら AWS Lambda 関数を更新する

AWS Lambda 関数をコンテナイメージでデプロイしているときに,latest タグを使っていたり,同じタグを上書きして再利用していたりする場合がある.例えば AWS Well-Architected Framework「Container Build Lens」の設計原則 (Design principles) には「避…

Zenn Book で「LocalStack 実践入門」を公開しました

今週月曜日(2024年8月5日)に Zenn Book で完全無料の学習コンテンツ「LocalStack 実践入門 | AWS アプリケーション開発ワークショップ」を公開しましたー AWS エミュレーターの LocalStack に実践的に入門するワークショップです❗️ zenn.dev 概要 アプリ…

Terraform AWS Provider で AWS Chatbot を構築する

2024年8月2日にリリースされた Terraform AWS Provider v5.61.0 で AWS Chatbot の「Slack 設定 (SlackChannelConfiguration)」と「Teams 設定 (MicrosoftTeamsChannelConfiguration)」を設定できるようになった❗️ github.com 背景 今までは AWS Provider を…

AWS Step Functions で AWS Lambda 関数を使わず Amazon S3 にオブジェクトをアップロードする

AWS Step Functions でワークフローを構築しているときに AWS Step Functions の実行時に渡すインプットの一部をファイルとして Amazon S3 に保存したいという場面があったりする❗️実際に最近あった \( 'ω')/ もちろん AWS Lambda 関数を追加すれば柔軟で…

LocalStack を使って DynamoDB TTL 機能をローカル環境で試す

LocalStack は Amazon DynamoDB TTL (Time To Live) 機能をサポートしている❗️Amazon DynamoDB を実環境にデプロイする前に TTL の動作確認ができて便利最近 LocalStack の Amazon DynamoDB TTL 機能を試す機会があって,簡単にまとめておこうと思う〜 \( '…

GitHub Codespaces で起動した LocalStack に Resource Browser から接続する

GitHub Codespaces で起動した LocalStack に LocalStack Resource Browser から接続できるただし LocalStack ポートを公開するためあくまで一時的な検証用途で使う前提として \( 'ω')/ LocalStack CLI セットアップ ドキュメントを参考に GitHub Codespac…

Amazon Inspector Lambda 標準スキャンで Lambda Layer に含まれる CVE を検出する

Amazon Inspector Lambda 標準スキャンを有効化すると「AWS Lambda 関数」と「AWS Lambda Layer」を対象に脆弱性 (CVE) を検出できる Lambda Layer もサポートしていることを確認してみた docs.aws.amazon.com requests 2.30.0 今回は Python パッケージの r…

人と向かい合おう!エンジニアリングマネジャーに限らずおすすめできる「エンジニアリングマネジャー入門」を読んだ

2024年7月14日に出版された新著「エンジニアリングマネジャー入門」を読んだ 本書は「人と向かい合う」ことにフォーカスしていて,エンジニアリングマネジャーがどんなことを日々考えて,どんなことに日々対処しているのかという実践的なノウハウがまとまっ…

Powertools for AWS Lambda (Python) の Feature flags で「時間ベースフィーチャーフラグ」を試す

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 で DynamoDB GSI からパラメータを取得するカスタムプロバイダ

Powertools for AWS Lambda (Python) の Parameters を使うと AWS Systems Manager Parameter Store / AWS Secrets Manager / AWS AppConfig / Amazon DynamoDB から AWS Lambda 関数で使うパラメータ(何かしらの値)を簡単に取得できる❗️また取得したパラ…

習慣化 振り返り(2024年1-6月)

2024年から Habitify を使って個人的な習慣化管理を楽しんでいる❗️ 2024年前半(1-6月)の習慣化を振り返ろうと思う \( 'ω')/ www.habitify.me 朝活 2023年2月から1年半ほど「朝活」を続けていて,Google Sheets に記録していた朝活メモを2024年から Habit…

Grand: Apache Ant の依存関係を可視化する

Grand を使うと Apache Ant ターゲットの依存関係を dot ファイルとして可視化できる.そもそも可視化したくなるほど依存関係が複雑なことが課題ではあると思うけど,既存の build.xml を解析したり,新しく build.xml を読むメンバーのために README.md に…

Amazon S3 署名付き URL 経由のアップロードでオブジェクトメタデータを設定する

Amazon S3 署名付き URL を発行してオブジェクトをアップロードするときに「オブジェクトメタデータ」も設定できるできるのかな〜と気になって試してみたらできた.署名付き URL 経由でアップロードされたオブジェクトに対して付加情報を設定しておくという…

カックマイクラ実況 YouTube 振り返り(開設1年🎉)

2023年7月1日に開設した YouTube チャンネル「カックマイクラ実況」を1年間続けてみた❗️簡単に振り返ろうと思う. www.youtube.com ちなみに「6ヶ月間」の振り返りは以下の記事にまとめてある機材などは特に変化なし. kakakakakku.hatenablog.com Stats (~2…

Apache Ivy の configurations でテストに必要な依存関係を取得する

Apache Ivy を使って Maven Repository からライブラリを取得するときに,例えば CI 環境では JUnit や Mockito などの「テストに必要な依存関係」も取得したいという場面がある.Apache Ivy では configurations(コンフィグレーション) を使って柔軟に依…

Casbin 認可ポリシーを DynamoDB に保存できるアダプター「python-dycasbin」を試した

Casbin で認可ポリシーを保存する1番簡単な選択肢は CSV ファイルだけど,アダプターを使うと認可ポリシーをデータベースで管理できる今回は PyCasbin で,ドキュメントに載っている DynamoDB Adapter (python-dycasbin) を使って,Casbin 認可ポリシーを Am…

Powertools for AWS Lambda (Python) の Validation で UUID フォーマットをバリデーションする

Powertools for AWS Lambda (Python) の Validation でプロパティの「UUID フォーマット」をチェックする場合は以下のようにスキーマを実装すると良さそう { '$schema': 'http://json-schema.org/draft-07/schema', 'type': 'object', 'required': ['id'], '…

boto3 Config で Amazon S3 Transfer Acceleration エンドポイントを使えるようにする

Amazon S3 で Transfer Acceleration を有効化すると,エッジロケーションを活用してオブジェクトを高速にアップロード・ダウンロードできるようになる.そして bucketname.s3-accelerate.amazonaws.com というエンドポイントが追加される aws.amazon.com do…

LocalStack を使って CloudWatch Logs サブスクリプションフィルタをローカル環境で試す

Amazon CloudWatch Logs サブスクリプションフィルタを使ってログを AWS Lambda に流す構成を AWS アカウントにデプロイする前に LocalStack にデプロイして確認してみた❗ docs.aws.amazon.com LocalStack は Amazon CloudWatch Logs サブスクリプションフィ…

localstack-utils: 単体テスト実行時に使い捨て可能な LocalStack を起動しよう

LocalStack から公式に提供されている localstack-utils を使うと,pytest など Python で単体テストを実行するときに一時的な(使い捨て可能な)LocalStack 環境を起動できる docs.localstack.cloud ちなみに僕は普段仕事で testcontainers-python の Local…

Apache Ivy で Guava を取得するときに javadoc.jar と sources.jar を除外する

Apache Ant と Apache Ivy を使って Maven Repository から Guava を取得すると不要な javadoc.jar と sources.jar も一緒に取得されてしまうときの解決策を2つメモしておく〜 再現確認 まず,Apache Ant の build.xml にデフォルト設定の ivy:retrieve タス…