AWS SNS Message Filtering

SNSのサブスクリプションにフィルターポリシーを割り当てることにより、Subscriberが受信するメッセージを制御できる。
TerraformとGoを使って試してみた。

Goで設定ファイルに環境変数を使う

Goのアプリケーションでyamlやtomlで設定ファイルを読み込むときに、DBのパスワードや外部サービスのAPIキーなどの秘匿情報のみを環境変数で置換できないかなと思ってやり方を調べました。
Kubernetesで設定ファイル全てをSecretに置くのではなく、設定ファイルはConfigMap、秘匿情報はSecretにしたかったのがきっかけです。

設定ファイルを読み込んでから os.ExpandEnv で環境変数を置き換えればできるようです。

Hugo + Firebase HostingでGitHub Actionsを使ったCI/CD

今回はHugo + Firebase Hosting + GitHub ActionsでのCI/CDについて書きます。

このブログはHugo + Firebase Hostingで構築していますが、GitHub Actionsを使ってデプロイを自動化しています。
また、Firebase Hostingのプレビューチャンネル(ベータ版)機能を利用し、公開前にサイトを確認しています。
Firebase HostingでのGitHub Actionsの設定は firebase init コマンドを実行すると自動で設定され、すぐに利用できます。
Hogoで利用する場合は hugo コマンドをGitHub Actionsの設定ファイルに追記するだけです。
ただし少しハマった点もあるので、その点についても少し書きます。

coc.nvimでtextlintを使う

WordPressからHogoへの移行に伴い、記事をMarkdownで書くようになったのでtextlintのセットアップを行いました。
普段nvimとcoc.nvimを使っているので、textlintもefm-langserverを使ってcoc.nvimから使えるようにしました。

coc.nvim -> efm-langserver -> textlint

設定ファイルはGitHubのdotfilesリポジトリにもあげています。

Cloud Run/GoでCloud Pub/Subのサブスクライブ

Goで実装したCloud Run(fully managed)をCloud Pub/SubのPushサブスクリプションに使ってみました。
Cloud Run(fully managed)は、先日BetaからGAになりました。
環境構築がまだの場合は前回の記事に書いているので、ご覧いただければと思います。

今回のソースコードはGitHubへあげてます。

MacでC言語の開発環境構築

アルゴリズムとC言語の勉強をしようと思い下記の本を買ったので、MacでC言語の開発環境を構築しました。
またどうせならVimを使ってコードを書いていこうと思い、Vimの設定も行ったのでそれも合わせて書きます。

GCPのCloud RunをGoで試してみた

GoでHello WorldをGCPのCloud Runを試してみました。
Cloud RunはFull ManagedかGKEで利用することができますが、今回はFull ManagedのCloud Runを利用しました。

Goのhtml/templateで独自関数を使う方法

今回はGoのhtml/templateパッケージで独自関数を使う方法について書きます。

Google App Engine/GoでLINEの翻訳botをつくってみた

LINE BOT AWARDSに応募しようと思ってGoogle App Engine / Goで翻訳botをつくってみたので紹介します。
レベッカ(翻訳家)LINE bot

MacでTensorFlowのインストールとチュートリアル

先日TensorFlowを試してみようと思い、Macにインストールしてチュートリアル「MNIST For ML Beginners」をやってみました。
Pythonは未経験なので、Pythonの環境構築からやったのでご紹介します。