kakakakakku blog

Weekly Tech Blog: Keep on Learning!

2025-01-01から1年間の記事一覧

AWS Serverless Patterns Collection コントリビュート振り返り(2025年7-12月)

2025年7月から Serverless Land にある「AWS Serverless Patterns Collection」にプルリクエストを送って継続的にコントリビュート(パターンのメンテナンス)をしてきた.2025年7月から2025年12月までの6ヶ月間を振り返ろうと思う 2025年は AWS Community B…

Claude Code の "動作原理" を理解して "意図どおりに" 動かすには?「実践 Claude Code 入門」を読んだ(サブエージェント・スラッシュコマンド・スキル・フックまで!)

2025年12月26日(明日)に出版される「実践 Claude Code 入門」を読んだ どれか1つでも当てはまる人に本書をおすすめしたい そろそろ Claude Code に入門したい! なんとなく Claude Code を使ってるから詳しくなりたい! スペック駆動開発を学びたい! Clau…

Dify の注釈(アノテーション)でチャットボットの回答をカスタマイズする

Dify の注釈(アノテーション)機能を使うとチャットボットで運用者が厳選して登録した回答を優先的に返すことができる.よくある質問に対して LLM を使わずに明確な回答をしたり,プロンプトインジェクションのような質問に対して拒否する回答ができる.よ…

Terraform AWS Provider v6: リソースレベルでリージョンを指定する

Terraform AWS Provider v6 から「リソースレベルで」リージョンを指定できるようになった️ 今まではエイリアス付きのプロバイダーを定義する必要があった.詳しくは Terraform AWS provider 6.0 now generally available に載っている. 最近カスタムドメイ…

GitHub Actions で Dependabot のプルリクエストを自動的に merge する

GitHub Actions で Dependabot のプルリクエストを自動的に merge する仕組みを作ってみた.ライブラリのバージョンアップ時に CI を実行して pass するなら merge して OKという前提で使うイメージ. .github/workflows/auto-merge-for-dependabot.yml Git…

Dify のコンテンツモデレーションで Bedrock Guardrails を使う

Dify の「コンテンツモデレーション」を使うとチャット中の不適切な入出力をブロックできる.コンテンツモデレーションでは3種類のプロバイダがサポートされていて「キーワード」と「OpenAI モデレーション」は以下の記事にまとめた.今回はもう一つの「API …

Dify で不適切な入出力をブロックできる「コンテンツモデレーション」

Dify の「コンテンツモデレーション」を使うとチャット中の不適切な入出力をブロックできる.Dify をプロダクション環境で使う場合に重要な機能になる.Dify の画面だと右上にある「Features(機能)」から「コンテンツのモデレーション」で設定できる.詳し…

Carbon: v2 と v3 で diffInYears() の結果が異なる

PHP

PHP の日付ライブラリ Carbon で v2 から v3 へのバージョンアップを検証してるときに diffInYears メソッドの結果に差があることに気付いた.ドキュメントの Migrate to Carbon 3 セクションを読むと Yes, the most impactful change is in diffIn* methods…

pyinfra で EC2 インスタンスをプロビジョニングする

pyinfra を使うと Python コードでサーバの構成管理ができる pyinfra.com 最近 pyinfra で Amazon EC2 インスタンスのプロビジョニングを試す機会があって,個人的に検証したことをまとめておく.今までは Chef / Ansible を使ったことがあって,またプロビ…

Step Functions から直接 Bedrock を呼び出す

最近 AWS Step Functions から AWS Lambda 関数を使わずに Amazon Bedrock を呼び出す (invokeModel) という検証をする機会があって簡単にまとめておくちなみに AWS Lambda 関数を使わずに呼び出すことを直接統合 (Direct Integrations) と言ったりする. t…

Terraform TLS Provider: Terraform で EC2 キーペアを生成する

Terraform TLS Provider を使うと Terraform で秘密鍵などを生成できる️ registry.terraform.io ちなみにドキュメントには以下のように書いてあって,tfstate にシークレットが含まれるためプロダクション環境での利用は避けると良さそう. Because of these…

PHPCompatibility v10.0.0-alpha1 で PHP 8.2 の非推奨コードを検出する

PHP

PHPCompatibility は2019年にリリースされた v9.3.5 で止まっていて,今まで PHP 8.x の非互換を検出する場合は dev-develop ブランチを使う必要があった. github.com リリース自体は止まってしまったのかな?と思っていたら,2025年10月に突然 v10.0.0-alp…

どんな困難でも乗り越えられるチームに育てるには /「レジリエントマネジメント」を読んだ

成功するチームへと導くにはどうしたら良いのだろう!?チームメンバー(本書の表現だとチームメイト)である「人」にフォーカスしたコミュニケーションスタイルへの気付きが得られる一冊「レジリエントマネジメント 荒波に立ち向かい、困難を乗り越えるチー…

Terraform AWS Provider v6: deprecated になった aws_region データソースの name プロパティ

Terraform AWS Provider v6 へのバージョンアップを数回やっていて(既に4プロジェクトほどやった)そのときによく遭遇するのが aws_region データソースの name プロパティが deprecated になった件で,v6 以降は region プロパティを使う必要がある. name…

Google Analytics MCP Server: 自然言語でアナリティクスデータを取得しよう

Google Analytics でブログ記事の PV を確認する機会がちょこちょこある たとえば「人気記事の定点観測」や「AWS Community Builders のアウトプット報告」など. 今までは Google Analytics コンソールでポチポチと確認していたけど Google Analytics MCP S…

Terraform: AWS WAF で Basic 認証を実装する

AWS WAF を使ってアプリケーションに Basic 認証を設定できる️Basic 認証のセキュリティレベルを理解した上で一時的な社内用途などで使いたいという場面はあると思う. 今回は AWS WAF + ALB(固定レスポンス)という簡単な組み合わせを Terraform で実装し…

Dify のエージェントノードで「エージェンティック戦略」を選ぶときに「Agent strategy は利用できません」と表示されたら

Dify のエージェントノードで「エージェンティック戦略」を選ぶときに Agent strategy は利用できません と表示されて FunctionCalling や ReAct を選べないときがある. docs.dify.ai その場合は Dify Marketplace で Dify Agent Strategies をインストール…

エンジニアリングリーダーの実践的なプラクティスとは「エンジニアリングリーダー ―技術組織を育てるリーダーシップとセルフマネジメント」を読んだ

エンジニアリングリーダーは何を考えて・日々どんな葛藤があって・どんな挑戦をしているんだろう?そんなエンジニアリングリーダーの具体的かつ実践的なプラクティスやマインドセットがまとまった一冊「エンジニアリングリーダー ―技術組織を育てるリーダー…

Cloudflare Terraform Provider でリソース名を変更する (GritQL / removed & import)

2024年8月にリリースされた Cloudflare Terraform Provider v4.40.0 で Cloudflare Zero Trust 関連のリソースに変更があって,多くのリソースが deprecated になっている.よって,現在最新の v5 にアップデートするためにはリソースの変更に対応する必要が…

Zenn Book で「LocalStack 実践入門 | AWS x Pulumi 入門ワークショップ」を公開しました

2025年10月17日に Zenn Book で完全無料の学習コンテンツ「LocalStack 実践入門 | AWS x Pulumi 入門ワークショップ」を公開しましたー AWS エミュレーターの LocalStack に実践的に入門しつつ「Pulumi の基礎」を学べるワークショップです❗️ zenn.dev 概要 …

S3 バケットのライフサイクルでオブジェクトタグを使って削除する

Amazon S3 ライフサイクルで自動的に削除するオブジェクトのフィルタ条件として,よく使う「キープレフィックス」以外に「オブジェクトタグ」も使える.最近使う機会があって検証したログをまとめておく. docs.aws.amazon.com 準備 まず Amazon S3 バケット…

Pulumi Deployments: Pulumi Cloud から AWS アカウントに自動デプロイ

Pulumi Cloud の Pulumi Deployments を使うとマネージド CI/CD 環境として自動的に pulumi preview と pulumi up を実行できる.今回は Pulumi Deployments で AWS にデプロイする仕組みを構築してみた❗️ www.pulumi.com セットアップ Pulumi Cloud から AW…

読んだ本を振り返る(2025年7-9月)

2025年7月から2025年9月までに読んだ本とその感想(書評記事 or X ポスト)をまとめておこうと思う2024年2月から「毎日10分間読書」という習慣化に取り組んでいる3ヶ月間で「計11冊」読むことができた. 2025年7月: 4冊 ダイナミックリチーミング 第2版 ダ…

CloudWatch アラームを無効化する

たとえば計画メンテナンス中などに "想定している" アラートが鳴ってしまうことを許容するという選択肢もあるけど,個人的には抑制できるなら抑制するのが良いと思っているんだけどな〜という話をしていたら,実は Amazon CloudWatch アラームを一時的に無効…

2025年(7-9月)のプルリクエストを振り返る

2016年から毎年送ったプルリクエストを振り返る記事を書いている 2025年(7-9月)は「計30件」だった❗️ プルリクエストを振り返るための検索 プルリクエストを振り返るために GitHub の検索条件を使う. 今回は「2025年(7-9月)」に限定するため created:2025-0…

既存の AWS リソースを Pulumi にインポートする: import コマンドと import リソースオプション

既存の AWS リソースを途中から Pulumi で管理する場合はインポートできる Pulumi のインポート方法は大きく「import コマンド」と「import リソースオプション」の2種類ある.詳しくはドキュメントに載っている.あくまでイメージだけど Terraform の impor…

Elemental MediaConvert と CloudFront に入門できる「File Streaming with AWS Media Services」

AWS Elemental MediaConvert を使って動画ファイルを変換するっていう流れをシュッと速習したいな❗️と思って「File Streaming with AWS Media Services」ワークショップを実施してみた. catalog.us-east-1.prod.workshops.aws Amazon S3 に動画ファイルをア…

Pulumi で AWS リソースに一括でタグを設定する aws:defaultTags

Pulumi でデプロイする AWS リソースに一括でタグを設定する場合,Pulumi YAML(たとえば Pulumi.dev.yaml)で defaultTags を設定すれば OK www.pulumi.com Pulumi.dev.yaml Environment タグと Project タグを設定する. config: aws:region: ap-northeas…

goo ブログからはてなブログに移行するためにやったこと

2025年11月18日で「goo ブログ」がサービス終了になるというアナウンスが出ている blog.goo.ne.jp 母親が goo ブログを書いていて(正直知らなかった)移行を頼まれたため作業ログをまとめておこうと思う. ちなみに移行するデータ量としては以下だった.日…

Terraform S3 バックエンドで使う S3 バケットを Terraform でデプロイする

Terraform で Amazon S3 バックエンドを使う場合に「Amazon S3 バケット自体をどうやってデプロイする?」というブートストラップ問題がある.よく聞く選択肢としてはマネジメントコンソール・AWS CLI・AWS CloudFormation などがある.他にも Terraform で…