pull_request と pull_request_target の違いとセキュリティ上の注意点
背景依存しているライブラリに次のようなコードがありました。※簡単のためシンプルにしていますon: pull_request_target jobs:coverage:runs-on: ubuntu-latest steps:- uses: actions/checkout@v4 with:ref: ${{ github.event.pull_request.head.sha }} - run:...
View ArticleRelease Please をモノリポに導入する際にハマったこと
背景前回のchristina04.hatenablog.comをチームのモノリポに導入する際にハマったことをまとめていきます。この記事はrelease-please を既に導入したmonorepo を運用しているconventional commits を使っている人向けです。環境Release Please Action v4.4.1ハマったこと1. 初回リリースは...
View ArticleRelease Please Actions を導入してモノリポでもリリース差分を自動で抽出できるようにする
背景モノリポでは1つのリポジトリで全てのサービス・コンポーネントを管理するため次のメリットがあります。オーナーシップを維持しやすい...
View ArticleGitHub Apps, GITHUB_TOKEN, OAuth Apps, PATの使い分けフローチャート
背景歴史的経緯もあり、GitHubでは様々な種類のトークンがあります。GitHub Apps によるトークンGithub Actions で使える GITHUB_TOKENOAuth Apps によるトークンPAT (Personal Access...
View ArticleGKE → Snowflake の Workload Identity Federation を構築する
背景以前Google Cloud サービスアカウントのimpersonationを使った Workload Identity Federation の例を紹介しました。christina04.hatenablog.comただ最近は従来のWIFから、Direct Workload Identity...
View ArticleGAS のシークレット管理方法
背景生成AIの発達でデータインテグレーションの重要性がどんどん増しています。ビジネスデータなどはGoogle Workspaceで管理している企業も多く、そこにあるスプレッドシート情報であったりGoogleDriveのデータを内製のAIシステムに自動連携したい、といった要望が出てきます。ただ一方でセキュリティのためGoogle...
View ArticleOpenTelemetry Collector でtail based sampling
背景以前OpenTelemetryでSamplingについて紹介しました。christina04.hatenablog.com前回のHead based samplingではシンプルで軽量な反面、エラー時のデータがサンプリングによって欠損して調査が困難になるケースが発生しました。今回はOpenTelemetry Collectorによるtail based...
View ArticleGoogle Cloud IAMの基本ロールがアップデートされてた
概要従来のGoogle Cloudの基本ロールはOwner (roles/owner)Editor (roles/editor)Viewer (roles/viewer)でしたが、最近Admin (roles/admin)Writer (roles/writer)Reader...
View ArticleGoogle Cloud の PAM を使ってAIツールが安全に自律動作できるように
背景Claude CodeやCodexなど、生成AIがどんどん自律的に動けるようになった一方で、ガードレール自体の整備をしておかないとどこかで大きな障害を引き起こす可能性があります。特にパブリッククラウドの権限は、普段の開発で編集権限があると何か試したいときに便利な一方、AIツールがその権限を使うと大きなリスクになります。今回はそのガードレールとしてPrivileged Access...
View Articleyabai で scripting-addition failed to load
背景以前、外部ディスプレイを付けたり外したりする度に、上記のアプリの配置を手動で直さないといけない手間を省くツールとして、yabaiを紹介しました。christina04.hatenablog.comこのツールが v7.1.16, v7.1.17 では、sudo yabai --load-saを実行した際に次のエラーが出るようになり、動かなくなりました。scripting-addition...
View ArticleGo で固定小数点数を扱う
概要小数を扱うときは浮動小数点数:float, double固定小数点数:numeric, decimalといった選択肢が出てきます。通常は前者を選ぶことが多いですが、丸め誤差や桁落ちが発生するため、金融系の処理では後者を選びます。今回はGoでの固定小数点数の扱い方について紹介します。環境go 1.25.7shopspring/decimal...
View ArticleSnowflake で特定のユーザが使われているかを確認する(棚卸し)
概要Snowflake でユーザアカウントの棚卸しをする際に、そのユーザが直近使われているのかどうかを知りたいです。Snowflake では SNOWFLAKE.ACCOUNT_USAGEというデフォルトのスキーマにあるビューを使うことで簡単に把握することが可能です。以下を組み合わせることで判断します。知りたいことビューログインされているか LOGIN_HISTORYクエリを実行しているか...
View ArticleOutlier Detection と自動リトライを使ってデプロイ時・Podの再配置時のエラーを減らす
背景過去、デプロイ時やPodの再配置時のエラーはGoでGraceful Shutdown - Carpe DiemKubernetesのPodを安全に終了する - Carpe DiemKubernetesのPodを安全に終了する(istio-proxy編) - Carpe DiemGoでShutdown Hook - Carpe...
View ArticleEnvoy, Istio で Outlier Detection を使う
概要EnvoyやIstio では Outlier Detection という、連鎖障害を起こさないように不具合のあるホストを切り離す仕組みがあります。ヘルスチェックで外されるほど完全に落ちてはいないしかしサービスとしては無視できないほどエラーレートが高いといった状況でうまく機能してくれます。今回はこの機能の説明と、具体的な設定・挙動について紹介します。環境Istio: 1.28.2Envoy:...
View ArticleGoogle Cloud → Snowflake の Workload Identity Federation を構築する
概要Google Cloud上でAtlantisというterraformのGitOpsツールを導入している状態で、Snowflakeもterraform管理したいと考えました。タイミング良く Snowflake Provider で v2.10.0 からWorkload Identity Federation が正式サポートされたので、これを使って実現します。環境Terraform...
View ArticleObsidian Web Clipper がいつの間にか画像ダウンロードできるようになっていた
概要Obsidianでは2024年末にWebクリップ機能が提供されました(Chrome拡張など)。obsidian.mdただEvernoteと違って画像はリンク状態なため、保存した先のサイトがクローズすると見れなくなっていました。ので自分は良い図で画像も残しておきたいときはしかたなくEvernoteを使っていました。しかしv1.8.3からWebクリップした記事の画像をローカルに保存できるようになりま...
View Article2025年買ってよかったものリスト
概要年の瀬なので2025年に買ってよかったものを挙げてきます。Osmo Pocket 3DJI vlogカメラ Osmo Pocket 3 1インチ CMOS 4K 120fps 動画対応 Vlog用デジカメ 3軸スタビライザー ジンバルカメラ アクションカメラ 高速フォーカス 顔 被写体トラッキング 回転式2インチ タッチスクリーンDJIAmazonGoogle Cloud Next...
View Articleネガティブキャッシュによるデータベース負荷対策
概要通常データベースへの負荷を軽減するためにキャッシュレイヤを導入します。しかしよくあるのは正常系のみキャッシュしており、ゲームのイベント前でまだ404ゲームのイベント期間が終了して404動画の配信前でまだ404動画の配信期間が終了して404といった異常系が考慮されていないパターンです。サーバ上はデータの最新性から↑が正しいのですが、クライアントサイドにどこかしら導線が存在し、リクエストを送ってしま...
View Articleキャッシュアーキテクチャパターン
概要キャッシュにおけるアーキテクチャパターンをまとめておきます。表形式にすると次のようになります。パターン読み取り速度書き込み速度データ整合性主な用途 Cache Aside 高 中(キャッシュ層がオーバーヘッドにならない) 中(期限切れ考慮) 一般的なWebアプリ Read-Through 高 中(同上) 高 読み取り専用が多いデータ Write-Through 最高 低 最高...
View Article