EventBridgeのcron式のバリデーション用terraform providerを書いた

こちらの記事に触発されて terraform planでEventBridgeのcron式を検証するterraform providerを書いた。 github.com 以下のようにデータソースを定義すると data "cronplan_expr" "every_weekday" { expr = "cron(5 0 ? * ? *)" } terraform planの時にエラ…

GitHubのダッシュボードのフィードを以前のままにするChrome拡張を作った

github.com

1Passwordのアイテムをdata sourceにするterraform-provider-opを作った

1Password CLI経由で1Passwordのアイテムをdata sourceとして使うterraform-provider-opを作った。 github.com 以下の用のPostgreSQL providerのパスワードを自分のマシンの1Passwordからとってこれる。 provider "op" { } data "op_item" "postgres" { titl…

esa.ioにファイル・ディレクトリをインポートする

esa.ioのCLI、kasaにインポート機能を追加した。 github.com ファイルをインポートすることもできるし $ echo test > test.txt $ kasa import test.txt hello/world https://winebarrel.esa.io/posts/1 $ kasa cat hello/world test $ kasa import test.txt …

AWS SSOで直接AWSアカウントのManagement Consoleを開く

AWS SSOで各AWSアカウントのManage Consoleを開く場合、AWSアクセスポータルURL(d-xxxxxxxxxx.awsapps.com/start)から遷移するが、赤枠のリンクは固定値のようなので、そのリンクから個別のアカウントのManage Console開くことができる。 リンクのURLは下…

Datadog Logsを出力するCLI

作った github.com

Datadogの月ごとの料金を表示するツールを作った

Datadogでマルチオーガニゼーションを利用しているが、Webコンソールでは使用量は表示されても料金が表示されず、また月ごとの料金を比べることもできないので、APIを呼び出して複数月の料金を月ごと・組織ごとに表示するツールを作った。 github.com 使い方…

terraformのRedash providerを書いた

業務で使っているRedashのアラートをGitHubで管理したくなったので、terraformのproviderを書いた。 github.com registry.terraform.io Redash providerはすでにいくつかあるが、テストがなかったり活発にメンテナンスされている様子がなかったりしたので、…

メモ: ECRのdockerイメージのタグを更新するGitHub Actions

docker-tag: name: Tag docker images runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: aws-actions/configure-aws-credentials@v2 with: #... - name: Tag branch to docker images run: | MANIFEST=$(aws ecr batch-get-image --repos…

Slack用のChatGPTボットを作った

Slackで会話できるChatGPTボットを作った。 Getting Startedの通りにすれば10分ぐらいでインストールできると思う。 github.com すでにSlackの中の人がChatGPT-in-Slackとかchatgpt-on-denoというのを作っていてそっちの方がはるかに高機能だけど、社内のSla…

VS Codeの拡張機能作った

自分のために大変便利 marketplace.visualstudio.com github.com

Chromeの拡張機能を作った

GitHub Actions issue linkというChromeの拡張機能を作った。 chrome.google.com github.com pushイベントで実行されたGitHub ActionsにはマージされたPRへのリンクはないが、タイトルには「#1234」とPR(Issue)番号があることが多いので、それをPR(Issue…

バベル案内での「STLの作者がOOPは嫌いだと言ったという話」

www.aoky.net 昔読んだSteve Yeggeの「バベル案内」のC++ の話に「STL作者が OOP は嫌いだと言っていてショックを受けた」ということが書いてあって、ふーんと思っていたが、最近Alexander Stepanovのインタビュー記事を読んでいてそれっぽい話があった。 ww…

Fargate: nginxコンテナをreadonlyRootFilesystemで動かす

監査上の理由からFargateがreadonlyRootFilesystemで動いてほしかったので、nginxコンテナを使った検証のメモ。 基本方針 nginxイメージそのままでは動かないのでカスタムイメージを作る /var をタスクストレージにマウントする /tmp は /var/tmp へのsymlin…

ecs-login-helperの実行時に環境変数を追加するやつ

複数のAWSアカウントのECRからdocker pullするときに、いちいちプロファイルを指定するのがめんどくさいことがあったので(docker-composeとか)、環境変数を追加するecs-loginのラッパーを作った。 github.com ~/.docker/ecr-login-env.json に以下のような…

1Password CLIのパスワードをターミナルでマスクするやつ作った

github.com マスクされた値はマウスで選択すれば見れる。 以下のようなaliasを設定して使っている。 alias opeco='op item list | tail -n +2 | sort -k2 | peco | cut -b -26 | (op item get --format json $(cat -) | opmsk)' ※peco: https://github.com/p…

GolangのRedashクライアントライブラリを書いた

GolangのRedashクライアントライブラリはいくつかあるものの、メンテナンスが活発でなかったり、一部のリソースしか操作できなかったりするため、新しくライブラリを書いた。 github.com ※その他のライブラリ https://github.com/koooge/redash-sdk-go https…

PRがマージされたら他のPRのブランチを更新するGitHub action

GitHubのPRがマージされたら、リポジトリの他のPRのブランチを更新するコマンドとそのGitHub actionを作った。 github.com github.com 実行例 https://github.com/winebarrel/pru-example name: pru on: push: branches: - main paths: - "**/*.go" - Makefi…

terraformでnode_modulesを含むlambda関数をデプロイするやつ

github.com

QuetaroというSQS+PostgreSQL+Lambdaのジョブキューシステムを作った

github.com これは何? SQS+PostgreSQL+Lambdaとその間をつなぐデーモンで構成されたジョブキューシステムです。 入り口のSQLにメッセージを投げると、メッセージで指定した関数名のLambdaが実行されます。 Lambdaの実行に失敗した場合は、適当な感覚でリト…

親に向かってなんだそのContextは。

親Contextの都合でcancelしてほしくないが、loggerの引き回しはContextでやりたい、みたいなときにDeadline()/Done()/Err()を無視すればいいのかなぁ…と思って実装してみた。 cancelされたくないというのは、SIGINTですべてのgoroutineを停止したいんだけど…

cronmatch: CRON式にマッチするかどうかチェックするコマンド

github.com ※ただしAWS Event Bridge

cronのスケジュールを表示する雑Webサービス作った

https://cronplan.in/ Show cron schedule. USAGE: curl cronplan.in -d '5 0 * * ? *' curl cronplan.in -G --data-urlencode 'e=5 0 * * ? *' see http://cronplan.in?e=5+0+*+*+?+* $ curl cronplan.in -d '5/3 0/3 ? * FRI *' Fri, 21 Oct 2022 00:05:00…

EventBridgeのcron式のパーサーを作った話とDay of weekの増分の仕様

追記3 もろもろ作り直した github.com 追記2 いろいろ間違っていた… AWS: 1-7=SUN-SAT Linux?: 0-6=SUN-SAT 追記 1-10/3 とか MON-FRI/3 とかを忘れていたので作り直し… cron式をパースするGolangのライブラリを書いた。 github.com モチベーションとしては…

RDSのインスタンスクラスごとのメモリ量を取得するterraform providerを作った

github.com これはなに? RDSのインスタンスクラスごとのメモリ量を習得するterraform provider。 インスタンスクラスごとにデータソースを定義するか、 data "rds_db_instance_memory" "rds" { instance_class = "db.t3.micro" } #=> { # "instance_class" …

クエリログを使ったPostgreSQLの負荷テスト

see https://tech.kanmu.co.jp/entry/2022/12/04/131536 クエリログ log_statement=allを設定するとpostgresql.logにクエリログされる。 $ cat postgresql.log 2022-05-30 04:59:41 UTC:10.0.3.147(57382):postgres@postgres:[12768]:LOG: statement: select…

ridgepoleのパーティショニング対応を削除することを考えています

ANN

ridgepoleの1.0.2でパーティショニングの対応が入ったのですが、これを削除することを考えています。 理由としては、パーティショニングの機能は多岐にわたりそのすべてをサポートするのは難しいのですが 現状では本体に密結合になっているため、オプショナ…

最近作ったもの

demitas2 github.com demitasでシェルスクリプトを使っていた部分がつらくなってきたので、Goで書き直したもの。 ssocreds github.com AWS SSOの一時的なクレデンシャルを出力するやつ。 poslog github.com posgresql.logをパースしてNDJSONで出力するやつ。

RDS(PostgreSQL)のクエリログの有無によるpgbenchの差異

RDS(PostgreSQL)でクエリログをON(log_statement=all)・OFF(log_statement=none)、さらにexportしたときの性能の変化が気になったので、pgbenchで負荷テストを行ってみた。 テスト環境 クライアント pgbench (PostgreSQL) 14.2 (Ubuntu 14.2-1ubuntu1) EC2の…

MySQLでTPC-B likeなテストを実行するツールを作った

MySQLでpgbenchと同じようなTPC-B likeなテストを実行するツールを書いた。 github.com これは何? pgbenchと同様のtcpb-likeなテストを実行する負荷テストツール。 github.com pgbenchとだいたい同じSQLが実行されると思うが、TPC-Bの仕様をきちんと満たし…