GoogleCloudPlatform
(以下GCP)にはCloudFunctions
とCloudRun
という2つのサーバレスサービスがあります。簡単にいうとこの2つは動作環境が違います。CloudFunctions
は開発者のコードを固定されたOS環境で動かすためのものであるのに対し、CloudRun
は開発者が持ち込んだDockerコンテナを動かします。どちらを利用するべきか考える順番はCloudFunctions
→CloudRun
です。双方の違いは「自由と簡単」のトレードオフです。
今回CloudRun
を初めて使ってみましたので記事にしてみました。
n8n
にはEditImage
という画像処理ノードがインテグレーションされていて、簡単な操作ならこれで十分処理ができます。EditImage
は内部でGraphicsMagick
が使われていますが、とある理由からImageMagick
を使いたくなりshell-jsonrpc
を使って実装してみました。shell-jsonrpc
は、以前の記事でバイナリデータに対応するようになっています。
このブログ内のリンクが_blank
だったりそうでなかったりと統一されてないなかったので以下のようなJavascriptで一括修正することにしました。
基本的にtarget=_blank
が設定されているみたいなので、内部向けリンクについてa要素のtarget
属性を削除する。
今日は以前の記事HackMD CLIをJSON-RPC経由で使う
でで作ったhackmd-cli-api
をn8n
に組み込んでHackMDの日次バックアップを実装してみました。
できあがったのがこちら。

リモート環境だけでなくローカル環境でも tmux を使っていて、リモート環境でうっかり tmux を起動するとローカルの tmux の中に入れ子でリモートの tmux が起動します。この状態だとすべての tmux がプレフィクスが外側(ローカル側)に捉えれてしまって内側(リモート側)の tmux が制御不能となります。これを防ぐために、内側の tmux プレフィクスのキーバインドを変えるという方法
もあるのですが、操作が複雑で誤動作も多くなるのでもういっそ tmux から tmux を起動した場合は起動を抑制するようにしようと思います。
traefik
で自分で建てたウェブサービスにパスワードを設定する方法を紹介します。以前の記事(1つのサーバにたくさんのWebサービスを詰め込む方法)
で使ったwhoami
サービスを例に設定方法をメモします。
以前の記事、shellコマンドをJSON-RPC経由で実行する
にて作ったshell-jsonrpc
ですが、ふとバイナリファイルの扱いがどうなっているか不安になって調べてみました→だめでした、ので改良してみます。
tmuxは、新しいウインドウを開くときセッションを起動したカレントディレクトリで開きます。つまり、~/
でtmuxを起動後、ウィンドウの内部で~/work
に移り、この状態で新しいウィンドウを開くと~/
がカレントディレクトリの状態で開きます。現在の作業の継続なので~/work
で開いてほしいということでネットを検索したら解決方法を見つけました。
以前の作ったshellコマンドをJSON-RPC経由で実行する
を利用してHackMD
を外部からAPIで操作できるようにしたいと思います。
HackMDにはCLI
が提供されていますので、以前つくったJSON-RPCのDockerイメージにこのCLIをインストールして利用してみたいと思います。
以前書いた記事~/.ssh/configを分割して管理する ver2
のスクリプトsshconf
改良をしましました。以前といってもたった数週間前であり、そもそもその記事自体が改良記事でしたが改良の改良ということでお許しください。