OpenWhiskモチベーション仕事のタスク管理って基本めんどくさいですよね。コメント残しにカレンダーと機能が豊富でとても便利です。年末の自分の評価シートを書いている時に、この案件に入ってから何かしら自分の作業効率って上がっているのかしらとふと思いました。その時は結局分からずじまいで悲しくなったので、できれば定量的に(週ごとに捌いたタスク数とか、修正にかかった時間とか)改善が把握できるBotが欲しいと思いつきました。モチベーションもあげたい。今週頑張ったかを褒めちぎるBotを作ろう!!実現したいこと今回実現したいことを列挙するとこんな感じです。シンプルに2つだけにします。Botから通知を飛ばすようにしました。構成図は割とシンプルになりました。上の構成図の技術要素も並べるとこんな感じ。労力をかけず/コードを書かずにサービスを組み合わせて実現させることを第一に実装します。Node.jsスピード重視で慣れている言語で作ります。TypeScriptは使いません。API公式から出ているAPIでタスクを取得します。Slack業務でも使ってるコミュニケーションツール。特定のタイミングで頑張った成果と褒め言葉を自分に投げる先です。手軽なWebhook経由でメッセージを投稿させます。Serviceよりも手軽に上記の要素を実現できる方法として採用。Framework関数のデプロイや依存するリソース管理に時間をかけたくないので、宣言的にリソース定義とデプロイするためのツールとして使用します。Functionsと連携する方法は自分の記事参照。CloudTrelloやSlackのURL/Tokenを扱う以上、これらの情報をいちいち環境変数に指定してデプロイするのは面倒。GitHubにソースコードがコミットされることを検知してCI/CDパイプラインからリリースをかけます。Frameworkで定義してデプロイします。できたもの金曜22時になったら頑張りを通知してくれるようになりました!!Botから成果と褒め言葉が送られるソースコードはこちらに置いていますので、ご参考まで。github.com実装のポイント実際にコードを書いたのは、Trelloから完了済みカードを取ってきて整形するところだけです。Trelloの特定のリストからカードを一式取ってくるだけなので、難しくはありません。以下実際のコードです。定義した値が渡ってきます。後は呼び元のメインの関数内でこのクラスをnewして使えば終わりです。全体で100行ちょっとしかないので軽いですね。TrelloのAPIを叩く部分しか書か必要がない理由は、Slackへメッセージを投稿する部分は事前定義済みSlackパッケージを使うからです。atachmentsを使ったカラフルな凝ったメッセージ使えないですが、文字列連結すればいける範囲だったので無理せずそのまま使いました。Frameworkを使ったデプロイするときは、CDのバージョンに注意NPMの環境を指定してもNode.jsはv0.10系です。SDKだとv6系しか入ってないのでなるべくv8系以上にしたいところ。パッケージがpostinstall時にでこけます。以下の記事を参考にしてNVMを使えば良さそうとのことだったので、v8系をNVM経由でインストールして解決。ログインしても上手く生成されないようです。生成したらデプロイできるようになりました。Botを少しリファクタリングした時の話。月別アーカイブはてなブログをはじめよう!accelerkさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。